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

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

WBOY
Freigeben: 2016-06-06 20:30:17
Original
1136 Leute haben es durchsucht

前些天看 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>
Nach dem Login kopieren
Nach dem Login kopieren

代码段2:

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

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

跪谢

回复内容:

前些天看 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>
Nach dem Login kopieren
Nach dem Login kopieren

代码段2:

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

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

跪谢

<code>call_user_func_array(array(&$CI, $method), $params);
</code>
Nach dem Login kopieren

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

举个例子:

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

就相当于调用

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage