日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

PHP问号表达式的用法(正则表达式中问号)

發布時間:2023/12/24 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 PHP问号表达式的用法(正则表达式中问号) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現有一變量$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 函數。
可以使用臨時變量解決這個問題

$temp = strtotime($time);
$time = $temp ? $temp : $time;

登錄后復制

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

$time = strtotime($time) ?: $time;

登錄后復制


你的問題有個地方我不確定,如果是字符串時間戳,要求格式一定是 Y-m-d H:i:s 格式么?


$time = is_numeric($time) ? $time : strtotime($time);

登錄后復制

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

!is_numberic($time) && $time = strtotime($time); 

登錄后復制

總結

以上是生活随笔為你收集整理的PHP问号表达式的用法(正则表达式中问号)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。