「オブジェクト ID #..」を取得するのではなく、暗黙的に文字列に変換します。

StackOverflow https://stackoverflow.com/questions/941214

質問

これまで使用していた php 5.2 ではなく 5.1 を使用しているため、新しいウェブホストに移行しました。それがPHPのバージョンなのか設定の問題なのかはまだ分かりません。

現時点では、__toString 関数を持つクラスのほとんど (またはすべて) が (php4 のように) 「オブジェクト ID #」 に変換されますが、すべてが正しい値を返す前に。

これを修正するにはどうすればよいですか?

他のヒント

一部のホスト企業 (1and1 など) は PHP 4.x と 5.x の両方を実行し、デフォルトは 4.x です。正しいバージョンの PHP を使用していることを確認する .htaccess ファイルが必要になる場合があります。

また、マジック __toString() は、バージョン 5.2 以降とは若干異なります。 ドキュメンテーション:

PHP 5.2.0 より前では、__toString メソッドは echo() または print() と直接結合された場合にのみ呼び出されることに注意してください。PHP 5.2.0 以降、任意の文字列コンテキスト (例:printf() では %s 修飾子を使用します) が、他のタイプのコンテキストではそうではありません (例:%d 修飾子を使用)。PHP 5.2.0 以降、__toString メソッドを使用しないオブジェクトを文字列に変換すると、E_RECOVERABLE_ERROR が発生します。

したがって、出力の呼び出し方法に依存する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top