php - 在 PHP 命名空间中使用函数

标签 php function namespaces

我正在使用一个利用命名空间的 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()”函数吗?任何帮助将不胜感激,谢谢!

最佳答案

按照您这里的设置。您必须执行以下命令才能触发该函数。

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

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

我假设你想要的是:

namespace MyFunctions;

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

此时您可以使用

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

关于php - 在 PHP 命名空间中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27994852/

相关文章:

php - 如何更新 PHP CLI OSX?

php - 动态复选框和选择框

javascript - 访问 Javascript ES6 类中声明的函数(ES2015?ES16?)

c++ - 命名空间中的私有(private)类

PHP 不会持续下去,如果

javascript - 使用 null 检查传递的参数 - JavaScript

c - 是否可以创建无指针函数?

c# - 找不到命名空间 Microsoft.Win32

c++ - 如何解决 C++ 中的 namespace 冲突?

php - html,css,从 gif 文件执行 javascript