[英]DateTime->Format functions unexpectedly with % symbol
我目前正在審核代碼庫,以轉移到PHP 7安裝。 我們所看到的問題之一是DateTime-> format(),其中參數字符串以帶百分號的形式傳入,該百分號前包含一個值,在這種情況下,任何比較運算符都將其視為字符串,而不是數字值
$dto = new \DateTime('now');
if($dto->format("%y") == 20) {
PHP警告:在第225行的/var/www/html/application/models/User.php中遇到的非數字值
PHP 5和7之間在format()語句中使用百分號是否有所改變? 還是我在這里想念什么? 它只是一個警告語句,但我寧願使錯誤日志中所有可能占用空間的內容都清除掉。
您正在檢查if語句中的整數,這導致我們假設不需要格式中的%
符號。
雖然不禁止在格式字符串中包含諸如%
文字,但是它沒有任何語義值,但它被視為普通的百分比字符。 這意味着您的format()
將是例如'%19'
,它是一個非數字字符串,不能與整數進行比較。 您的if語句將始終失敗。
如果您期望的結果是數字字符串'19'
,那么您只需從格式字符串中刪除%
。
$dto = new \DateTime('now');
if($dto->format("y") == 20) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.