PHP命名空间里的静态方法 能不能动态调用?
程序员文章站
2024-01-29 18:33:58
...
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概率算法实例_PHP教程
下一篇: PHP项目的“苦逼”经历与思忖