在PHP命名空间中使用函数

时间:2015-01-17 00:27:44

标签: php function namespaces

我正在使用使用命名空间的CMS,而我正在尝试使用它而不是包含文件并使用这些文件中的功能。

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

namespace MyFunctions;

    class basic {

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

    }

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

我试过了:

use MyFunctions;

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

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

我已经尝试过挖掘其他示例,并且我正在尝试访问此功能。有人能给我一个例子,说明我将如何使用" say_hello()"从另一个文件的功能?任何帮助都会非常感谢,谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

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

我假设你想要的是:

namespace MyFunctions;

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

此时你可以使用

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