Heim > Backend-Entwicklung > PHP-Tutorial > PHP问号表达式的用法

PHP问号表达式的用法

WBOY
Freigeben: 2016-06-06 20:09:02
Original
2005 Leute haben es durchsucht

现有一变量$time, 可能是时间类型的,可能是一个Unix时间戳,即 $time = '2011-12-25 00:11:20'; 或者 $time = 1324742400.

现在我想把统一做一个转换,即如果是时间类型的,就把它用strtotime($time)函数转换成Unix时间戳,如果不是同样用这个函数strtotime($time)会返回false.

那么我用问号表达式$time = strtotime($time) ? strtotime($time) : $time;能否实现这个需求,有没有更简洁的形式啊,总感觉别人不是这么写的呢?

回复内容:

现有一变量$time, 可能是时间类型的,可能是一个Unix时间戳,即 $time = '2011-12-25 00:11:20'; 或者 $time = 1324742400.

现在我想把统一做一个转换,即如果是时间类型的,就把它用strtotime($time)函数转换成Unix时间戳,如果不是同样用这个函数strtotime($time)会返回false.

那么我用问号表达式$time = strtotime($time) ? strtotime($time) : $time;能否实现这个需求,有没有更简洁的形式啊,总感觉别人不是这么写的呢?

别人不这么写主要原因估计是,你这么写如果 time 的确是时间格式的话,会执行两次 strtotime 函数。
可以使用临时变量解决这个问题

<code class="php">$temp = strtotime($time);
$time = $temp ? $temp : $time;</code>
Nach dem Login kopieren

如果是 PHP 5.3 以上,还可以使用

<code class="php">$time = strtotime($time) ?: $time;</code>
Nach dem Login kopieren

你的问题有个地方我不确定,如果是字符串时间戳,要求格式一定是 Y-m-d H:i:s 格式么?

<code class="php">
$time = is_numeric($time) ? $time : strtotime($time);
</code>
Nach dem Login kopieren

其实也不需要三元操作符,直接使用&&就可以了

<code>!is_numberic($time) && $time = strtotime($time); </code>
Nach dem Login kopieren
Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage