Help us understand the problem. What is going on with this article?

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

エルビス演算子と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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした