,我有以下消息標記起來時通知被打開:遇到非合式數值 - 這是否意味着
注意:非合式數值遇到
這是否意味着預期的值不是一個簡單的整數?引用的行顯示這一點:
$per = ($raw>0?ceil((($raw/$cast)/5)*100):0).'%';
,我有以下消息標記起來時通知被打開:遇到非合式數值 - 這是否意味着
注意:非合式數值遇到
這是否意味着預期的值不是一個簡單的整數?引用的行顯示這一點:
$per = ($raw>0?ceil((($raw/$cast)/5)*100):0).'%';
非常感謝您的意見,但隨着新的眼光看着這之後,我能看看升技進一步到代碼中,它發現了我正在發生的事情。
如上問,我甩$原料和$投,這是返回的值:所以很明顯
string(2) "14" string(7) "3 votes"
,在「3票」應該是一個數字,或者計算ISN不會去工作。我看了上面的一行,內容如下:
$cast = (get_post_meta($id, '_kksr_casts', true)?get_post_meta($id, '_kksr_casts', true):'0').' votes';
賓果。我刪除了結尾的「票數」輸出,只留下了數字。消息消失。我還是想對原文進行,雖然輸出,所以我找到了下一行606包含在此之後:
$row = $avg . ' (' . $per . ') ' . $cast;
所以我只是說在這行的末尾,這會導致正確的輸出在「選票」 WP Admin,現在錯誤消失了。
似乎修復了,並且創建了拉取請求。謝謝你們的幫助。
你進入它的模糊代碼大賽什麼的? :-D。我無法重現通知消息,但是如果將代碼拆分爲單獨的行,則可能會找出公式的哪一部分導致該消息。
你爲什麼要檢查是否$raw > 0
?如果$raw
爲零,則$per
無論如何將簡單地結束爲零。
如果你想通過零錯誤,以避免師,那麼你就需要進行檢查$cast
,不$raw
。
$per = 0;
if ($cast > 0) {
$per = ($raw/$cast)/5 * 100;
}
$per .= "%";
作爲最終評論,從這段代碼中,不清楚爲什麼你除以五。這只是一個神奇的數字。將它變成一個常數或變量會更清楚;至少,留下評論是什麼。
祝你好運!
重現:
var_dump("14"/"3 votes");
(demo)
...打印,因爲PHP/7.1警告:
注意:在遇到非合式數值/在/ 8dsH7 on line 3
float(4.6666666666667)
所以他們顯然增加了新的檢查來防止錯誤。
帶數字的數學是可靠和明確的。具有任意文本的數學不是。或者,你覺得這是有道理的:
var_dump("pink" * "apples");
INT(0)
在此行之前添加'var_dump($ raw,$ cast);'。 –
'字符串(2)「14」字符串(7)「3票」「 - 聽起來好像他們不應該是字符串我把它? – Lee
嗯我刪除了「票」輸出變量,現在錯誤消失。也許這就是它所需要的。 – Lee