PHP нуль использовать это значение - PullRequest
0 голосов
/ 15 ноября 2011

В C # вы можете сделать ?? проверить на нулевое значение, а затем использовать значение, например, так ..

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

Есть ли сокращенный способ сделать это в PHP?

Ответы [ 3 ]

3 голосов
/ 15 ноября 2011

Да.

$var = ConditionalTest ? ValueIfTrue : ValueIfFalse;

Обратите внимание, что должны использоваться как ValueIfTrue, так и ValueIfFalse.


В вашем конкретном случае:

<?php
    $today = null;
    $todayNotNull = isset($today) ? $today : date();
?>
0 голосов
/ 15 ноября 2011

Вы можете использовать троичного оператора, как указано другими пользователями.

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

Начиная с PHP 5.3, вы также можете сократить его до привычного синтаксиса:

$todayNotNull = $today ?: time();

Начиная с PHP 5.3, можно опустить среднюю часть троичный оператор. Выражение expr1?: Expr3 возвращает expr1, если expr1 оценивается как TRUE и expr3 в противном случае.

0 голосов
/ 15 ноября 2011
$todayNotNull = ($today===NULL ? date() : $today);

ОБНОВЛЕНИЕ : Будьте осторожны при использовании неявной проверки NULL, например $today ? $today : date().

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...