note 124362 added to language.operators.comparison
| From: | azz@php.net | Date: | Sun, 03 Nov 2019 18:26:34 +0000 |
| Subject: | note 124362 added to language.operators.comparison | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-212885@lists.php.net to get a copy of this message | ||
Keep in mind that ?: operator is NOT fully equal to empty()
?: can't check non-existent array index (as describe here https://www.php.net/manual/ru/language.operators.comparison.php#92685)
and vars
Check this:
<?php
ini_set('error_reporting', E_ALL);
$t = [];
var_dump(!isset($t['z']) || $t['z'] == FALSE); // true, this that empty() do
var_dump(empty($t['z'])); // true
var_dump(isset($t['z'])); // false
$v1 = $t['z'] ?: false; // Notice: Undefined index: z
$v2 = $t['z'] ?? false; // silent!
var_dump($v1); // false
var_dump($v2); // false
var_dump(!isset($non_existent_var) || $non_existent_var == FALSE); // true, this that empty() do
var_dump(empty($non_existent_var)); // true
var_dump(isset($non_existent_var)); // false
$v1 = $non_existent_var ?: false; // Notice: Undefined variable: non_existent_var
$v2 = $non_existent_var ?? false; // silent!
var_dump($v1); // false
var_dump($v2); // false
----
Server IP: 208.43.231.9
Probable Submitter: 103.51.167.36 (proxied: 93.75.152.71)
----
Manual Page -- http://php.net/manual/en/language.operators.comparison.php
Edit -- https://master.php.net/note/edit/124362
Del: integrated -- https://master.php.net/note/delete/124362/integrated
Del: useless -- https://master.php.net/note/delete/124362/useless
Del: bad code -- https://master.php.net/note/delete/124362/bad+code
Del: spam -- https://master.php.net/note/delete/124362/spam
Del: non-english -- https://master.php.net/note/delete/124362/non-english
Del: in docs -- https://master.php.net/note/delete/124362/in+docs
Del: other reasons-- https://master.php.net/note/delete/124362
Reject -- https://master.php.net/note/reject/124362
Search -- https://master.php.net/manage/user-notes.php