2011-11-15 15 views
0

Cで#できますか? nullをチェックし、そのような値を使用してください。PHP nullこの値を使用してください

DateTime? today = null; 
DateTime todayNotNull = today ?? Date.Now; 

PHPでこれを行う簡単な方法はありますか?

答えて

3

はい。

$var = ConditionalTest ? ValueIfTrue : ValueIfFalse; 

ValueIfTrueValueIfFalseの両方を使用しなければならないことに留意されたいです。あなたの特定のケースで


<?php 
    $today = null; 
    $todayNotNull = isset($today) ? $today : date(); 
?> 
0
$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を明示的にテストすることを強くお勧めします。

0

他のユーザーの指示どおりに3進演算子を使用できます。

$today = null; 
$todayNotNull = $today ? $today : time(); 

PHP 5.3の時点で、あなたはまた、あなたが欲しいおなじみの構文にこれを短縮することができます。

$todayNotNull = $today ?: time(); 

PHP 5.3ので、 三元の中央部分を省略することが可能ですオペレーター。式expr1?:expr3は、expr1がの場合はexpr1を、そうでない場合はexpr3を返します。

関連する問題