我购买了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