ホームページ >php教程 >php手册 >PHPのnull合体演算子

PHPのnull合体演算子

WBOY
WBOYオリジナル
2016-07-06 13:31:04917ブラウズ

PROject: blogtarget: null-coalesce-Operator-in-php.mddate: 2015-12-30status: publictags: - Null Coalesce - PHPcategories: - PHP Null Coalesce オペレーターは良いもので、これを使用すると非常に便利になります。パラメータであり、空の場合はデフォルト値を提供できます。たとえば、js

では

リーリー

null 合体演算子を使用すると、パラメーターを簡単に取得して、それが空の場合にデフォルト値を提供できます。たとえば、js で || を使用できます:

リーリー

PHP では、残念ながら PHP ||总是返回truefalse は常に true または false を返すため、この方法では実行できません。
PHP7 は ?? 演算子のみを正式に追加しました:

リーリー

PHP7 は実稼働環境で使用されるまでに長い時間がかかると推定されています。では、現在の PHP5 に代わるものはありますか?
調査によると、非常に便利な代替手段があります:

リーリー

-- このコードを実行します: https://3v4l.org/aDUW8

目を丸くして見ると、前の PHP7 の例と似ていますが、主に ?? 替换为了 ?: 。 这个是个什么鬼呢?其实这就是 (expr1) ? (expr2) : (expr3)?: に置き換えています。 これはなに?実際、これは (expr1) ? (expr2) : (expr3) 式の省略パターンです:

式 (expr1) ? (expr2) : (expr3) は、expr1 が TRUE と評価される場合は値 expr2 を持ち、expr1 が FALSE と評価される場合は expr3 を持ちます。
PHP 5.3 以降では、三項演算子の中間部分を省略できるようになりました。式 expr1 ?: expr3 は、expr1 が TRUE と評価される場合は expr1 を返し、それ以外の場合は expr3 を返します。
-- http://php.net/manual/zh/ language.operators.comparison.php

もちろん、$_GET 中没有 'user',会有一条 Notice: Undefined index: user 的错误,所以需要用@来抑制这个错误,或者关闭 E_NOTICE が間違っている場合、この代替案は完璧ではありません。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。