【问题标题】:Using function inside PHP Namespace在 PHP 命名空间中使用函数
【发布时间】:2015-03-15 16:49:13
【问题描述】:

我正在使用一个利用命名空间的 CMS,我正在尝试利用它,而不是在这些文件中包含文件和使用函数。

根据我的理解和尝试,我有一个作为 PSR-4 加载的文件,其中包含我想要访问的声明的命名空间、类和函数。它看起来像:

namespace MyFunctions;

    class basic {

        function say_hello($a) { 
            echo "Hello, $a"; 
        }

    }

从另一个文件中,我可以看到在使用 get_declared_classes() 函数进行检查时确实加载了“MyFunctions”命名空间。但是,我完全不知道如何使用“say_hello()”函数。

我试过了:

use MyFunctions;

// instantiate class
$a = new basic();

// this gives me 'call to undefined function'
echo say_hello("Bob");

我已经尝试挖掘其他示例,但我正在尝试访问此功能。有人可以给我一个示例,说明如何从另一个文件中获取和使用“say_hello()”函数吗?任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 即使一个类是命名空间的,你仍然需要在访问它的方法之前实例化它`

标签: php function namespaces


【解决方案1】:

使用您在此处的设置。您必须执行以下操作才能触发该功能。

(new MyFunctions\basic)->say_hello("Bob");

(我不推荐这种方法,它会无缘无故地创建一个对象。)

我假设你想要的是:

namespace MyFunctions;

function say_hello($a)
{
    echo "Hello, $a";
}

什么时候可以使用

// this gives you 'Hello, Bob'
MyFunctions\say_hello("Bob");

【讨论】:

  • 后一个例子正是我所需要的!我想我在很大程度上被我不需要的类本身弄糊涂了。
猜你喜欢
  • 1970-01-01
  • 2015-11-05
  • 2013-08-16
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多