gpt4 book ai didi

php - __METHOD__ 和 __FUNCTION__

转载 作者:可可西里 更新时间:2023-11-01 12:30:44 29 4
gpt4 key购买 nike

我知道这两者之间的区别,我已经查看了手册。

我还是有些困惑。我可以在类的方法中使用 __FUNCTION__,这代表这个方法的名称。当我回应它时,它只输出名称。这里很清楚。

但为什么我可以在非 calss 方法中使用 __METHOD__。这也只是代表正常功能的名称。正常功能是在某个容器中吗?而在正常函数中回显__METHOD__时,容器什么都没有?

代码:

<?php
class dog {
private $name = 'dog';

public static function name() {
echo __METHOD__;
echo"\n";
echo __FUNCTION__;
echo"\n";
}

}
function test() {
echo __FUNCTION__;
echo"\n";
echo __METHOD__;
}

dog::name();
test();

输出:

ei@localhost:~$ php test.php
dog::name
name
test
test

任何帮助将不胜感激。谢谢。

最佳答案

“方法”基本上只是类(或类函数)中函数的名称。因此 __METHOD__ 由类名和调用的函数名组成(dog::name),而 __FUNCTION__ 只给你函数名没有提及它可能所在的类。

__METHOD__ 在类外调用时,它与 __FUNCTION__ 相同,因为没有类部分用作前缀。您可以在类之外使用 __METHOD__,因为它是一个神奇的常量并且它们始终可用(在最坏的情况下它们将返回空字符串)。

http://php.net/manual/en/language.constants.predefined.php

关于php - __METHOD__ 和 __FUNCTION__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354898/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com