php5魔术函数uu toString($param=null)不能接受参数
我曾经有一个这样定义的函数(在ubuntu 9.10下运行良好): 在我将我的机器更新到ubuntu 10.04(和php版本:5.3.2-1ubuntu4.2)之后 )我的应用程序开始显示这样的错误==> 致命错误:方法应用程序\u Model\u Person::\u tostring()无法在第39行的/home/speshu/Development/where/Application/models/Person.php中获取参数 这就是我如何避开这个问题的,它又脏又丑。。。但在找到一个更持久的解决方案之前,它成功地让系统重新运转起来 您应该能够找出如何最好地扩展它以满足您的需要,请注意,如果使用此方法,可能最好传入一个关联数组,因为这样更容易访问数据 这就是我如何避开这个问题的,它又脏又丑。。。但在找到一个更持久的解决方案之前,它成功地让系统重新运转起来 您应该能够找出如何最好地扩展此方法以满足您的需要,请注意,如果使用此方法,可能最好传入一个关联数组,因为从5.3版开始,访问数据会更容易。 无论如何,你真的应该用一种神奇的方法来做吗?为什么不声明toString($whatever)呢?从5.3版开始php5魔术函数uu toString($param=null)不能接受参数,php,debugging,Php,Debugging,我曾经有一个这样定义的函数(在ubuntu 9.10下运行良好): 在我将我的机器更新到ubuntu 10.04(和php版本:5.3.2-1ubuntu4.2)之后 )我的应用程序开始显示这样的错误==> 致命错误:方法应用程序\u Model\u Person::\u tostring()无法在第39行的/home/speshu/Development/where/Application/models/Person.php中获取参数 这就是我如何避开这个问题的,它又脏又丑。。。但在找到一个更
无论如何,你真的应该用一种神奇的方法来做吗?为什么不声明toString($whatever)呢?另一种可能的解决方法
class test
{
var $toStringArgs = array();
function SetToStringArgs()
{
$this->toStringArgs = func_get_args();
}
function __toString()
{
var_dump($this->toStringArgs);
}
}
$test = new test();
$test->SetToStringArgs('firstname','lastname');
$test->__toString();
另一个可能的解决办法
class test
{
var $toStringArgs = array();
function SetToStringArgs()
{
$this->toStringArgs = func_get_args();
}
function __toString()
{
var_dump($this->toStringArgs);
}
}
$test = new test();
$test->SetToStringArgs('firstname','lastname');
$test->__toString();
我认为调用$obj->uu toString()是非常丑陋的;
最好只调用echo$obj;如果不想传递参数并调用$obj->toString($param);如果要指定参数 我认为调用$obj->\uuu toString()是非常丑陋的;
最好只调用echo$obj;如果不想传递参数并调用$obj->toString($param);如果要指定参数 事实上,如果需要为字符串表示形式传递可能性参数,请定义
函数toString($arg='')
,并让函数uu toString(){return$this->toString();}
,以避免重复。确实,如果需要为字符串表示形式传递可能性参数,请定义函数toString($arg='')
,并让函数uu-toString(){返回$this->toString()}
以避免重复。
function __toString() {
if(func_num_args()>0) {
$surNameFirst=func_get_arg(0);
} else {
$surNameFirst=false;
}
....
class test
{
var $toStringArgs = array();
function SetToStringArgs()
{
$this->toStringArgs = func_get_args();
}
function __toString()
{
var_dump($this->toStringArgs);
}
}
$test = new test();
$test->SetToStringArgs('firstname','lastname');
$test->__toString();