PHP fails silently when php-code is within html tag
- by Michal M
PROBLEM UPDATED, READ BELOW
For some reason my CI fails silently when loading view.
Loading view is simply called from controller
$this->load->view('templates/default.php');
Now. There are some functions in the loaded view that are not defined unless a proper helper is loaded as well. Normally, php would throw an error, but instead it fails silently here. I have no idea why. The template gets outputted till the line containing the undefined function.
It took me long time to realise where my script is failing.
Here's my setup:
Windows 7 Ultimate
Apache 2.2.15
PHP 5.3.2 with following error reporting settings:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL | E_STRICT
CodeIgniter 1.7.2
Any ideas why would that be?
UPDATE
After further debugging, it turned out that PHP fails to report any errors when php code is inline with HTML and within the HTML tag. Now this is bizarre.
This returns Fatal Error:
<p><?php echo $bogus(); ?></p>
This doesn't and fails silently:
<p class="<?php echo $bogus(); ?>">paragraph</p>
Why? :O
UPDATE 2
Further investigation showed that if an error_log in PHP is specified, the errors are in fact reported in that file, but still not in the browser... Again, why?
UPDATE 3
Actually my code should be slightly different. Checked another PHP installation on completely different machine and it confirmed the PHP bug. Reported here:
http://bugs.php.net/bug.php?id=52040