Tüm olası PHP hataların listesi

4 Cevap

PHP kodlama yaparken Bazen, biz bu gibi ayrıştırma veya sözdizimi hataları alıyorum:

Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in /var/www/example/index.php on line 4

Olası tüm hataların bir listesini PHP yorumlayıcısı olabilir ki çıktısı olup olmadığını bilmek istiyorum. Ben php.net aradık, ama böyle bir şey bulamadı. Ben akademik amaçlı bu liste gerekir.

4 Cevap

Hiçbir iyi bir yolu yoktur. Zend_Error için bile önerilen grep () işe yaramaz. Eğer söz konusu gösteren konum tür hatalar çoğunlukla bizon ayrıştırıcı jeneratör tarafından üretilen ve PHP sadece oradan alır. Benzer şeyler (dosyaları açarak hataları gibi) işletim sistemi tarafından bildirilen hataları ile olur. Hataları üzerinde çalıştığı ve derleme sırasında versiyonları kullanılan işletim sistemine bağlıdır olarak PHP geliştiricileri gerçekten bu iyi bir listesini oluşturmak olamaz.

Zend_error () ve php_Error_docref için grepping tek şey () olası hata türlü genel bir bakış olduğunu gösteriyor, ancak bugüne kadar tüm hata iletileri alabilirsiniz.

I don't know if exists a comprehensive list of the possible PHP errors, but about parser errors you should checkout the list of PHP Parser tokens

http://php.net/manual/en/tokens.php

Burada manuel diyor:

*Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.*

Ben böyle bir liste farkında değilim, ama her zaman indirebilir veya çıkış php kaynaklar ve benzeri bir şey yapabilir

 find . -name "*.c" | xargs grep "zend_error"

Bu (çiftleri dahil) son PHP kaynağı benim için 1346 hit verir. Bu, gitmek için iyi bir yol olabilir ancak tam olmaktan uzak nedeniyle @ johannes tarafından açıklanan nedenlerle liste.

Öte yandan, ben onların çalışma zamanı sırasında çözümleyici tarafından derlenir ve her yerde kaynak listede olmayan hayal gibi, zaten type ayrıştırma hatası belirli bir tanımlamak son derece zor olacak.

Eğer bu ihtiyaç ne anlatabilir misin? Belki de zaten ne ihtiyaç için yeterli hataları bir "alt sınıf" tanımlayabilirsiniz.