我購買了Drupal主題,支持...缺乏。所以我想我會嘗試自己解決它。我對PHP編程比較陌生,所以請對我輕鬆:)如何正確比較PHP中的字符串和整數?
我得到的錯誤是: 注意:類Drupal \ Core \ Field \ FieldItemList的對象無法轉換爲int在theme_css_alter( )
挖掘到的錯誤,它從第一行代碼來到這個if語句:
if(isset($node->nid) && $node->nid == 90){
//do stuff
}
我做我的研究,發現其使用PHP的錯誤時,==操作符,可能因爲$ node-> nid被作爲一個字符串獲取,90是一個整數,並且它不能即時轉換nid。
可能的解決方案我在Google搜索時發現使用===運算符創建'getter'來獲取nid作爲整數(聽起來比所需的更復雜)我自己猜測如果我將90轉換爲一個字符串,它也可以工作?
現在,進行測試運行,===確實會阻止顯示的錯誤,但是我的研究表明===只在值和類型相等的情況下才起作用,並且假設我比較了字符串和整數,我認爲它總是會是假的。
所以......
- 我是在說,在PHP 90(字符串)不== 90(作爲一個整數)正確嗎?
- 我正確地說,使用===而不是==比較字符串和整數的正確方法嗎?
- 將$ node-> nid ==(字符串)90 {是比較這個if語句的正確方法嗎?做這種比較最正確的方法是什麼?
比較字符串與數字通常會做你期望的。錯誤消息指出'$ node-> nid'是一個'FieldItemList',而不是一個字符串。 – Barmar
謝謝巴爾瑪。我認爲nid將是一個字符串,因爲那就是它通常在其他地方的那個字段,並且FieldItemList只是Drupal 8中的PHP類。那是不正確的嗎? –
它可能有一個方法轉換爲字符串,所以你可以在需要字符串的地方使用它,但它實際上並不是一個字符串。 – Barmar