Drupal 7 开发内部培训资料, 分头诗人

php代码,这两个条件放在一起其中一个不是多余的?

赞成!
0
否决!

if (empty($elements) || (isset($elements['#access']) && !$elements['#access'])) {
    return;
  }

谁能给个$elements['#access']的值,说明这两个条件放在一起其中一个不是多余的?

1 个回答

赞成!
0
否决!

我不知道你的代码在哪,所以无法告诉你$elements['#access']的值,如果你要找,建议你安装 devel 模块。

 

顺便跟你说说 empty() isset() 的区别

empty() 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:empty还会检测变量是否为空、为零。当一个变量值为0,empty() 认为这个变量同等于空,即相当于没有设置。

比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:

$id=0;
    empty($id)?print "It's empty .":print "It's $id ."; 
      //结果:It's empty .
    print "<br>";
    !isset($id)?print "It's empty .":print "It's $id .";
      //结果:It's 0 .

 

当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:

 if(empty($id)) $id=1;
    print $id; // 得到 1

    if(!isset($id)) $id=1;
    print $id; //得到 0