PHP命名空间里的静态方法 能不能动态调用?
程序员文章站
2024-01-18 11:43:10
...
File1:
// file1.php
namespace Common\Model;
class ArticleModel {
static function save($id=0) {
die('xxx');
}
}
File2:
// file2
namespace Admin\Controller;
include('./file1.php');
$model = 'ArticleModel';
$call = "\\Common\\Model\\$model::save";
$call(123123);
这种方法 我试了,不能调用。
是不是静态方法 不支持动态调用?
还是有别的方式可以调用?
回复内容:
File1:
// file1.php
namespace Common\Model;
class ArticleModel {
static function save($id=0) {
die('xxx');
}
}
File2:
// file2
namespace Admin\Controller;
include('./file1.php');
$model = 'ArticleModel';
$call = "\\Common\\Model\\$model::save";
$call(123123);
这种方法 我试了,不能调用。
是不是静态方法 不支持动态调用?
还是有别的方式可以调用?
namespace Admin\Controller;
include('./file1.php');
$fqcn = '\\Common\\Model\\AritcleModel';
$func = 'save';
$fqcn::$func(123123);
$model = 'ArticleModel';
$call = "\\Common\\Model\\{$model}";
call_user_func_array(array($call, 'save'), array(123123));
上一篇: [置顶] PHP学习大全
下一篇: PHP5.5+集成OPcache