1

ここですでに多くの人から尋ねられた問題があります: 文字列をエコーし​​ようとすると、「キャッチ可能な致命的なエラー: D:\Programy\XAMP\htdocs\e-history でクラス Struct のオブジェクトを文字列に変換できませんでした」 \test.php の 30 行目". ほとんどの関連する質問については、var_dump()関数を試すことが提案されました。ただし、これを試してみたところ、エラーがスローされることを除いて、すべて問題ないようです。

私のコード(テスト版):

$place = Struct::factory('gid','lat','lon','radius');

$places = loadPlaces('', 50, 14);
$j = 0;

var_dump($places[$j]->gid);
echo "$places[$j]->gid";

var_dump と echo の出力は次のとおりです。

string(1) "6"
Catchable fatal error: Object of class Struct could not be converted to string in D:\Programy\XAMP\htdocs\e-history\test.php on line 30

通常は $object->value 表記で問題ないのですが、今回の場合なぜうまくいかないのかわかりません。配列とオブジェクトの不一致でいくつか問題がありましたが、この場合ではないことはほぼ確実です。それを解決する方法はありますか?

編集:私のコードの30行目は:echo "$places[$j]->gid";

4

1 に答える 1

2

これらの 2 つの行には違いがあります。

echo "$places[$j]->gid";
echo $places[$j]->gid;

最初のものは、文字列変数内のオブジェクトに誤ってアクセスしようとします。2 つ目は と同じようにアクセスしvar_dumpます。変数を二重引用符で囲む必要はありません!

最初のバージョンは次のようになります。

echo "{$places[$j]->gid}";
于 2013-08-08T21:18:52.547 に答える