如果我想回显不空白的值,那么我会做点什么
<?php echo $a ? $a : 'blank'; ?>
但我想知道你是否可以使用像
这样的语法<?php echo $a or 'blank'; ?>
但这会回显1
或0
。
我想要它做的是模拟第一个代码块。换句话说,第一个代码块是否有一个简写:echo empty($a) ? $a : 'blank';
?
这个问题的灵感来自于您可以撰写$fp = fopen('file.txt') or die('bad file')
更新:我想我可以这样做:
<?php
or_echo($a, 'blank');
function or_echo($arg1, $arg2) {
if(!empty($arg1)) {
echo $arg1; return;
}
else {
echo $arg2; return;
}
return;
}
?>
答案 0 :(得分:0)
不,没有(至少没有以某种方式抑制错误)。在大多数语言中,尤其是像PHP这样的动态类型语言,你可以沿着这些方向做点什么:
echo $_GET['message'] || 'blank';
当然,PHP以代码清晰度的名义放弃了这一点。
关于您的更新,不,您不能。在$_GET['message']
时,访问!array_key_exists('message', $_GET)
是一个警告。但是,这可行:
function get($key, $default) {
return isset($_GET[$key]) ? $_GET[$key] : $default;
}
echo get('message', 'blank');
答案 1 :(得分:0)
这可能不是短手,但它使用or
运算符来实现同样的目标。
$a = '';
//$a = 'hi';
$a or $a = 'blank';
echo $a;
一个班轮:
<?php $a or $a = 'blank'; echo $a ?>
答案 2 :(得分:0)
你可以这样做:
<?php echo isset($a) ?: 'blank'; ?>
这类似于<?php echo $a ? $a : 'blank'; ?>