Cで#できますか? nullをチェックし、そのような値を使用してください。PHP nullこの値を使用してください
DateTime? today = null;
DateTime todayNotNull = today ?? Date.Now;
PHPでこれを行う簡単な方法はありますか?
Cで#できますか? nullをチェックし、そのような値を使用してください。PHP nullこの値を使用してください
DateTime? today = null;
DateTime todayNotNull = today ?? Date.Now;
PHPでこれを行う簡単な方法はありますか?
はい。
$var = ConditionalTest ? ValueIfTrue : ValueIfFalse;
ValueIfTrue
とValueIfFalse
の両方を使用しなければならないことに留意されたいです。あなたの特定のケースで
:
<?php
$today = null;
$todayNotNull = isset($today) ? $today : date();
?>
$todayNotNull = ($today===NULL ? date() : $today);
UPDATE:$today ? $today : date()
のような暗黙のNULLチェックを使用する場合は注意してください。
true is true. (type: boolean)
false is false. (type: boolean)
null is false. (type: NULL)
[] is false. (type: array)
[0] is true. (type: array)
[1, 2, 3] is true. (type: array)
{1: 2, "x": 3} is true. (type: array)
"" is false. (type: string)
"0" is false. (type: string)
"1" is true. (type: string)
"2" is true. (type: string)
"x" is true. (type: string)
0 is false. (type: integer)
1 is true. (type: integer)
2 is true. (type: integer)
0 is false. (type: double)
0.1 is true. (type: double)
0.2 is true. (type: double)
NULLを明示的にテストすることを強くお勧めします。
他のユーザーの指示どおりに3進演算子を使用できます。
$today = null;
$todayNotNull = $today ? $today : time();
PHP 5.3の時点で、あなたはまた、あなたが欲しいおなじみの構文にこれを短縮することができます。
$todayNotNull = $today ?: time();
PHP 5.3ので、 三元の中央部分を省略することが可能ですオペレーター。式expr1?:expr3は、expr1がの場合はexpr1を、そうでない場合はexpr3を返します。