Php 如何检测用于初始化类的变量
我有一个简单的自动加载脚本,唯一的问题是我不知道初始化了哪个变量myPhp 如何检测用于初始化类的变量,php,Php,我有一个简单的自动加载脚本,唯一的问题是我不知道初始化了哪个变量myclass1。我var_转储变量$class,它说 object(class1)[1] 但是当我试图$class->someMethod()变量类是未定义的吗 在我的ClassLib目录中,我有一个 -class1.php和 -class2.php 我的代码: 您仍然必须在函数范围之外定义类实例$class 这意味着您应该在init_classes函数中返回$class。我在这里看到的唯一问题是,您希望能够同时实例化多个类,因
class1
。我var_转储变量$class,它说
object(class1)[1]
但是当我试图$class->someMethod()
变量类是未定义的吗
在我的ClassLib目录中,我有一个
-class1.php
和
-class2.php
我的代码:
您仍然必须在函数范围之外定义类实例$class 这意味着您应该在init_classes函数中返回$class。我在这里看到的唯一问题是,您希望能够同时实例化多个类,因此可能必须返回一个类数组 您可以尝试以下方法:
function init_classes($classes = array()){
$error = array();
$instances = array();
foreach($classes as $class){
if(verify_fclass($class) === FALSE){
$error[$class.'NotExisting'] = $class;
}
else{
$test = null;
$instances[$class] = new $class;
}
}
return array( 'error' => $error, 'instances' => $instances);
}
$class_array = array('NonExistingClass','class1');
$class = $init['instances']['class1'];
$class->what();
但是,您也可以直接实例化类,而不使用数组和init_classes方法…您仍然需要在函数范围之外定义类实例$class 这意味着您应该在init_classes函数中返回$class。我在这里看到的唯一问题是,您希望能够同时实例化多个类,因此可能必须返回一个类数组 您可以尝试以下方法:
function init_classes($classes = array()){
$error = array();
$instances = array();
foreach($classes as $class){
if(verify_fclass($class) === FALSE){
$error[$class.'NotExisting'] = $class;
}
else{
$test = null;
$instances[$class] = new $class;
}
}
return array( 'error' => $error, 'instances' => $instances);
}
$class_array = array('NonExistingClass','class1');
$class = $init['instances']['class1'];
$class->what();
但是,您也可以直接实例化类,而不使用数组和init_classes方法…如果您有一个自动加载程序,为什么要再次检查类的存在性?显示您的
init\u load
。如果您有一个自动加载程序,为什么要再次检查类的存在?显示您的init_加载
.Hmmm不错,谢谢,我使用了这个$class=init_类($class_数组)['instances']['class1'];但我会想办法摆脱这个意大利面规则:当然你也可以这么做——这里只有一个警告。只要你想实例化一个以上的类,你就会调用这个函数,这样每次你想访问这个类的时候都会实例化对象。嗯,不错,谢谢你,我用了这个$class=init_classes($class_array)['instances']['class1'];但我会想办法摆脱这个意大利面规则:当然你也可以这么做——这里只有一个警告。只要你想实例化多个类,你就会调用这个函数,这样每次你想访问这个类的时候都会实例化这些对象。