我已经关注了代码段,请仔细阅读:
<?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; ?>
在我的编码经验中,大部分时间我都使用!isset( $_COOKIE["FirstTimer"] )
语句看到if
等语句。我生命中第一次用赋值算子观察这样的陈述。
在上面的代码中,我只想了解$user_is_first_timer = !isset( $_COOKIE["FirstTimer"] );
语句的作用?
逻辑非(!)运算符在此代码行中的作用是什么?
请以清晰可靠的解释清除我的怀疑。
谢谢。
答案 0 :(得分: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.
输出:
bool(false)
bool(true)
因此,在您的示例中,如果未设置cookie值(!isset),则表明您之前没有访问过该网站。
通过分配,您可以拥有$true = !false
。 $true
这里将成立,而不是虚假。