当前位置:Gxlcms >
PHP教程 >
Call-timepass-by-referencehasbeendeprecated有关问题
Call-timepass-by-referencehasbeendeprecated有关问题
时间:2021-07-01 10:21:17
帮助过:21人阅读
Call-time pass-by-reference has been deprecated 问题
这是一个获取本地IP的函数
源码如下:
PHP codepublic function winip( ) { @$this->execcmd( "ipconfig /all", &$this->return_array ); if ( $this->return_array ) { return $this->return_array; } $cmdir= $_SERVER['WINDIR']."\\system32\\ipconfig.exe"; if ( file_exists( $cmdir) ) { @$this->execcmd??( $_ocmdir ." /all", &$this->return_array ); } else { @$this->execcmd??( $_SERVER['WINDIR']."\\system\\ipconfig.exe /all", &$this->return_array ); } return $this->return_array; } public function linuxip( ) { @$this->execcmd ( "ifconfig -a", &$this->return_array ); return $this->return_array; } public function execcmd ( $a , $b) { $b=shell_exec($a); }}
执行后提示标题错误,请高手帮忙~
------解决方案--------------------execcmd 后面有 ?? 是怎么回事?
------解决方案--------------------http://yourin.blogbus.com/logs/43604755.html
------解决方案--------------------又被无视了,算……
------解决方案--------------------@$this->execcmd和左括号之间有unicode字符,难道你的编辑器没显示这个?
------解决方案-------------------- public function execcmd ( $a , $b)
{
$b=shell_exec($a);
}
在类内这样写会不会有问题?
你的出错信息主要是说引用传递被抛弃
会不会是这个? &$this->return_array
------解决方案--------------------呵呵,
这句说的是不推荐对函数调用的参数使用"引用", 这个是php5(或5.3)后新引进的错误信息,因为php5开始对象都是用引用操作的.
这只是一个警告信息,所以程序运行不应该被影响. 你可以屏蔽错误信息,或将allow_call_time_pass_reference 设为true
如果你的朋友没报该信息,只是他的版本问题或设置或他屏蔽了错误信息.
如果你的运行有其它问题,应该与此无关.