У меня следующий фрагмент кода, пожалуйста, просмотрите его:
<?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"] );
делать?
Какова роль логического оператора not (!) В этой строке кода?
Пожалуйста, проясните мои сомнения с хорошим и надежным объяснением.
Благодарю вас.
К примеру.
Исет (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
здесь будет справедливо, а не ложно.
Других решений пока нет …