ret"/> ret">

首頁  >  文章  >  後端開發  >  Call-time pass-by-reference has been deprecated 有关问题

Call-time pass-by-reference has been deprecated 有关问题

WBOY
WBOY原創
2016-06-13 10:13:02974瀏覽

Call-time pass-by-reference has been deprecated 问题
这是一个获取本地IP的函数

源码如下:

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public 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

如果你的朋友没报该信息,只是他的版本问题或设置或他屏蔽了错误信息.

如果你的运行有其它问题,应该与此无关.

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn