変数がまだ設定されていない場合は、変数をデフォルト値に設定する必要があります。次の設定は仕事をします:
if ($foo ~ "^$") {
set $foo default-value;
}
ただし、ランタイム警告が生成されます。
初期化されていない「foo」変数を使用する
警告を生成せずに、グローバルに警告をオフにせずに変数が設定されているかどうかをテストする方法はありますか?
uninitialized_variable_warn off;
同様の何かを探しているときにこれを見つけましたが
—
ハラヴィック
uninitialized_variable_warn
、グローバルに設定する必要はないようです。初期化されていない可能性のある変数を使用する必要がある場所に設定するだけです。SSLの詳細をPHPに渡すためにこれを使用していますが、SSLなしでページにアクセスすると空になります。
@Haravikkそれはそうではないようです
—
-n1te
nginx: [emerg] "uninitialized_variable_warn" directive is duplicate in
まだ別の場所に設定していますか?私は、PHPをサポートする場所によってのみインポートさ
—
-Haravikk
uninitialized_variable_warn
れるの一部として使用しているphp.conf
ので、他のすべての場所に警告を残しながら、それらのスコープ内でのみそれを使用しています。uninitialized_variable_warn
ただし、他のスコープには設定していません(デフォルトのままにしますtrue
)。
set_if_empty
から試してください