Php 使用定义的常量创建对象
随意的PHP问题,或多或少出于好奇。如果这是一个愚蠢的问题,我道歉Php 使用定义的常量创建对象,php,Php,随意的PHP问题,或多或少出于好奇。如果这是一个愚蠢的问题,我道歉 $class = 'ClassName'; $object = new $class(); 或 这显然有效 define(CLASS, 'ClassName'); $object = new CLASS(); 或 这是行不通的 只是想知道是否可以使用定义的常量来创建新对象。如果没有,我完全理解原因。那么,您可以这样做: define(MYCLASS, 'ClassName'); $class = MYCLASS; $obj
$class = 'ClassName';
$object = new $class();
或
这显然有效
define(CLASS, 'ClassName');
$object = new CLASS();
或
这是行不通的
只是想知道是否可以使用定义的常量来创建新对象。如果没有,我完全理解原因。那么,您可以这样做:
define(MYCLASS, 'ClassName');
$class = MYCLASS;
$object = new $class();
…但据我所知,不能像在new MYCLASS()
中那样直接使用常量,因为它当然会查找名为MYCLASS
的类
旁注:常量的名称不能与保留字冲突,例如class
或function
,即使它们是大写的
如果出于某种原因,你经常这样做,你可能会做这样愚蠢的事情:
function newClass($str, $args = NULL) {
return new $str($args);
}
$class = newClass(MYCLASS);
…但我并不推荐。我还想,您可能不需要这么多常量,或者有一种更优雅的方式来完成您正在做的事情,它根本不涉及常量。Ya,这正是我目前在一个旧脚本中所做的。我只是想问一下。谢谢
define(MYCLASS, 'ClassName');
$class = MYCLASS;
$object = new $class();
function newClass($str, $args = NULL) {
return new $str($args);
}
$class = newClass(MYCLASS);