0

そのため、私の思考プロセスを示すには機能しない変数と関数があります。

コード:

    $variable = "This is a string!";

    function is($var)
    {
      if( isset ( $var ) )
        return true;
      return false;
    }

    if( is ( $variable ) )
      echo "This variable exists!";
    else
      echo "This variable does not exist!";

出力:

    This variable exists!

$variable が存在するため、関数は正しく動作しますが、$variable が設定または定義されていない場合に問題が発生します。

コード:

    function is($var)
    {
      if( isset ( $var ) )
        return true;
      return false;
    }

    if( is ( $variable ) )
      echo "This variable exists!";
    else
      echo "This variable does not exist!";

出力:

      Notice: Undefined variable: variable on line x
      This variable does not exist!

変数はまだ定義されていないため、参照時に PHP は、参照しようとしたこの変数が未定義であるという通知を返します。変数が適切に設定されていない場合、関数は常に通知を作成するため、これは問題です。これは、そもそも回避しようとしていました。

そこで、参照なしで変数名を文字列として渡そうとしました。

コード:

    $variable = "This is a string";

    function is($string)
    {
      if(isset($$string)) // Variable Variables
        return $$string;
      return "";
    }

    echo is("variable");

しかし、これでもうまくいきませんでした。毎回これを入力する代わりに、短い関数を使用して何かを優雅に出力する方法についてのアイデアがありません。

    echo (isset($variable) ? $variable : "");

参照が存在するかどうか、またはphpを使用していないかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

1

@エラーが表示されないように変数に追加するだけです

次のようにコードを変更できます。

$variable = "This is a string!";
function is($var)
{
  if( isset ( $var ) )
    return true;
  return false;
}

if( is ( @$variable ) )
  echo "This variable exists!";
else
  echo "This variable does not exist!";

あなたは私がこれに変わっif( is ( $variable ) )たことを見つけることができますif( is ( @$variable ) )

于 2013-10-16T02:33:54.417 に答える
0

var で関数を呼び出す前に isset($variable) を確認する必要があります。あなたが望むほど便利ではないかもしれませんが、それがどのように機能するかです。

于 2013-10-16T02:05:39.010 に答える