-2

、それを介して行ってください。代入演算子の左側の変数に常にfalse値を代入するために、代入演算子で論理NOT(!)演算子が使用されていますか?私は、コードスニペットを以下まし

<?php 
    // Top of the page, before sending out ANY output to the page. 
     $user_is_first_timer = !isset($_COOKIE["FirstTimer"]); 

    // Set the cookie so that the message doesn't show again 
     setcookie("FirstTimer", 1, strtotime('+1 year')); 
?> 

<H1>hi!</h1><br> 


<!-- Put this anywhere on your page. --> 
<?php if($user_is_first_timer): ?> 
    Hello there! you're a first time user!. 
<?php endif; ?> 

を私のコーディングの経験では、ほとんどの時間、私はif声明で!isset($_COOKIE["FirstTimer"])のような文を見てきました。私の人生で初めて、代入演算子でそのような記述を観察しています。

上記のコードでは、$user_is_first_timer = !isset($_COOKIE["FirstTimer"]);というステートメントは何を理解したいのですか?

このコード行で論理NOT(!)演算子の役割は何ですか?

信頼性の高い説明がわかりましたか。

ありがとうございます。

+2

シングル!ブール値を反転させるだけです。 'isset($ _COOKIE [" FirstTimer "])'がtrueを返す場合、ユーザはこのロジックの最初のタイマーではないと思います。だから、$ user_is_first_timerに割り当てられているのは! + true(= false)... – marekful

+0

'setcookie'の2番目の引数は文字列でなければなりません。 – Progrock

答えて

2

例。

ISSET(isset:変数が設定されているかどうかを判断し、NULLではありません):

$foo = '1'; 
$bar = ''; 
$baz = null; 

var_dump(isset($foo)); 
var_dump(isset($bar)); 
var_dump(isset($baz)); 
var_dump(isset($bat)); 

出力:

bool(true) 
bool(true) 
bool(false) 
bool(false) 

ないオペレータ:

var_dump(!true); 
var_dump(!false); 

出力:

bool(false) 
bool(true) 
一緒

$qux = 'something'; 
var_dump(!isset($qux)); 
var_dump(!isset($quux)); // Note quux isn't set. 

出力:(!ISSET)

bool(false) 
bool(true) 

だからあなたの例では、クッキーの値が設定されていない場合、あなたは彼らが以前にサイトを訪問していない締結されています。

割り当ての場合、$true = !falseにすることができます。ここでは$trueが真であり、偽ではありません。

関連する問題