如何缩短 PHP 中的所有这些 && 运算符?

How can I shorten all these && operators in PHP?

我总是对如何在 PHP 中缩短运算符感到困惑。他们工作,但我相信它可以更简单。一个例子是:

if ($page->template->id == 44 && $page->id != 1020 && $page->id != 1021 && $page->id != 1022 && $page->id != 1023) echo "do something";

现在在我的脑海里会是:

如果模板id等于44,页面id等于1020或1021或1022或1023做某事

可能无法缩短,但我觉得很长。

干杯。

$ids = [1020,1021,1022,1023];
if ($page->template->id == 44 && ! in_array( $page->id, $ids )) echo "do something"

要测试页面是否等于 1020 或 1021 或 1022 或 1023,您可以使用

if(in_array($page->id, [1020, 1021, 1022, 1023])){} // PHP 5.4+
if(in_array($page->id, array(1020, 1021, 1022, 1023))){} // PHP 5.3-

但请注意,它不会进行严格比较。