我有一个简单的要求,证明是困难的。我正在使用Wordpress存储元值'session_capacity',这可以有以下可能的值
问题是当存储的值为零时,我无法确定使用什么设置来根据它是零还是空来回显不同的语句。
这是我想要的输出......
if(零) // 做一点事 elseif(整数,例如99) // 做一点事 elseif(空白) //做点什么
实际功能......
function get_session_capacity($post_id){
// Get the total capacity of this session
$session_capacity = get_post_meta($post_id, 'session_capacity', true);
// Meta value was sometimes stored as a string so converting to integer
$session_capacity = intval($session_capacity);
if($session_capacity === 0)
return 'You cannot book this session';
elseif(empty($session_capacity))
return default_session_capacity();
else
return $session_capacity;
}
答案 0 :(得分:1)
而不是empty()
使用is_null()
它应该是这样的:
function get_session_capacity($post_id){
$session_capacity = get_post_meta($post_id, 'session_capacity', true);
if(is_null($session_capacity))
return default_session_capacity();
elseif($session_capacity == 0)
return 'You cannot book this session';
else
return intval($session_capacity);
}
编辑:感谢评论部分提示的insanebits。 :)
答案 1 :(得分:1)
您可以检查是否设置了$session_capacity
,并相应地设置
$session_capacity = isset($session_capacity)? intVal($session_capacity) : null;
甚至更好
$session_capacity = (isset($session_capacity) && !empty($session_capacity))? intVal($session_capacity) : null;
后者即使变量设置为空字符串也能工作。如果未设置0
(空白)
$session_capacity
答案 2 :(得分:0)
$values = array(null, 0, 99);
$i = 1;
foreach ($values as $value) {
if ($value === null) {
echo $i . ': equals null!<br />';
}
if ($value === 0) {
echo $i . ': equals the integer 0!<br />';
}
if (is_integer($value)) {
echo $i . ': contains any integer!<br />';
}
$i++;
}
输出:
1: equals null!
2: equals the integer 0!
2: contains any integer!
3: contains any integer!