4

興味深い状況があります。複数のページに含まれるフォームを使用しています (単純化と重複を減らすため)。一部の領域のこのフォームには、DB からの値が入力されています。ただし、これらの値のすべてが常に存在するわけではありません。たとえば、次のような効果を得るために何かを行うことができます。

<?php echo set_value('first_name', $first_name); ?>

これは、値が存在する場合は問題なく機能しますが、初めて名前を入力する可能性があるため、 $user が常に設定されているとは限りません。isset($first_name) && $first_nameはい、ifステートメント内で実行できます(省略形または通常)

変数が設定されているかどうか、およびそれがnullでないかどうかを確認するヘルパー関数を作成しようとしています。ここvarIsset('first_name')で、first_name は実際の変数名 $first_name であり、関数は文字列を取り込み、それを目的の変数 $first_name に変換し、それが設定されていて null でないかどうかを確認します。要件を満たしている場合は、その変数の値 (この場合は「test」) を返します。要件を満たさない場合、つまり設定されていないか null である場合、関数は '{blank}' を返します。

私は CodeIgniter を使用していますが、それが役立つ場合は、近いうちに Laravel に切り替える予定です。どんな助けでも大歓迎です。ここに私がこれまでにまとめたものがありますが、役に立ちません。

function varIsset($var = '')
{   
    foreach (get_defined_vars() as $val) {
        if ($val == $var) {
            if (isset($val) && $val) {
                echo $val;
            }
            break;
        }
    }
    die;
}

使用例を次に示します。

<?php 
if (varIsset('user_id') == 100) {
    // do something
}
?>
4

3 に答える 3

0

試す:

<?php
function varIsset($string){
  global $$string;
  return empty($$string) ? 0 : 1;
}
$what = 'good';
echo 'what:'.varIsset('what').'; now:'.varIsset('now');
?>
于 2014-04-25T01:34:03.450 に答える