PHP中具有名称空间的变量函数

PHP中具有名称空间的变量函数,php,namespaces,Php,Namespaces,我想知道是否有一种方法可以使用名称空间调用变量函数。基本上,我正在尝试解析标记并将它们发送到模板函数,以便它们能够呈现html` 下面是一个示例:(我使用的是PHP5.3) 我一直在 分析错误:语法错误,意外的T_变量,中应为T_字符串。。。第76行 谢谢!马特试试 // Main php file require_once 'template.php'; foreach (array("javascript","script","css") as $tag) { call_user_

我想知道是否有一种方法可以使用名称空间调用变量函数。基本上,我正在尝试解析标记并将它们发送到模板函数,以便它们能够呈现html`

下面是一个示例:(我使用的是PHP5.3)

我一直在 分析错误:语法错误,意外的T_变量,中应为T_字符串。。。第76行

谢谢!马特

试试

 // Main php file
require_once 'template.php';
foreach (array("javascript","script","css") as $tag) {
    call_user_func("template\\$tag"); // As of PHP 5.3.0
}

 // template.php
 namespace template;

 function javascript() { return "Hello from javascript"; }
 function css() { return "Hello from css"; }
 function script() { return "Hello from script"; }

您有一些信息

当然可以,但不幸的是,您需要使用来实现这一点:

require_once 'template.php';
foreach (array("javascript","script","css") as $tag) {
    echo call_user_func('template\\'.$tag);
}

PHP中的名称空间是相当新的。我确信将来,他们会修复它,这样我们就不再需要它了。

这也会起作用,不需要调用用户函数,只需使用以下功能:

试试这个

$p = 'login';
namespace App\login; 
$test2 = '\App\\'.$p.'\\MyClass';

$test = new $test2;

::
?真正地有些人没有做功课,或者根本不了解命名空间和类的静态成员之间的区别。谢谢!只是有点不对劲!不过我很感激你的帮助。@Andrew你是对的。我在粘贴代码时把它弄糟了。谢谢你需要一个参数。下面是如何做到这一点。echo调用用户函数('template\\'.$tag,$params);您使用的是错误的,它需要是一个变量,而不是字符串和变量。
require_once 'template.php';

$ns = 'template';
foreach (array('javascript', 'script', 'css') as $tag) {
    $ns_func = $ns . '\\' . $tag;
    echo $ns_func();
}
$p = 'login';
namespace App\login; 
$test2 = '\App\\'.$p.'\\MyClass';

$test = new $test2;