【问题标题】:PHP 5.1.6 - Site showing Object # instead of content in many placesPHP 5.1.6 - 网站在很多地方显示对象 # 而不是内容
【发布时间】:2012-02-23 13:49:39
【问题描述】:

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

【问题讨论】:

  • 5.2 之前,__toString(注意:不是toStringis only called when directly combined with echo or print。如果这不能解释您的问题,请发布代码。
  • 问题是为什么我在两台服务器上得到不同的行为,这两个服务器都运行 php 5.1.6 并且就我所见,两者都配置相同。我设置了站点和服务器的克隆,这样我就可以在上线之前进行开发工作,但这有点麻烦

标签: php linux centos


【解决方案1】:

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

short_open_tag=On

【讨论】:

    【解决方案2】:

    来自 PHP manual ...

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

    您能否检查您的代码以查看对象是否正在使用 echo 或 print 呈现?如果您使用的是 printf,那么您可能误会了另一台运行 php 5.1.6 的服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 2021-05-18
      • 2022-08-05
      • 1970-01-01
      • 2017-07-11
      • 2016-03-13
      相关资源
      最近更新 更多