您是否建议指定 strict = true 参数? [in_array() 的]
对于您在问题中概述的情况,不,但只是因为我什至不建议使用in_array()
根本就在那里(并且if
等),但只是:
$basket = ['apple', 'pear', 'banana', 'raspberry'];
但并非没有确认你的写作“严格来说,是的”:
仅当数组中存在各种类型的对象并且参数可能属于不同类型时,指定 strict = true 是否正确[?]
是的,这是正确的,特别是当所有值都具有相同类型并且弱 (==
)和严格(===
)该类型的比较(提示:这可能因类型而异,例如对象、数组,在字符串类型的示例中也是如此)。
if (!in_array('raspberry', $basket)) {
$basket[] = 'raspberry';
}
因此,经验法则是将其指定为true
像往常一样,当你want or mean严格比较。这是为了让您的代码能够更好地进行通信。反之亦然false
.
在您的示例中,您不需要验证第一个参数的类型来确定严格比较是否有效,例如,如果您使用 $strict = true。你只要看到它,因为它写在第三个参数中。
if (!in_array('raspberry', $basket, true)) {
$basket[] = 'raspberry';
}
if (!in_array('raspberry', $basket, false)) {
$basket[] = 'raspberry';
}
当不指定它并稍后重新访问代码时,就不再清楚原作者的意图了。因此,当您指定第三个参数时,无论 true 或 false,都使代码更易于维护。
https://php.net/in_array https://php.net/in_array