2012-01-14 6 views
0

私はインクルードと必要の違いをphp hereで読んでいました。投げられたエラーは表示されないようにする必要があります

require will throw a PHP Fatal Error if the file cannot be loaded. 

私は、違いについての詳細の理解を得るために、PHPでのテストファイルを作成したが、それらの両方が(私はrequireにエラーが表示されていない)何も表示されません。

私を助けてください。おかげ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<?php 
for($value = 0; $value < 10; $value++) 
if($value>10) 
require("boom.php"); // no such file exits in real 
?> 
</body> 
</html> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Untitled Document</title> 
    </head> 

    <body> 
    <?php 
    for($value = 0; $value < 10; $value++) 
    if($value>10) 
    include("boom.php"); // no such file exits in real 
    ?> 
    </body> 
    </html> 
+0

'のerror_reporting(E_ALL);' – noob

答えて

3

$valueは10より大きくなることはありませんし、あなたの致命的なエラーています:

<?php 
require("boom.php"); // no such file exits in real 
?> 
+0

感謝を。私はそれをしたと私は時間が私に誤差を与える間に10回エラーを与える必要があることを参照してください。それらの違いは今やもっと混乱しています.includeはエラーを出すべきではありません。 –

+1

Includeは警告を出しますが、ページの実行を停止しないでください。 – Damien

0

は、おそらくあなたのPHPははdisplay_errorsを使用すると、クライアント側の出力にエラーメッセージが表示されませんを意味し、オフになっています。開発環境のphp.iniでこの設定を有効にする必要があります。

あなたはこのような何かに何かを持っていた場合、あなたは少なくとも失敗見てきたと思います。そこにはいくつかの実際の出力で

<html> 

<body> 
<p>Before require</p> 
<?php require('does-not-exist'); ?> 
<p>After require</p> 
</body> 

</html> 

に、あなただけのテキストが出力されます「の前に必要」という参照してくださいね - require()が失敗すると、スクリプトは実行を終了します。お使いのバージョンで

、あなたは目に見える出力を持っていないし、たぶんdisplay_errorsが無効になって何</body></html>

0

が股関節ありませんを参照するには、ブラウザでページのソースを見ているでしょう。これはphpinfo()に電話することで確認できます。

(開発システムのみ推奨)画面上で直接エラーを表示するには、スクリプトの先頭で

ini_set('display_errors',1); 
error_reporting(E_ALL|E_STRICT); 

を置くようにしてください。

EDIT Doh!私はダミアンの答えに行く。これを試してみてくださいあなたのテストコードが間違っている

関連する問題