日期:2014-05-17  浏览次数:20463 次

if()判断变量是否为空的两种方法,哪种更好?有区别吗?
学习研究wordpress时,有以下两种判断自定义域是否为空的方法,都用到了IF()。初学php,不知这两种方法有何区别,哪种效率更高一些?
// show the first value of the specified key inside a loop
<?php 
$key_1_value = get_post_meta($post->ID, 'key_1', true);
// check if the custom field has a value
if($key_1_value != '') {
  echo $key_1_value;

?>

// display an image based on custom-field value, if it exists

<?php $image = get_post_meta($post->ID, 'url', true);

if($image) : ?>

<img src="<?php echo $image; ?>" alt="" />

<?php endif; ?>

------解决方案--------------------
引用:
谢谢。按照if($image)的方法, if(key_1_value)不是更简洁吗?if($image)这种只把变量作参数的方法,可取吗?


if($image)和if(!$image)是完全相反的概念
举例来说

$find=1;
if($find){
echo "find不为空";
}else{
echo "find为空";
}
//相当于
if(!$find){
echo "find为空";
}else{
echo "find不为空";
}

也就是$find和!$find中if与else中的内容正好相反



------解决方案--------------------
<?php
if($key_1_value!='') {//这里是指$key_1_value只要不为空就可以,$key_1_value=0也是不为空 所有$key_1_value=0也是可以通过的
   echo $key_1_value;
 } 
if($key_1_value) {//这里是指$key_1_value为真,所谓真就是$key_1_value不能为空也不能为0,这个条件比上面多出一个$key_1_value不能为0
   echo $key_1_value;
 } 
 //上面两个方法功能有点差别的,看你需求了
?>