if (timeSpan.TotalDays < 1)
return timeSpan.ToString(@"hh\:mm\:ss");
return timeSpan.TotalDays < 2
? timeSpan.ToString(@"d\ \d\a\y\ hh\:mm\:ss")
: timeSpan.ToString(@"d\ \d\a\y\s\ hh\:mm\:ss");
Все литералы должны быть экранированы.
Я не думаю, что есть оператор, который делает именно это.
Ближайшим является оператор подавления ошибок @
:
$data['id_user'] = @$user->getId();
Если $user->getId()
получает ошибку, сообщение об ошибке подавляется, и значение равно null
.
Если вы определили класс __toString()
в своем пользовательском объекте и получили этот идентификатор, тогда вы можете использовать оператор объединения нулей:
class User
{
public function __toString()
{
return (string) $this->getId();
}
}
$data['id_user'] = $user ?? null;
Это также не будет генерировать никаких предупреждений. [ 113]
Однако, это не очень помогает, если у вас есть более одного поля, с которым вы хотите сделать это.