O'imkansız __dan özel durum s neden olabilirdi()?
İmkansız __olabilirdi dan özel durum neden()?
class a
{
public function __toString()
{
throw new Exception();
}
}
$a = new a();
echo $a;
yukarıdaki kod bu üretir:
Fatal error: Method a::__toString() must not throw an exception in /var/www/localhost/htdocs/index.php on line 12
Bu davranış, açıklanan http://php.net/manual/en/migration52.incompatible.php işaret ettim, ama neden? Bunu yapmak için herhangi bir sebep?
Burada kimse bunu bilmiyor olabilir mi?
Her zamanki gibi php-dev-team şey diyor ama kılavuzu görmek tracker hata: http://bugs.php.net/50699
CEVAP
Birkaç aramadan sonra diyor ki this, buldum:
Johannes açıkladıbir özel durum dizesi için bir döküm sırasında atılan doğru Çalışabilir Motoru tarafından ele olacaktır emin olmak için bir yolu yokturbu Motorun büyük parçaları yeniden sürece değişmeyecek. Geçmişte bu tür konular hakkında tartışmalar olduğunu da sözlerine ekledi ve Guilherme arşivleri kontrol önerdi.
Johannes yukarıda başvurulan "" PHP bu şekilde davranır neden olarak bulabilirsiniz. bir açıklama resmi olarak muhtemelen bu yüzden PHP 5.3 Sürüm Yöneticisi,
Bu bölümde söz ediyor:
__toString()
, garip trigger_error() kabul eder.
Yani tüm __toString()
içinde hata raporlama açısından kayıp değildir.
Özel durum açıklaması ve yığın bir ist...
Neden yok'artan Null< t;int>...
Özel durum.Mesaj vs Hariç.()Olabilirdi...
Neden tuval yapar.() toDataURL Güvenli...
Neden özel durum kötü idare ediyor?...