PHP 5.1.6 - 在很多地方显示Object#而不是内容的站点

时间:2012-02-10 11:21:01

标签: php linux centos

我正在尝试在另一台服务器上设置一个站点的镜像,据我所见,规范匹配(两者都在CentOS 5上运行php 5.1.6)。但是,在镜像站点上的许多地方,我正在显示“Object#..”而不是内容 - 我意识到这与toString()有关。我之前在将一个站点从PHP 5.2移动到PHP 5.1.6时遇到了这个问题,但是我不确定为什么它会在一个5.1.6安装上发生而不是另一个 - 任何人都有任何想法?感谢

2 个答案:

答案 0 :(得分:0)

php.ini中是否启用了短标记?

short_open_tag=On

答案 1 :(得分:0)

来自PHP manual ...

“值得注意的是,在PHP 5.2.0之前,__toString()方法仅在与echo()或print()直接组合时才被调用。自PHP 5.2.0起,它在任何字符串上下文中被调用(例如在带有%s修饰符的printf()中但不在其他类型的上下文中(例如使用%d修饰符)。“

您可以检查代码以查看对象是使用echo还是print进行渲染?如果您使用的是printf,那么您可能会误认为运行php 5.1.6的其他服务器。