Php 使用变量';将字符串转换为类名或其他名称
我想在类名中使用变量 例如,让我们将名为Php 使用变量';将字符串转换为类名或其他名称,php,class-names,Php,Class Names,我想在类名中使用变量 例如,让我们将名为$var的变量设置为“index2”。 现在我想在类名中打印index2,如下所示: controller_$var; controller\u index2,但我不需要手动操作,只需在此处打印var名称,如下所示: controller_$var; 但我认为这是一个语法错误 我该怎么做 function __construct() { $this->_section = self::path();
$var
的变量设置为“index2”。
现在我想在类名中打印index2
,如下所示:
controller_$var;
controller\u index2
,但我不需要手动操作,只需在此处打印var名称,如下所示:
controller_$var;
但我认为这是一个语法错误
我该怎么做
function __construct()
{
$this->_section = self::path();
new Controller_{$this->_section};
}
以双引号将其作为字符串回显
echo "controller_{$var}";
尝试以下操作(基于OP中的代码):
以双引号将其作为字符串回显
echo "controller_{$var}";
尝试以下操作(基于OP中的代码):
试试这个:
$name = "controller_$var";
echo $this->$name;
试试这个:
$name = "controller_$var";
echo $this->$name;
这是一个可怕的黑客行为,但是:
php > class foo { function x_1() { echo 'success'; } };
php > $x = new foo;
php > $one = 1;
php > $x->{"x_$one"}();
^^^^^^^^^^^^
success
与其尝试动态地将方法名构建为字符串,方法数组可能更合适。然后您只需使用变量作为数组的键。这是一种可怕的攻击,但是:
php > class foo { function x_1() { echo 'success'; } };
php > $x = new foo;
php > $one = 1;
php > $x->{"x_$one"}();
^^^^^^^^^^^^
success
与其尝试动态地将方法名构建为字符串,方法数组可能更合适。然后您只需使用变量作为数组的键。您可以这样做。。。。遵循以下语法
function __construct()
{
$this->_section = self::path();
$classname = "Controller_".$this->_section;
$instance = new $classname();
}
从字符串定义创建对象的另一种方法是使用
如果类名没有构造函数参数
$obj = $reflector->newInstance();
当然,如果需要将参数传递给构造函数,可以使用
$obj = $reflector->newInstance($arg1, $arg2);
或者如果数组中有参数
$obj = $reflector->newInstanceArgs($argArray);
你可以这样做。。。。遵循以下语法
function __construct()
{
$this->_section = self::path();
$classname = "Controller_".$this->_section;
$instance = new $classname();
}
从字符串定义创建对象的另一种方法是使用
如果类名没有构造函数参数
$obj = $reflector->newInstance();
当然,如果需要将参数传递给构造函数,可以使用
$obj = $reflector->newInstance($arg1, $arg2);
或者如果数组中有参数
$obj = $reflector->newInstanceArgs($argArray);
为了补充前面的答案,如果您试图用变量名声明新类,但所有构造参数都相同,并且对实例化对象的处理都相同,那么您可能不需要不同的类,只需要相同的不同实例。为了补充前面的答案,如果您试图用变量名声明新类,但所有构造参数都相同,并且对实例化对象的处理都相同,那么您可能不需要不同的类,只需要相同的不同实例。您不能用变量名声明类。您不能用变量名声明类。否问题@junatanmdasured:-DI现在得到一个错误解析错误:语法错误,第28行C:\xampp\htdocs\framework\includes\class\Core.class.php中意外的“{”没有问题@junatanmdasured:-DI现在得到一个错误解析错误:语法错误,第28行C:\xampp\htdocs\framework\includes\class\Core.class.php中意外的“{”