当前位置:  开发笔记 > 编程语言 > 正文

php5魔术函数__toString($ param = null)不能取args

如何解决《php5魔术函数__toString($param=null)不能取args》经验,为你挑选了1个好方法。

我曾经有一个像这样定义的函数(在ubuntu 9.10下运行正常):

public function __toString( $surNameFirst = false) { 
     if ($this->givenName . $this->surname == '') return null;
     else .......
}

在我将我的机器更新到ubuntu 10.04(和php版本:5.3.2-1ubuntu4.2)后,我的应用程序开始显示这样的错误==>

致命错误:方法Application_Model_Person :: __ tostring()不能在第39行的/home/speshu/Development/where/application/models/Person.php中获取参数

Call Stack:
    0.0001     616576   1. {main}() /home/speshu/Development/where/public/index.php:0  
    0.0294    1008248   2. Zend_Application->bootstrap() /home/speshu/Development/where/public/index.php:35
    0.0294    1008328   3. Zend_Application_Bootstrap_BootstrapAbstract->bootstrap() /usr/local/lib/ZendFramework-1.10.0/library/Zend/Application.php:355
    0.0294    1008328   4. Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap() /usr/local/lib/ZendFramework-1.10.0/library/Zend/Application/Bootstrap/BootstrapAbstract.php:582
    0.0387    1991416   5. Zend_Application_Bootstrap_BootstrapAbstract->_executeResource() /usr/local/lib/ZendFramework-1.10.0/library/Zend/Application/Bootstrap/BootstrapAbstract.php:618
    0.0387    1991776   6. Bootstrap->_initDoctrineCLI() /usr/local/lib/ZendFramework-1.10.0/library/Zend/Application/Bootstrap/BootstrapAbstract.php:665
    0.0387    1991856   7. Bootstrap->_initDoctrine() /home/speshu/Development/where/application/Bootstrap.php:66
    0.0406    2245200   8. Doctrine_Core::loadModels() /home/speshu/Development/where/application/Bootstrap.php:93

Manos Dilave.. 8

从版本5.3开始,__ toString魔术方法不再接受参数.

在任何情况下,你真的应该用魔术方法吗?为什么不声明toString($ whatever)呢?



1> Manos Dilave..:

从版本5.3开始,__ toString魔术方法不再接受参数.

在任何情况下,你真的应该用魔术方法吗?为什么不声明toString($ whatever)呢?


实际上,如果你需要为字符串表示传递的可能性参数,定义一个`function toString($ arg ='')`,并让`function __toString(){return $ this-> toString();}`以避免重复.
推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有