PROBLÈME MISE À JOUR, LIRE CI-DESSOUSPHP échoue silencieusement lorsque le code php-est dans balise html
Pour une raison quelconque mon CI échoue silencieusement lors du chargement de vue.
vue de chargement est simplement appelé contrôleur de
$this->load->view('templates/default.php');
maintenant. Certaines fonctions de la vue chargée ne sont pas définies à moins qu'un assistant approprié soit également chargé. Normalement, php jette une erreur, mais à la place il échoue silencieusement ici. Je ne sais pas pourquoi. Le template est sorti jusqu'à la ligne contenant la fonction indéfinie.
Il m'a fallu beaucoup de temps pour réaliser où mon script échoue.
Voici ma configuration:
- Windows 7 Édition Intégrale
- Apache 2.2.15
- PHP 5.3.2 avec les paramètres suivants de rapports d'erreur:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL | E_STRICT
- CodeIgniter 1.7.2
Toutes les idées pourquoi serait-ce?
MISE À JOUR
Après le débogage plus, il est apparu que PHP ne signale aucune erreur lorsque le code php est en ligne avec HTML et dans la balise HTML. Maintenant c'est bizarre.
Ce retourne Erreur fatale:
<p><?php echo $bogus(); ?></p>
Cela ne veut pas et échoue silencieusement:
Pourquoi? : O
MISE À JOUR 2
enquête plus poussée a montré que si un error_log
en PHP est spécifié, les erreurs sont signalées en fait dans ce dossier, mais pas encore dans le navigateur ... Encore une fois, Pourquoi?
MISE À JOUR 3
En fait, mon code devrait être légèrement différent. Vérifié une autre installation PHP sur une machine complètement différente et cela a confirmé le bug PHP.Rapporté ici: http://bugs.php.net/bug.php?id=52040
Re votre mise à jour: Il n'échoue probablement pas en silence. Ce n'est tout simplement pas visible dans le navigateur. Jetez un oeil sur le code source. –
Vérifié cela. La source se termine à la ligne précédant la fonction 'bogus()'. –
Vous semblez élever un bug PHP? Ou pourrait-il s'agir d'une astuce où une fonction inexistante pré-prested avec un dollar est convertie en variable? Vous pourriez essayer de l'entourer d'accolades ('{$ bogus}()'). – Kurucu