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