Php 隐式转换为字符串,而不是获取;对象ID;
我已经转移到一个新的网络主机,我们使用的是PHP5.1,而不是我一直使用的5.2。我还没有弄清楚这是php版本还是配置问题 目前,大多数(或所有)具有u-toString函数的类都会转换为“Object ID#”(如php4),但在它们返回正确值之前Php 隐式转换为字符串,而不是获取;对象ID;,php,string,object,casting,tostring,Php,String,Object,Casting,Tostring,我已经转移到一个新的网络主机,我们使用的是PHP5.1,而不是我一直使用的5.2。我还没有弄清楚这是php版本还是配置问题 目前,大多数(或所有)具有u-toString函数的类都会转换为“Object ID#”(如php4),但在它们返回正确值之前 如何解决这个问题?显然在PHP5.2之前,\uuuuuToString方法只是在某些情况下“神奇地”调用的(例如echo()和print())。因此,如果您当前在直接输出函数之外以“神奇”的方式使用\uu toString(),它将无法按预期工作
如何解决这个问题?显然在PHP5.2之前,
\uuuuuToString
方法只是在某些情况下“神奇地”调用的(例如echo()
和print()
)。因此,如果您当前在直接输出函数之外以“神奇”的方式使用\uu toString()
,它将无法按预期工作
:
值得注意的是,在PHP之前
5.2.0只有在直接组合时才调用\uuu toString
方法
使用echo()
或print()
。自PHP以来
5.2.0,它在任何字符串上下文中调用(例如在printf()
中使用%s
修饰符),但不在其他类型中
上下文(例如,使用%d
修饰符)。
从PHP5.2.0开始,转换对象
不带\uuu toString
方法到字符串
将导致E\u可恢复\u错误
显然在PHP5.2之前,
\uuuuuToString
方法只是在某些情况下被“神奇地”调用的(例如echo()
和print()
)。因此,如果您当前在直接输出函数之外以“神奇”的方式使用\uu toString()
,它将无法按预期工作
:
值得注意的是,在PHP之前
5.2.0只有在直接组合时才调用\uuu toString
方法
使用echo()
或print()
。自PHP以来
5.2.0,它在任何字符串上下文中调用(例如在printf()
中使用%s
修饰符),但不在其他类型中
上下文(例如,使用%d
修饰符)。
从PHP5.2.0开始,转换对象
不带\uuu toString
方法到字符串
将导致E\u可恢复\u错误
一些主机公司(如1和1)同时运行PHP4.x和5.x,默认为4.x。您可能需要有一个.htaccess文件,以确保您使用的是正确版本的PHP
此外,magic _toString()与5.2+版略有不同,具体如下:
值得注意的是,在PHP5.2.0之前,_toString方法仅在与echo()或print()直接组合时才被调用。自PHP 5.2.0以来,它在任何字符串上下文(例如,在带有%s修饰符的printf()中)中调用,但在其他类型上下文(例如,带有%d修饰符)中不调用。自PHP5.2.0以来,将没有uuu-toString方法的对象转换为字符串将导致E_u可恢复错误
因此,这可能取决于您如何调用输出。一些主机公司(如1和1)同时运行PHP4.x和5.x,并默认为4.x。您可能需要有一个.htaccess文件,以确保您使用的是正确版本的PHP
此外,magic _toString()与5.2+版略有不同,具体如下:
值得注意的是,在PHP5.2.0之前,_toString方法仅在与echo()或print()直接组合时才被调用。自PHP 5.2.0以来,它在任何字符串上下文(例如,在带有%s修饰符的printf()中)中调用,但在其他类型上下文(例如,带有%d修饰符)中不调用。自PHP5.2.0以来,将没有uuu-toString方法的对象转换为字符串将导致E_u可恢复错误
因此,这可能取决于您如何调用输出。您能更明确地说明您遇到的问题吗?关于之前发生的事情(使用5.2)和现在发生的事情(使用5.1)的更详细信息?您能更明确一点您遇到的问题吗?关于以前发生的事情(5.2版)和现在发生的事情(5.1版)的更多细节?我意识到有些输出是通过echo实现的,有些是作为返回值的。现在我已经联系了支持人员来更新php5。感谢没有问题-确保它的PHP5.2是截止值。我意识到有些输出是通过echo的,有些是作为返回值的。现在我已经联系了支持人员来更新php5。感谢没有问题-确保它的PHP5.2是截止点。