【回転】PHP Notice:undefined index完璧な解決方法

1821 ワード

普段は$GET[‘xx’]がパラメータ値を取得した場合、パラメータが送信されていないと判断していない場合、このような警告が発生します.
PHP Notice: undefined index xxx
エラー表示方式を設定することでこのヒントを隠すことができますが、サーバのログにこれらのヒントが記録され、ログファイルが異常に膨大になるという危険性もあります.次は、ネット上で流行している解決策を引用します.
まず、これは間違いではなくwarningです.したがって、サーバが変更できない場合は、各変数を使用する前に定義する必要があります.
方法1:サーバ構成変更php.iniプロファイル、error_reporting = E_ALL & ~E_NOTICE
方法2:変数を初期化し、仕様書を書く(大量の変数があるため煩わしい).しかしまだ良い定義の方法を探し当てていないで、みんなが指導することを望みます
方法3:各ファイルヘッダに:error_を付けるreporting(0); だめならphpを開けるしかない.ini、displayを見つけてerrors、displayに設定errors = Off.以降、エラーは表示されません.方法4:判断する:isset($_GET["page"])if-else判断
または'@'を追加すると、この行にエラーがあったり、警告があったりした場合に出力しないことを示します:@$page=$GET["page"]
方法5:file 1.phpファイルは$xx変数に値を付けpostでfile 2に渡す.php、file 2の場合.phpには$xxの定義はなく、$yy=$xxを直接使用します.ファイル2の場合、「undifined variaable$xx」とエラーが発生します.phpのファイルは$xx=""";定義、file 1.phpの$xx値は伝わらない!
file2.phpではif(!isset($xx)$xx=";
しかしJonesは、これらの方法はあまり便利ではないと考えています.このように解決してもいいです.
関数を定義します.
function _get($str){
    $val = !empty($_GET[$str]) ? $_GET[$str] : null;
    return $val;
}

そして使うときは、そのまま_get('str')は$_の代わりにGET['str']でいい~
便利ではないでしょうか.
転載先:https://www.cnblogs.com/lzhitian/archive/2012/08/17/2644266.html