代码之家  ›  专栏  ›  技术社区  ›  Sam Johannes Rudolph

定义这些变量的简单方法是什么?

  •  0
  • Sam Johannes Rudolph  · 技术社区  · 14 年前
    $access_community = 1;
    $access_content = 1;
    $access_tools = 1;
    $access_administrator = 0;
    $access_moderator = 0;
    

    只是想知道是否有一个更简单的方法来写这个使用数组?这看起来太过分了。

    谢谢!

    3 回复  |  直到 14 年前
        1
  •  6
  •   Fidi    14 年前

    你可以这样做(可读性很差):

    $access_community = $access_content = $access_tools = 1;
    $access_administrator = $access_moderator = 0;
    

    或者如前所述,使用数组:

    $access = array('community' => 1,
                    'content' => 1,
                    'tools' => 1,
                    'administrator' => 0,
                    'moderator' => 0);
    
        2
  •  0
  •   Lucas Jones    14 年前

    如果你有更多的变量,比如:

    $access = array( 'community' => 1, 'content' => 1, ... );
    foreach ($access as $k => $v) {
        $real_name = 'access_' . $k;
        $$real_name = $v;
    }
    

    也许可以工作,但它不是那么好,可能甚至比你的代码现在更过分。老实说,我认为你所拥有的还不算太坏!

    如果你感兴趣,可以使用间接引用或 "variable variables" 定义新的变量。不过,我不太确定这里的范围。

    当然,如果可以的话,可以尝试直接使用数组,而不是依赖于存在的变量—数组可以更改并传递,这与变量不同。

        3
  •  -1
  •   Your Common Sense    14 年前

    看起来有点像 ACL
    因此,设置这些变量的唯一合理方法是将其存储在数据库中。尤其是如果将来会有几十个这样的人。

    http://phpgacl.sourceforge.net/ 可能是你在找什么

    因此,您的变量将被分配来自数据库的值。

    $variable = value
    


    您可以用更复杂的方式来实现,但其核心是:“变量名-变量值”对