CI源码引用使用--php引用demo,静态变量和引用关系

CI源码引用使用在Common.php中,加载配置和类的方法

function &test()
{
    static $a = ‘‘;
    if (!$a) {
        $a = 2;
    }
    return $a;
}

$test =& test();
echo $test;
$test = 3;
echo test();

 

结果是23

引用:方法和使用方法的变量指向同一块内容:修改使用后的变量,方法内部值也会变

注意:方法和使用都需要&

 

静态变量和引用关系

/**
* 获取配置项
*/
function config_item($item)
{
    static $_config;

    if (empty($_config)) {
       
        // 引用不能直接赋值给静态变量,可以赋值给静态变量数组
        $_config[0] =& get_config();
    }

    return $_config[0][$item];
}

时间: 2024-08-02 08:28:16

CI源码引用使用--php引用demo,静态变量和引用关系的相关文章

storm源码之理解Storm中Worker、Executor、Task关系【转】

[原]storm源码之理解Storm中Worker.Executor.Task关系 Storm在集群上运行一个Topology时,主要通过以下3个实体来完成Topology的执行工作:1. Worker(进程)2. Executor(线程)3. Task 下图简要描述了这3者之间的关系:                                                    1个worker进程执行的是1个topology的子集(注:不会出现1个worker为多个topology服

CI源码阅读

CodeIgniter源码分析 http://calixwu.com/2014/11/codeigniter-yuanmafenxi.html CI框架源码阅读笔记 http://www.cnblogs.com/ohmygirl/p/4052686.html

CI源码(一)—Log, 日志

Ci的日志模块是作为一个library来实现以及使用的. (一) 使用方式 (a) 配置 在applicatin/environment/config/config.php中 log_threshold: 可写日志级别阀值.array('ERROR' => '1', 'DEBUG' => '2', 'INFO' => '3', 'ALL' => '4').小于等于阀值的级别都可以写入.配合这evironment的使用,可以在不同的环境下记录不同级别的日志,例如development

CI源码(一)—config配置文件

(一) 使用方式 (a) 系统级配置 语言.字符编码.session.cookie等配置项 文件位置: application/config/config.php 加载方式: 自动加载 调用方式: $this->config->item('config_item_key'); (b) 业务级别配置 实际业务中用到的配置项,或者叫做常量,比如1<->男  2<->女  3<->未知等数据.强烈建议把业务级别的配置项与系统配置项分开.CI支持多级目录的配置文件加

从CI源码学习PHP高级开发技能——CodeIgniter框架源码深度剖析(4):输出类Output.php

Output类参考说明(摘抄CI手册): 在一般情况下,你可能根本就不会注意到输出类,因为它无需你的干涉, 对你来说完全是透明的.例如,当你使用 加载器 加载一个视图文件时,它会自动传入到输出类,并在系统执行的最后由 CodeIgniter 自动调用.尽管如此,在你需要时,你还是可以对输出进行手工处理. 在说Output类前先说几个知识点和编程技巧: $_SERVER['HTTP_ACCEPT_ENCODING'] .对应请求头是Accept-Encoding:"gzip, deflate&qu

MQTT 协议学习:002-使用MQTT示例源码构建最简单的demo在STM32上移植MQTT协议

前言 通过上一章:<>,我们明确了MQTT的有关概念. 本文参考:STM32+W5500+MQTT+Android实现远程数据采集及控制 现在我们就来进行移植. MQTT代码源码下载地址: http://www.eclipse.org/paho/ 在STM32这边我们使用的是C/C++ MQTT Embedded clients代码. 原文地址:https://www.cnblogs.com/schips/p/12255092.html

unix 环境高级编程第三版 源码无法 make 成功, 对‘heapsort’未定义的引用 -apue.3e

http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/ 我的环境是centos7 x86_64 查看方法: [[email protected] ~]# uname -aLinux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 找到对应的rpm ,下载进行安装即可

ci源码解析之CodeIgniter.php

ci/core/CodeIgniter.php是ci框架的核心处理文件,其处理流程如下: 1 require了3个文件 BASEPATH core/Common.php core/Compat.php APPPATH config/constants.php 2 加载Benchmark,并打时间戳 3 加载Hooks,并调用钩子pre_system 4 加载Config.URI.Input和Language 5 加载并解析Router 6 加载并输出缓存Output 7 require系统con

Knockout源码精析-如何解析demo元素,获取到bindings?

接上文这里开始分析applyBindingsToNodeInternal.applyBindingsToNodeInternal方法如下: function applyBindingsToNodeInternal(node, sourceBindings, bindingContext, bindingContextMayDifferFromDomParentElement) { // Prevent multiple applyBindings calls for the same node,