Oké。私はこのコードを見て、それがどのように機能し、何をするのか興味がありました。誰かが私にこれを説明できますか?ありがとう!
$_SESSION['langtype']
= (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
Oké。私はこのコードを見て、それがどのように機能し、何をするのか興味がありました。誰かが私にこれを説明できますか?ありがとう!
$_SESSION['langtype']
= (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
値が設定されていない場合はfalseを入力し$_SESSION['langtype']
、それ以外の場合は現在の値を保持します。
http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternaryも参照してください。
これは、このステートメントで使用される三項演算子です
$ _SESSION ['langtype'] =(empty($ _ SESSION ['langtype']))?'false':$ _ SESSION ['langtype'];
これは、 langtypeという名前のセッション変数が空の場合はfalseを返し、それ以外の場合は定義されたものと同じlangtypeを使用することを意味します。
?の後の部分 関数の場合の値を表す
empty($ _ SESSION ['langtype'])trueを返します(空の場合はfalseに設定するか、その変数の定義を解除します)。
$ _SESSION ['langtype'] = false;
:の後の部分はelseステートメントを表します。つまり、langtypeが空でない場合は、そのままにします(定義値と等しい)として
$ _SESSION ['langtype'] = $ _ SESSION ['langtype'];
三項演算子と呼ばれます。これは、条件式と、条件の両方の評価の戻り値で構成されます。
// if expression evaluates to true first value will be returned,
// otherwise it will the second
$variable = (expression) ? 'value if true' : 'value if false';
空の場合(またはキーを持つ値が存在しない場合)は(BOOL VALUEではなくSTRINGとして)入力し、それ以外の場合は同じ値を保持"false"
します$_SESSION['langtype']
。$_SESSION['langtype']
langtype
"false"
文字列として入れるのはおそらく悪い考えです。たとえば、この傑作の作者がチェックを行うことを決定したif ($_SESSION['langtype']) { }
場合、どのような場合でもtrueを返します。私は興味があります。その場合、この解決策は合理的であるはずです。
if-else
その声明の速記。(empty($_SESSION['langtype']))
それ$_SESSION['langtype'] = false
以外の場合$_SESSION['langtype'] = $_SESSION['langtype']
設定されていない場合(true)、falseになります。そうでない場合、(false)セッション値が出力されません。
$_SESSION['langtype'] = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
初心者の場合、上記のコードはあなたが知っているかもしれない長いバージョンと同じです
<?php
if(empty($_SESSION['langtype'])) {
$_SESSION['langtype'] = 'false';
} else {
$_SESSION['langtype'] = $_SESSION['langtype'];
}
?>