【问题标题】:DEFINE vs Variable in PHPPHP中的定义与变量
【发布时间】:2009-08-03 23:18:10
【问题描述】:

谁能解释一下使用的区别

define('SOMETHING', true);

$SOMETHING = true;

也许两者之间的好处?

我在任何地方都使用变量,甚至在每个页面都包含的配置类型文件中我仍然使用变量,因为我不明白为什么要使用 define 方法。

【问题讨论】:

    标签: php


    【解决方案1】:

    DEFINE 是一个常量,常量是全局的,可以在任何地方使用。它们也不能重新定义,哪些变量可以。

    我通常将 DEFINE 用于 Configs,因为事后没有人可以弄乱它,而且我可以在任何地方检查它而无需 global-ling,从而更容易检查。

    【讨论】:

    • 我可以将用户的ID从数据库传递到会话吗?例如定义($_SESSION['user_id'],row['id']) row['id'] 来自数据库
    【解决方案2】:

    一旦定义,“常量”就不能在运行时更改,而普通的变量赋值可以。

    常量更适合在执行期间不应更改的配置指令之类的东西。此外,如果 明确 使本来应该保持不变的值变得如此,则代码更易于阅读(以及维护和移交)。

    【讨论】:

      【解决方案3】:

      范围也有区别。

      在原始海报给出的示例中,$SOMETHING 将无法在函数中访问,而 define('SOMETHING', true) 可以。

      【讨论】:

        【解决方案4】:

        define() 与支持读写操作的标准变量相比,创建一个只读变量。

        【讨论】:

        • 只是一个注释——我不明白术语“只读变量”如何适用于 define()——正如手册所述,它定义了一个 命名常量,这是完全不同的东西。
        • -1:错误,即使不是,也只是重申了上述两个帖子。
        • 根据定义,常量不是变量(没有双关语);-)
        • @hobodave ...是的,除了它是在“以上”两个帖子之前 1 小时发布的...除此之外,我不明白这是怎么回事...在许多语言常量是只读变量......除了“常量”在语义上更清晰这一事实之外,它与“只读变量”的互换性更小......
        【解决方案5】:

        当你想从函数内部访问数据时,常量非常有用,检查一下

        <?php
        function data(){
          define("app","hey you can see me from outside the function",false);
          $tech = "xampp";
        }
        data();
        echo $tech;
        echo app;
        ?>
        

        如果你使用变量,你永远不会得到内部值,这就是我得到的

        注意:未定义变量:第 8 行 D:\xampp\htdocs\data\index.php 中的技术 嘿,你可以从函数外看到我

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-18
          • 1970-01-01
          • 1970-01-01
          • 2011-06-11
          • 2012-05-24
          • 2016-04-07
          • 2015-11-17
          • 2012-03-04
          相关资源
          最近更新 更多