2
<?php

function myFunction($yesNname) { } 

empty($noName);
print_r($noName);
isset($noName);

myFunction($noName);

出力:

PHP Notice:  Undefined variable: noName ... on line 6 // print_r
PHP Notice:  Undefined variable: noName ... on line 9 // myFunction

未定義の変数は、empty()およびisset( )で使用されます。しかし、PHPはそれについての通知を発行しませんでした。PHPが一部の関数に差別を示すのはなぜですか?どうすればそのようなタイプの関数を書くことができますか?

4

3 に答える 3

3

あなたは次のような意味でしたか:

if(!empty($noName)) {
 // print_r
 // function($noName);
}
于 2012-12-14T10:57:08.383 に答える
3

isset()関数でもありませんempty()。マニュアルで説明されているように:

これは言語構造であり、関数ではありません

この動作を実現するには、Cで記述されたPHPソースコードを微調整する必要があります。

PHP拡張機能を使用してこの動作を取得することもできますが、Cで記述してサーバーにインストールする必要もあります。

アップデート:

于 2012-12-14T10:58:52.383 に答える
2

関数側でそれを行う方法はありません。単にエラーを表示したくない場合は、関数を呼び出す前に最初に変数をチェックするか、エラー制御演算子「@」を使用できます。

于 2012-12-14T11:30:23.037 に答える