Home >Backend Development >PHP Tutorial >codeigniter - 关于 php 引用传值的问题

codeigniter - 关于 php 引用传值的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-06 20:30:171153browse

前些天看 CI 的源代码看到了一些问题

代码段1:

<code><?php static $_log;
if ($_log === null) {
    // references cannot be directly assigned to static variables, so we use an array

    // 为什么要这样?源代码中写了注释但是跟没写一样。。。
    $_log[0] =& load_class('Log', 'core');
}
$_log[0]->write_log($level, $message);
?>
</code>

代码段2:

<code><?php call_user_func_array(array(&$CI, $method), $params);
// 请问将 CI 实例传入 `call_user_func_array` 有什么意义么?
?>
</code>

这两个点查阅了文档 但是似乎 引用传值 这个知识点网上资料少的可怜 所以只能恬不知耻来求教给位大牛了。。。

跪谢

回复内容:

前些天看 CI 的源代码看到了一些问题

代码段1:

<code><?php static $_log;
if ($_log === null) {
    // references cannot be directly assigned to static variables, so we use an array

    // 为什么要这样?源代码中写了注释但是跟没写一样。。。
    $_log[0] =& load_class('Log', 'core');
}
$_log[0]->write_log($level, $message);
?>
</code>

代码段2:

<code><?php call_user_func_array(array(&$CI, $method), $params);
// 请问将 CI 实例传入 `call_user_func_array` 有什么意义么?
?>
</code>

这两个点查阅了文档 但是似乎 引用传值 这个知识点网上资料少的可怜 所以只能恬不知耻来求教给位大牛了。。。

跪谢

<code>call_user_func_array(array(&$CI, $method), $params);
</code>

这一句不是说传入CI,而是调用 $CI 的 $method 方法,并带上 $pararms 参数

举个例子:

<code>$method = 'something';
$params = array('a', 'b', 'c');
</code>

就相当于调用

<code>$CI->something('a', 'b', 'c');
</code>

http://php.net/manual/zh/function.call-user-func-array.php

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn