简单PHP语法问题

简单PHP语法问题,php,Php,这只对“9”返回true,而对“160”不返回true。对于多个ID,它的正确语法是什么?使用: 使用: 你想要 if (in_array($post->post_parent, array(9, 160, ...))) { ... } (您在字符串中指定了一个浮点数,当与int9进行比较时,该浮点数可能会转换为int,因此它为您的9触发的更多的是一个“bug”,而不是为160触发的“bug”) if (in_array($post->post_parent, array(9, 1

这只对“9”返回true,而对“160”不返回true。对于多个ID,它的正确语法是什么?

使用:

使用:

你想要

if (in_array($post->post_parent, array(9, 160, ...))) { ... }
(您在字符串中指定了一个浮点数,当与int
9
进行比较时,该浮点数可能会转换为int,因此它为您的
9
触发的更多的是一个“bug”,而不是为160触发的“bug”)

if (in_array($post->post_parent, array(9, 160, ...))) { ... }
(您在字符串中指定了一个浮点数,当与int
9
进行比较时,该浮点数可能会转换为int,因此它为您的
9
触发的更多的是一个“bug”,而不是为160触发的一个“bug”。)

。。。除非您试图混合使用PHP和SQL…:-


。。。除非您试图混合使用PHP和SQL…:-

在这里列出的三种方法中,即使您需要键入更多的代码,此方法也是最快的。在这里列出的三种方法中,此方法即使您需要键入更多的代码也是最快的。此外,请记住,如果您要检查数字9而不是数字和字符串“9”然后您需要使用
===
而不是
=
。此外,请记住,如果您想检查数字9而不是数字和字符串“9”,则需要使用
==
而不是
=
。谢谢!最直接的回答,而不改变我包装这段代码的大量PHP!谢谢最直接的回答,而不改变我包装这段代码的大量PHP!
$post->post_parent == '9' ||    $post->post_parent == '160'
$ids = explode(',', '9,160');
if( in_array($post->post_parent, $ids) ){
    // ...
}