MENU

PHPでエラーが表示されない時はdisplay_errorsの値を”On”にする

PHP

さて。
以前、mb_check_encoding関数の機能を有効にさせるためには?(PHP)
という記事を書きました。PHP5.3をインストールした直後のことで、
何かと設定のことをくちゃくちゃといじっていた時のことです。

今回の記事も、設定がらみで困って解決したことです。

問題の内容

コードにエラーがあるのに、
画面が真っ白になって何も表示されない。

問題の補足

[php]
<?php
class User {
public $name;
private $email;

public function __construct($name, $email) {
$this->name = $name;
$this->email = $email;
}

public function sayHi() {
echo "Hi my name is ".$this->name;
}
}

$ichiro = new User("ichiro", "ichiro@dummy.com");
$maakun = new User("maakun", "maakun@dummy.com");

echo $ichiro->email."<br/><br/>";
echo $maakun->email."<br/><br/>";

echo $ichiro->sayHi()."<br/><br/>";
echo $maakun->sayHi()."<br/><br/>";
?>
[/php]

このコードは本来、
Fatal error: Cannot access private property User::$email in /var/www/html/index2.php on line 19
というエラーが表示されるはずです。
(4行目の$emailというメンバ変数のアクセス修飾子がprivateとなっていて、
クラスの外からはアクセスできないため)

問題の解決方法

1.error_reportingを設定する

私の場合error_reporting = E_ALL | E_STRICTに。

error_reporting

2.display_errorsの値をOnにする

デフォルトでは”Off”になっていたので”On”に変更。

display_errors

3.Apacheの再起動

$sudo service httpd restartをお忘れなく!

なおphpinfo関数でチェックするとdisplay_errorsが
“On”になっていることが分かります。

phpinfo

【参考サイト】

PHP

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次