Php if语句的替换

Php if语句的替换,php,if-statement,Php,If Statement,以下代码中的if语句还有哪些替代方案 $page_title = $titles['default']; $page_desc = $descriptions['default']; if(array_key_exists($module, $titles) && !empty($titles[$module])) { $page_title = $titles[$module]; } if(array_key_exists($module, $description

以下代码中的
if
语句还有哪些替代方案

$page_title = $titles['default'];
$page_desc  = $descriptions['default'];

if(array_key_exists($module, $titles) && !empty($titles[$module]))
{
    $page_title = $titles[$module];
}
if(array_key_exists($module, $descriptions) && !empty($descriptions[$module]))
{
    $page_desc  = $descriptions[$module];
}
上面的代码工作得很好,我只是想看看是否有改进的余地

这个怎么样

$page_title = isset($titles[$module]) ? $titles[$module] : $titles['default'];
$page_desc  = isset($descriptions[$module]) ? $descriptions[$module] : $descriptions['default'];
还是这个

$page_title = @$titles[$module] ?: $titles['default'];
$page_desc = @$descriptions[$module] ?: $descriptions['default'];

这是一个稍微不同的方式:)-我没有声明说它更好。。。这要视情况而定

$titles += array("$module" => $titles['default']);
$descriptions += array("$module" => $descriptions['default']);

$page_title = $titles[$module];
$page_desc = $descriptions[$module];

到底是怎么回事?如果您需要建议,请将第一个花括号放在同一行:p您所说的“改进”是什么意思?
isset
不检查该值是否正确empty@maggie是对的,只是记得那确实不是。但是可以被单纯的
empty
代替,因为
empty
不会触发未定义索引的通知。我不知道它是如何改进的版本。这只是速记。即兴创作意味着改变核心。+1我不知道你可以跳过次要参数。不错。@pebbl:它是从PHP5.3Cheers开始添加的,谢谢你提供的信息!:)你以前不能做这件事总是让人很烦恼。。。特别是当第一次检查是一个复杂的属性路由或在第二部分中必须重复的内容时。
$titles += array("$module" => $titles['default']);
$descriptions += array("$module" => $descriptions['default']);

$page_title = $titles[$module];
$page_desc = $descriptions[$module];