我刚刚查看了 CodeIgniter 源代码,发现了一些我似乎无法弄清楚的事情;我不确定它们是什么意思,而且由于它们大多像一两个符号,因此很难同时在 google 和 stackoverflow 上搜索它们。
我经常遇到的一件事是:
$this->config =& get_config();
我以前从未真正在 PHP 中遇到过 =&
(或者主要是 &
)。这到底是什么意思?他们是否将 get_config
的实例分配给 $this->config
?我假设 $this->config
来自文件顶部的声明,其中显示 var $config = array();
我去寻找 get_config()
函数,我找到了以下行:
function &get_config($replace = array())
在这里,我的问题几乎是一样的:&
代表什么,它有什么作用?我在整个 CI 核心文件中经常看到这两个东西(&
和 =&
)。
我还想知道他们的评论“风格”。每个函数都以注释 block 开头,这是一个示例:
/**
* 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
因为我自己用过这些)。它们是否具有任何“特殊”技术含义或者是纯粹的语义?如果可能,请启发我。
最后但同样重要的是,在 Controller 核心文件中我看到了这个:
class CI_Controller {
private static $instance;
public function __construct()
{
self::$instance =& $this;
// goes on
这里的兴趣线是 self::$instance =& $this;
这是什么意思?它是否将 $this
设置为它自己的一个实例(猜猜看,哈哈),所以我们可以使用 $this?或者这没有意义?实际上它没有,因为在非常基本的 MVC 样板中我自己使用基本网站,我使用 $this 没有任何高级的东西。
任何人都可以在这里提供一些见解吗?我将不胜感激。非常感谢。
最佳答案
- 关于
&
(引用)的所有问题:what-does-this-symbol-mean-in-php (所以) - 有关评论 block 的所有问题,请查看 phpDocumentor
- 有关前面下划线的问题,请参阅 naming conventions
- CI_Controller 看起来像一个 Singleton
关于php - 看CI源码后的一些基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6272829/