我只是看着CodeIgniter源代码,我遇到了一些我似乎无法弄清楚的事情;我不确定它们是什么意思,因为它们大多像一两个符号,所以很难在谷歌和stackoverflow上搜索它们.
我遇到的一件事是:
$this->config =& get_config();
我从未真正遇到过=& (或者主要是PHP中的&)之前.这究竟是什么意思?他们是否将get_config实例分配给$this-> config?我假设$this-> config来自文件顶部的声明,其中var $config = array();
我去寻找get_config()函数,我找到了以下行:
function &get_config($replace = array())
在这里,我的问题几乎是一样的:&代表什么呢?我在整个CI核心文件中看到了这两件事(&和=&).
我想知道的是他们评论的“风格”.每个函数都以注释块开头,这是一个例子:
/** * Set HTTP Status Header * * @access public * @param int the status code * @param string * @return void */
这是由一些插件或库生成的吗?手动执行此操作听起来很麻烦.我没有检查过像PHPDoc这样的东西,但这可能类似(或PHPDoc)吗?它似乎有用,如果它自动生成?嘻嘻.
在下一个问题上.我看到以下划线为前缀的不同功能.有明显的__construct,但也有像_set_default_controller()这样的函数;和_set_routing();这些下划线有什么特别的含义吗?我知道双下划线用于称为’魔术方法’的东西(我正在考虑__get和__set,因为那些是我自己使用过的).他们有任何“特殊”的技术含义还是纯粹的语义?如果可能的话,启发我.
最后但并非最不重要的是,在控制器核心文件中,我看到了:
class CI_Controller { private static $instance; public function __construct() { self::$instance =& $this; // goes on
这里的兴趣点是self :: $instance =& $这一点;这是什么意思?它是否将$this设置为自身的实例(wiiiiiild guess,哈哈),所以我们可以使用$this?或者这没有意义?实际上它没有,因为在非常基本的MVC样板中我将自己用于基本网站,我使用$this而没有任何高级的东西.
谁能在这里提供一些见解?我将不胜感激.非常感谢提前.
>&运算符通过引用分配值,这意味着进一步使用此变量将引用原始值,而不是指定的值.参考(无双关语):
http://php.net/manual/en/language.references.php
>注释是 phpdoc样式,它们不是自己生成的,但可以方便地使用PHPdoc或其他软件创建文档,并在IDE中获取预期的参数和返回值.
>下划线通常意味着该方法是私有的.在CI控制器中使用时,表示该方法无法通过URL访问.相关: What’s the deal with a leading underscore in PHP class methods? >你非常正确.函数get_instance()将返回Controller的$instance属性.
>注释是 phpdoc样式,它们不是自己生成的,但可以方便地使用PHPdoc或其他软件创建文档,并在IDE中获取预期的参数和返回值.
>下划线通常意味着该方法是私有的.在CI控制器中使用时,表示该方法无法通过URL访问.相关: What’s the deal with a leading underscore in PHP class methods? >你非常正确.函数get_instance()将返回Controller的$instance属性.