• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-25) 25次浏览 已收录 0个评论
文章目录[隐藏]

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

代码段1:

<code><?phpstatic $_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><?phpcall_user_func_array(array(&$CI, $method), $params);// 请问将 CI 实例传入 `call_user_func_array` 有什么意义么??></code>

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

跪谢

回复内容:

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

代码段1:

<code><?phpstatic $_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><?phpcall_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'<mark>@本文来源gaodaimacom搞#代%码@网-</mark><strong>搞代gaodaima码</strong>;$params = array('a', 'b', 'c');</code>

就相当于调用

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

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:codeigniter – 关于 php 引用传值的问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址