php变量前加两个怎么回事

worktile 其他 103

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    PHP中,在变量名前加上两个下划线 “__” 的作用是将变量设为魔术常量。魔术常量是一种特殊的常量,其值在运行时无法更改。以双下划线开头的变量名被定义为魔术常量,它们是PHP内部定义的一些特殊常量。

    通过定义魔术常量,可以为特定的变量增加一些特殊功能和约束。以下是一些常见的魔术常量:

    1. __LINE__: 返回当前行号的常量。
    2. __FILE__: 返回当前文件的完整路径和文件名的常量。
    3. __DIR__: 返回当前文件所在目录的常量。
    4. __FUNCTION__: 返回当前函数名的常量。
    5. __CLASS__: 返回当前类名的常量。
    6. __METHOD__: 返回当前方法名的常量。
    7. __NAMESPACE__: 返回当前命名空间的常量。

    这些魔术常量在编写代码时可以帮助我们更好地跟踪和调试,以及实现一些特定功能。例如,可以使用__FILE__常量来获取文件的路径并进行日志记录,或者使用__CLASS__常量来获取当前类的名称并进行特定的操作。

    需要注意的是,魔术常量不是真正的变量,而是常量,因此不能通过赋值操作来改变其值。另外,不同版本的PHP可能会定义不同的魔术常量,请查阅PHP官方文档以获取更详细的信息。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在 PHP 中,变量前加上两个下划线(__)是一种魔术方法或魔术常量的使用方式,用于控制或改变变量的行为。下面是关于 PHP 中这种用法的几个方面的解释:

    1. 魔术常量:
    – `__LINE__`:返回当前行号的魔术常量。
    – `__FILE__`:返回当前文件的完整路径和文件名的魔术常量。
    – `__DIR__`:返回当前文件所在目录的魔术常量。
    – `__FUNCTION__`:返回当前函数名的魔术常量。
    – `__CLASS__`:返回当前类名的魔术常量。
    – `__TRAIT__`:返回当前 trait 名的魔术常量。
    – `__METHOD__`:返回当前方法名的魔术常量。
    – `__NAMESPACE__`:返回当前命名空间的魔术常量。

    通过使用这些魔术常量,可以方便地得到当前代码所在的位置信息,有助于调试和错误处理。

    2. 魔术方法:
    – `__construct()`:在创建对象时自动调用的构造方法。
    – `__destruct()`:在对象销毁时自动调用的析构方法。
    – `__get()`:访问一个不存在的属性时自动调用。
    – `__set()`:给一个不存在的属性赋值时自动调用。
    – `__isset()`:检测一个不存在的属性是否被设置时自动调用。
    – `__unset()`:删除一个不存在的属性时自动调用。
    – `__call()`:调用一个不存在的方法时自动调用。
    – `__toString()`:将对象转换为字符串时自动调用。
    – `__invoke()`:将对象当作函数调用时自动调用。

    这些魔术方法可以根据需要在类中重写,用于自定义对象的行为。

    3. 自定义魔术方法:
    PHP 还允许开发者自定义魔术方法,以实现特定的功能。这些自定义魔术方法的命名规则是在方法名前加上两个下划线,然后再加上自定义的方法名。例如,`public function __myMethod() {}`。这样的方法可以在代码中通过调用 `__myMethod()` 来使用。

    4. 魔术方法的注意事项:
    – 尽量避免在魔术方法中进行过多的操作,以免影响性能。
    – 使用魔术方法时要注意方法名的大小写,PHP 是区分大小写的。

    5. 了解魔术方法的具体作用和使用场景,可以帮助开发者更好地理解和使用PHP语言,提高代码的可读性和灵活性。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中,变量前加上两个美元符号($$)是一种特殊的语法,称为“变量的变量”(variable variables)。这种语法允许通过一个变量的值来间接引用另一个变量。

    通过变量的变量,可以动态地创建和操作变量名称。

    下面是关于$$的运用方法和操作流程的详细解释。

    ## 1. 基本使用

    在使用变量的变量时,需要满足以下两个条件:
    – 变量的名称本身必须是一个字符串。
    – 要引用的变量名称,必须存储在另一个变量中。

    以下是一个简单的示例,演示了如何使用变量的变量:

    “`php
    $fruit = “apple”;
    $$fruit = “red”;

    echo $apple; // 输出:”red”
    “`

    上面的代码首先定义了一个变量 `$fruit`,并将其赋值为字符串 “apple”。然后,通过在 `$fruit` 变量前添加两个美元符号,创建了一个新的变量 `$apple`。最后,将 `$apple` 变量赋值为字符串 “red”。

    最终,在输出变量 `$apple` 的值时,会得到 “red”。

    ## 2. 动态创建变量

    变量的变量最大的用途之一就是动态地创建变量。通过使用循环或其他逻辑,可以根据不同的条件自动创建并命名变量。

    以下是一个示例,演示了如何根据一个数组动态地创建变量:

    “`php
    $fruits = array(“apple”, “banana”, “orange”);

    foreach ($fruits as $fruit) {
    $$fruit = “ripe”;
    }

    echo $apple; // 输出:”ripe”
    echo $banana; // 输出:”ripe”
    echo $orange; // 输出:”ripe”
    “`

    上面的代码使用了一个数组 `$fruits`,其中包含了几种水果的名称。通过 `foreach` 循环遍历数组,每次循环中创建一个新的变量,并将其赋值为字符串 “ripe”。

    最终,在输出变量 `$apple`、`$banana` 和 `$orange` 的值时,会都得到 “ripe”。

    ## 3. 动态修改已有变量

    除了动态创建变量外,变量的变量还可以用于动态地修改已有的变量。

    以下是一个示例,演示了如何使用变量的变量修改已有变量的值:

    “`php
    $fruit = “apple”;
    $$fruit = “green”;

    echo $apple; // 输出:”green”
    “`

    上面的代码首先定义了一个变量 `$fruit`,并将其赋值为字符串 “apple”。然后,通过在 `$fruit` 变量前添加两个美元符号,引用了一个名为 `$apple` 的变量,并将其值修改为 “green”。

    最终,在输出变量 `$apple` 的值时,会得到 “green”。

    ## 4. 注意事项

    在使用变量的变量时,需要注意以下几点:
    – 避免创建过多的变量,以免导致混乱和不易维护。
    – 变量名称需要是合法的PHP变量名,不能包含空格和特殊字符。
    – 变量的变量容易引起错误,容易导致代码的可读性下降,因此要慎重使用。

    ## 结论

    通过在变量名称前添加两个美元符号,即可以创建变量的变量,这在一些特定的应用场景中非常有用。通过变量的变量,可以实现动态创建和操作变量名称,提高代码的灵活性和复用性。但是,变量的变量也容易引起混乱,降低代码的可读性,因此要谨慎使用。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部