• ベストアンサー

PHP5で、 以下は変数が間違っているのですが、ワーニングが出ませんで

PHP5で、 以下は変数が間違っているのですが、ワーニングが出ませんでした。 error_reporting(E_ALL | E_STRICT); $a = 10; print $b; error_reportingで検知できないのは、何か私が勘違いしているのでしょうか? 変数の誤使用(未使用)を防ぐ方法が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

PHP: error_reporting - Manual [quote cite="http://jp.php.net/manual/ja/function.error-reporting.php "] 警告 ほとんどの E_STRICT レベルのエラーは スクリプトのコンパイル時に発生します。そのため、 error_reporting で E_STRICT を含むように設定されている環境では これらのエラーを検出できません (逆も同様です)。 [/quote]

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

私の環境では Notice: Undefined variable: b in ~~~ と出ました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHP Strict Standards

    本に載っている、PEARのCalendar.phpを使用したプログラムを実行すると Strict Standards: Non-static method Calendar_Engine_Factory::getEngine() should not be called statically, assuming $this from incompatible context in /usr/share/php/Calendar/Calendar.php on line 210 というエラーが出ます。 ネットで検索すると、php.iniの中の error_reporting = E_ALL | E_STRICT を error_reporting = E_ALL | ~E_STRICT に変えるだけでエラーが出なくなるみたいでした。 http://www.xoops.org/modules/newbb/viewtopic.php?post_id=330699 私のは error_reporting = E_ALL & ~E_DEPRECATED となっていたので、 error_reporting = E_ALL | ~E_STRICT に変えてlamppを再起動しましたが、まったく同じエラーが出ます。 error_reporting = E_ALL & ~E_STRICT にしても同じです。 解決方法を教えてください、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Strict Standardsエラーを消したい

    PHP初心者です。 MAMPを使用して、macにてローカル環境でwordpressサイトを制作中です。 MAMPのPHPは5.4.10と設定しています。 wordpressを最新版に更新して、ダッシュボードにログインすると Strict Standards: Only variables should be passed by reference in /ファイル名~ など、Strict Standardsから始まる警告文がたくさん出ました。 /Applications/MAMP/conf/php5.4.10/php.ini の該当箇所と思われる部分を ;error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ; ; - Show only errors ; ;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; ; - Show all errors except for notices ; ;error_reporting = E_ALL | E_STRICT error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ~略~ display_errors = Off 等と記述していますが、ダッシュボードに変化はありません。 /Applications/MAMP/bin/php/php5.4.10/conf/php.ini でも試してみましたがダメでした。 変更後は、Apacheの再起動もしています。 PHPの仕組みが理解できていないので、根本的なところが抜けているのかもしれません。 恐縮ですが、教えていただけると幸いです。

    • 締切済み
    • PHP
  • PHPの変数の渡し方

    現在以下のような位置関係のファイルでa.phpからb.phpに変数を渡したいのですが、うまく行きません。 ├dir1 │ └a.php └dir2   └b.php a.php <?php public function a(){ $value = "test"; } ?> b.php <?php public funcition b(){ print($value); } ?> phpについてwebで調べ、a.phpで$valueをglobalにしてb.phpでは 関数内でinclude('../dir1/a.php')を記述して$GLOBALS['$value']を 使ってみたのですが、うまく値がとれませんでした。 a.phpで変数をテンプレートに設定して $smarty->Set('Value', $value); それをb.phpで取得しようとしたのですが $smarty->getTemplateVars(Value); 取得する事ができませんでした。 同じようにgeTTemplateVarsを使って別のphpでは取得出来たりするのですが、 このsmartyのスコープ?というのもわかりません。 phpScheduleItというスケジュール管理のパッケージを触っていて、 php自体初めてで深い実装が全て追えていません。 勉強不足で申し訳ないのですが、何かヒントとなる事がありましたらご教示頂けますでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのエラーがでない

    お世話になります よろしくお願いします 使えるネット様のサーバーを使用しています。 PHPでデバッグ用にエラーの表示をしたいのですが どうすればいいか分からず困っています [php.ini] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Error handling and logging ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; error_reporting = E_ALL & ~E_NOTICE display_errors = On display_startup_errors = Off log_errors = Off log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off html_errors = On ソースに error_reporting(E_ALL|E_STRICT); を入れてもだめでした 怪しいところといえば phpinfoで Configurationの箇所がLocal ValueとMaster Valueに分かれているのですが Master Valueのほうがdisplay_errors On Local Valueのほうがdisplay_errors Off になっています。 原因はこれじゃないかなと思っているのですが どうすればいいか分からず困っています 以上よろしくお願いします

  • PHPのエラー表示について

    PHPを勉強し始めたばかりの初心者です。 開発環境はDreamweaverとwebmatrixです。 出力結果をブラウザで確認しているのですが、 エラーの詳細が表示されず HTTPステータスコード(404 Not Foundなど)しか返ってきません。 php.iniは、ネットで調べて以下のように設定しました。 display_errors = On error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT でも、表示が変わりません。 phpinfo();の結果表示内のLoaded Configuration Fileの項目は C:\xampp\php\php.iniですので、それを編集しています。 更新されてないのかな?と思ってPCを再起動しましたが変わりませんでした。 ご存知の方がいらっしゃいましたら、ご教示ください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpでの局所変数

    phpで、perlでいうlocalやmyのような宣言はできないのでしょうか? function a() {  if(1){   $a=2;   print "$a<br>";  }  print "$a<br>"; } としても2が2つ表示されてしまいます。 ある関数内で場所を問わず宣言したグローバル変数でない変数のスコープは、宣言場所がどこであれ、「関数内」となるのでしょうか?

    • ベストアンサー
    • PHP
  • perlでいうdefiendのようなもので、警告をださない方法

    厳密な警告は残したまま、ある配列の添え字が定義されているか調べたいのですが、この箇所だけ、error_reporting(E_USER_NOTICE)にして、自分でエラーハンドリングするしかないのでしょうか? <?php error_reporting(E_ALL); $a = array(); $b = is_null($a[1]); // <-- ここで判定したい。(しかし、E_ALLにすると警告が表示されます。) var_dump($b); // true ?>

    • ベストアンサー
    • PHP
  • どうしても、ウェブ上でPHPエラーメッセージがでない

    error_reporting = E_ALL display_errors = On にしてるのに、わざとphpの構文エラーをだしても、ナニもブラウザにエラーが表示されません。 なお、phpとincファイルを「error」で全検索しても、特にナニも検索にひっかかりません。 なぜでしょうか? おわかりのかたいらっしゃいましたら、教えていただければ幸いです。

    • ベストアンサー
    • PHP
  • phpの変数について

    fedora3,apache2.0,php4.3.11で構成しています。 参考書やサイトを見ながら学習中なのですが、初歩でつまづいています。 <html><body> <?php print $YourName; ?>さん、こんにちは。 </body></html> というa.phpと名づけたファイルにIEでアクセスしているのですが、このときに「サーバ名/a.php?YourName="kokoro"」と打てば、$YourNameという変数に"kokoro"という文字が代入されるとあるのですが、代入されません。参考書のPHPは4.0です。他の参考にしているサイトのPHPのバージョンは分かりません。

    • ベストアンサー
    • PHP
  • PHP GETで飛ばす変数の中身

    PHP GETで飛ばす変数の中身 a.php→b.phpへ進むボタンを押したとき、 a.phpのフォーム入力でエラーがあった場合はa.phpへ戻るページを作っています。 各フォームの入力チェックは正規表現で判定し、 誤った入力がされた場合は$input2="2"; 正しい入力の場合(else)は$input2=""; のような形で変数に値を代入しています。 ※$input2には「何も入らない」か「2」が入るようにしているつもりです。 入力エラー時にa.phpへ戻る記述は ------------------------------------------------------------------------------ if($input1=="1"||$input2="2"||$input3="3"){   header("Location:a.php?SID&input1=$input1&input2=$input2&input3=$input3"); } ------------------------------------------------------------------------------ のような形にしています。(長ったらしい部分は省いています。) ところが、エラーがないときにa.phpに戻ってb.phpに進まなくなってしまいました。 アドレスバーをみると【input2=1】となっており、なぜか$input2に「1」が入ってしまっているようです。 $input2には「何も入らない」か「2」が入るように記述しているつもりなのですが、 「1」が入ってしまう理由がよく分かりません。 エラーがない場合はb.phpへ進みたいので、「何も入らない」状態にしたいです。 なぜ「1」が入ってしまうのかお分かりの方がいらっしゃれば教えて頂けると嬉しいです。 ※PHPは勉強し始めたばかりなので、不足している点などあればご指摘下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP