0

Oké。私はこのコードを見て、それがどのように機能し、何をするのか興味がありました。誰かが私にこれを説明できますか?ありがとう!

$_SESSION['langtype']
   = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
4

7 に答える 7

3

値が設定されていない場合はfalseを入力し$_SESSION['langtype']、それ以外の場合は現在の値を保持します。

http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternaryも参照してください。

于 2012-10-17T12:54:49.447 に答える
1

これは、このステートメントで使用される三項演算子です

$ _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'];

于 2012-10-17T12:57:45.703 に答える
1

三項演算子と呼ばれます。これは、条件式と、条件の両方の評価の戻り値で構成されます。

// if expression evaluates to true first value will be returned,
// otherwise it will the second 
$variable = (expression) ? 'value if true' : 'value if false';
于 2012-10-17T12:58:40.100 に答える
1

空の場合(またはキーを持つ値が存在しない場合)は(BOOL VALUEではなくSTRINGとして)入力し、それ以外の場合は同じ値を保持"false"します$_SESSION['langtype']$_SESSION['langtype']langtype

"false"文字列として入れるのはおそらく悪い考えです。たとえば、この傑作の作者がチェックを行うことを決定したif ($_SESSION['langtype']) { }場合、どのような場合でもtrueを返します。私は興味があります。その場合、この解決策は合理的であるはずです。

于 2012-10-17T12:55:54.097 に答える
1

if-elseその声明の速記。(empty($_SESSION['langtype']))それ$_SESSION['langtype'] = false以外の場合$_SESSION['langtype'] = $_SESSION['langtype']

于 2012-10-17T12:56:36.967 に答える
0

設定されていない場合(true)、falseになります。そうでない場合、(false)セッション値が出力されません。

于 2012-10-17T12:57:51.073 に答える
0
$_SESSION['langtype'] = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];

初心者の場合、上記のコードはあなたが知っているかもしれない長いバージョンと同じです

<?php
     if(empty($_SESSION['langtype'])) {
           $_SESSION['langtype'] = 'false';
     } else {
          $_SESSION['langtype'] =  $_SESSION['langtype'];
     }
 ?>
于 2012-10-17T12:59:39.247 に答える