这是一个获取本地IP的函数源码如下: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);
         }
}执行后提示标题错误,请高手帮忙~

解决方案 »

  1.   

    execcmd 后面有  是怎么回事?
      

  2.   

    http://yourin.blogbus.com/logs/43604755.html
      

  3.   

    @$this->execcmd和左括号之间有unicode字符,难道你的编辑器没显示这个?
      

  4.   

            public function execcmd ( $a , $b)
             {
               $b=shell_exec($a);
             }在类内这样写会不会有问题?你的出错信息主要是说引用传递被抛弃
    会不会是这个? &$this->return_array
      

  5.   

    试一下不要用引用,把&去掉
      

  6.   

    我的系统是win7  这样会不会有问题
      

  7.   

    呵呵, 这句说的是不推荐对函数调用的参数使用"引用", 这个是php5(或5.3)后新引进的错误信息,因为php5开始对象都是用引用操作的. 这只是一个警告信息,所以程序运行不应该被影响. 你可以屏蔽错误信息,或将allow_call_time_pass_reference 设为true如果你的朋友没报该信息,只是他的版本问题或设置或他屏蔽了错误信息.如果你的运行有其它问题,应该与此无关.
      

  8.   

    public function execcmd ( $a , &$b)函数声明改为
      

  9.   

    函数声明改成LS的,然后把正文里&$this替换成$this就可以正常工作了