0

設定されているかどうかに関係なく変数を取る関数を作成しようとしていますが、

関数 isset() のように

//we have this array
$array  = array();
isset($array["test"]);//this one is valid 
myFunc($array["test"]);//this one is not valid 

関数が変数を設定しないようにするにはどうすればよいですか?

4

2 に答える 2

1

$_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');
?>

これで、設定されているかどうかを確認する必要がなくなりました。

于 2012-07-15T09:34:40.540 に答える
1

引数を参照として渡します http://php.net/manual/en/language.references.pass.php

function myFunc(&$val)
{
    return isset($val);
}

var_dump(myFunc($undefined));
于 2012-07-15T09:04:28.020 に答える