今朝突然、PHP サーバーが一部の Web ページの提供を停止しました。私は何も変更しませんでしたが、自動更新によって変更された可能性があります。PHP インスタンスがセグメンテーション違反を起こし、Apache が空白のページを返しました。私はこれに問題をたどりました:
array_unique( $arr ); # segfault
のオブジェクトの文字列表現を使用します$arr
。これにより、プログラムもセグメンテーション違反になります。
echo $arr[0]; # segfault
しかし、これはそうではありません!
echo $arr[0]->__toString(); # works as expected
これはセグメンテーション違反を行います:
echo (string)$arr[0]; # segfault
最後の3行は同じだと思っていました。
何が間違っている可能性がありますか?MWE を書いてみますが、誰かがこれを以前に見て何かアイデアを持っているのではないかと考えました。
function __toString() {
return 'Product #' . $this->id;
}