設定されているかどうかに関係なく変数を取る関数を作成しようとしていますが、
関数 isset() のように
//we have this array
$array = array();
isset($array["test"]);//this one is valid
myFunc($array["test"]);//this one is not valid
関数が変数を設定しないようにするにはどうすればよいですか?
設定されているかどうかに関係なく変数を取る関数を作成しようとしていますが、
関数 isset() のように
//we have this array
$array = array();
isset($array["test"]);//this one is valid
myFunc($array["test"]);//this one is not valid
関数が変数を設定しないようにするにはどうすればよいですか?
$_GET
特定のフィールドがプログラムに渡されることに依存できないため、友人を使用している場合、この問題に遭遇するのはよくあることです。
これにはユーティリティ クラスを使用するので、設定されていない var によるエラーを回避し、デフォルト値を設定することもできます。
<?php
function defArrayElem(&$array, $key, $default=null) {
if(!isset($array[$key])) {$array[$key]=$default;}
}
//repeat for all the $_GET/$_POST vars you expect...
defArrayElem($_GET,'keyname','default-value');
?>
これで、設定されているかどうかを確認する必要がなくなりました。
引数を参照として渡します http://php.net/manual/en/language.references.pass.php
function myFunc(&$val)
{
return isset($val);
}
var_dump(myFunc($undefined));