0

を使用して自分の関数をラップしようとしましたempty()。名前の付いた関数is_emptyは、値が空かどうかをチェックし、空の場合は指定された値を返します。コードは以下の通りです。

static public function is_empty($val,$IfEmptyThenReturnValue)
    {
        if(empty($val))
        {
            return $IfEmptyThenReturnValue;
        }
        else
        {
            return $val;
        }
    } 

そして、私はこの関数を次のように呼び出します。

$d="it's a value";
echo  Common::is_empty($d, "null");

それで大丈夫です。「それは価値だ」と印刷しました。

しかし、私が定義しなかった場合$d。以下のように:

echo  Common::is_empty($d, "null");

はい、「null」を出力します。しかし、それはまた:を印刷しますwaring:Notice

 Undefined variable: d in D:\phpwwwroot\test1.php on line 25.

では、この関数を修正するにはどうすればよいですか?

4

2 に答える 2

1

&あなたの命を救うための簡単な方法:

class Common{
    static public function is_empty(&$val,$IfEmptyThenReturnValue){
        if(empty($val)){
            return $IfEmptyThenReturnValue;
        }else{
            return $val;
        }
    }
}

echo Common::is_empty($d,"null");
于 2013-01-25T01:12:12.037 に答える
0

これを回避するには、変数自体ではなく変数の名前を渡してから、関数で変数変数を使用します。

static public function is_empty($var, $IfEmptyThenReturnValue)
{
    if(empty($$var))
    {
        return $IfEmptyThenReturnValue;
    }
    else
    {
        return $$var;
    }
} 

echo Common::is_empty('d', 'null');

ただし、そもそもこのための関数を使用する代わりに、次のようにします。

echo empty($d) ? 'null' : $d;
于 2013-01-25T01:11:13.967 に答える