如何将两个 OR 语句合并在一行中?

问题描述 投票:0回答:3

如果可能的话,我想将这两行缩短为一行:

defined( 'INIT' ) OR $direct = true;
defined( 'INIT' ) OR include 'inc/router.php';

我试过了

defined( 'INIT' ) OR include 'inc/router.php' AND $direct = true;

...但这不起作用。

我正在向一堆模板添加安全措施,以禁止客户端直接访问。

php syntax
3个回答
0
投票

您可以使用“Elvis”运算符(

?:
)来缩短它,但问题是为什么?它当然不会提高可读性。

defined('INIT') ?: $direct = TRUE AND include 'file.php';

0
投票

未经测试:

<?php

defined('INIT') OR ($direct = true AND include 'inc/router.php');

但为了可读性,我可能会坚持在你的自我回答中如果没有定义多行。


0
投票

这就是我想到的:

if (!defined('INIT')) {$direct = TRUE; include 'inc/router.php';}
© www.soinside.com 2019 - 2024. All rights reserved.