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