3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

エルビス演算子(三項演算子の省略記法)とNull合体演算子(PHP7以降で追加)の違い

3
Posted at

エルビス演算子とNull合体演算子の違い

エルビス演算子は、条件値がfalseとみなされる値の場合、後者の値が式の結果となります。
Null演算子は、条件値がnullの場合、後者の値が式の結果となります。

$v1 = '';
$v2 = null;

$v1 ?: false; // false
$v1 ?? false; // ""
$v2 ?: false; // false
$v2 ?? false; // false

falseとみなされる値(php.netより)

boolean に変換する場合、次の値は FALSE とみなされます。

  • boolean の FALSE
  • integer の 0 および -0 (ゼロ)
  • float の 0.0 および -0.0 (ゼロ)
  • 空の文字列、 および文字列の "0"
  • 要素の数がゼロである 配列
  • 特別な値 NULL (値がセットされていない変数を含む)
  • 空のタグから作成された SimpleXML オブジェクト

警告: -1 は、他のゼロでない数と同様に (正負によらず) TRUE とみなされます。

以下、実験。文字列の0はfalseですが、文字列の0.0はtrueになります。

boolval(null); // false
boolval('null'); // true
boolval("null"); // true
boolval(0); // false
boolval('0'); // false
boolval("0"); // false
boolval(''); // false
boolval(""); // false
boolval(0.0); // false
boolval('0.0'); // true!!
boolval("0.0"); // true!!
boolval(false); // false
boolval('false'); // true
boolval("false"); // true
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?