php - 看CI源码后的一些基本问题

标签 php codeigniter

我刚刚查看了 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 没有任何高级的东西。

任何人都可以在这里提供一些见解吗?我将不胜感激。非常感谢。

最佳答案

关于php - 看CI源码后的一些基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6272829/

相关文章:

PHP MYSQL : display contents of table then add into another table

php - php array_unique 的奇怪行为

php - 页面加载时间超过一分钟 Mysql 和 Codeigniter

php - Codeigniter PHP 从一个数组创建两个不同的数组

javascript - 如何使用jquery从附加的html中获取选择内的选项文本?

php - 如何处理常量和依赖注入(inject)

php - 我的第一个 jquery ajax 页面(初学者)

php - Elasticsearch 地理点查询过滤器

php - 查询绑定(bind)在 CodeIgniter 3 中不起作用

php内存缓存错误