Php 如何通过它加载类';存储在变量中的名称
我在一个文件中有一些类,每个类与类本身同名。我希望从给定名称动态加载相关文件并返回class对象,但我只有存储在变量中的文件/类名。怎么可能呢Php 如何通过它加载类';存储在变量中的名称,php,Php,我在一个文件中有一些类,每个类与类本身同名。我希望从给定名称动态加载相关文件并返回class对象,但我只有存储在变量中的文件/类名。怎么可能呢 public function loadClass($name) { include dirname(__FILE__) . '/classes/' . $name . '.php'; return $name; } 试试这个,你可以用 你可以称你的班级为 $obj = new MyClass1(); 试试这个,你可以用 你可以称你
public function loadClass($name) {
include dirname(__FILE__) . '/classes/' . $name . '.php';
return $name;
}
试试这个,你可以用
你可以称你的班级为
$obj = new MyClass1();
试试这个,你可以用
你可以称你的班级为
$obj = new MyClass1();
你应该这样做:
//test.php
class test {
public function shout() {
echo "Hello world!";
}
}
//main file
function loadClass($name) {
include(dirname(__FILE__) . '/classes/' . $name . '.php');
return new $name();
}
$class = loadClass('test');
$class->shout(); //prints Hello World!
对于静态方法,请执行以下操作:
//test.php
class test {
static function shout() {
echo "Hello world!";
}
}
//main file
function loadClass($name) {
include(dirname(__FILE__) . '/classes/' . $name . '.php');
$name;
}
$class = loadClass('test');
$class::shout(); //prints Hello World!
你应该这样做:
//test.php
class test {
public function shout() {
echo "Hello world!";
}
}
//main file
function loadClass($name) {
include(dirname(__FILE__) . '/classes/' . $name . '.php');
return new $name();
}
$class = loadClass('test');
$class->shout(); //prints Hello World!
对于静态方法,请执行以下操作:
//test.php
class test {
static function shout() {
echo "Hello world!";
}
}
//main file
function loadClass($name) {
include(dirname(__FILE__) . '/classes/' . $name . '.php');
$name;
}
$class = loadClass('test');
$class::shout(); //prints Hello World!
解决方案
如果/classes1/Foo.php
存在。。。
$path
将是第一个函数中的/classes1/Foo.php
将调用require$path
/classes2/Foo.php
存在。。。
$path
将是第一个函数中的/classes1/Foo.php
require$path
将被跳过$path
将是第一个函数中的/classes2/Foo.php
将调用require$path
/classes1/Foo.php
存在。。。
$path
将是第一个函数中的/classes1/Foo.php
将调用require$path
/classes2/Foo.php
存在。。。
$path
将是第一个函数中的/classes1/Foo.php
require$path
将被跳过$path
将是第一个函数中的/classes2/Foo.php
将调用require$path
您可以使用
$name
变量实例化类的新实例:
public function loadClass($name)
{
include dirname(__FILE__) . '/classes/' . $name . '.php';
return new $name();
}
您可以使用
$name
变量实例化类的新实例:
public function loadClass($name)
{
include dirname(__FILE__) . '/classes/' . $name . '.php';
return new $name();
}
@TimCooper的可能副本在静态类上起作用,而我不打算实例化它们?在PHP中无法返回类。你唯一的选择是返回一个类名字符串,或者返回一个对象(或者是类本身的一个实例,或者是@TimCooper的一个实例)可能重复的@TimCooper。这对静态类有效吗?我不打算实例化它们。在PHP中,你无法返回一个类。你唯一的选择是返回一个类名字符串,或者返回一个对象(或者是类本身的实例,或者是的实例),你能给我解释一下吗?你能给我解释一下吗?我有一个
开关($name)
,它将根据请求的$name
加载一个文件和一个类,我应该把这个\uuu autoload()
放在哪里?我有一个开关($name)
,它将根据请求的$name
加载一个文件和一个类,我应该把这个\uu autoload()
放在哪里?这对通常不需要任何实例化的静态类有效吗?如果它是“静态的”类您可以只调用类中的静态方法$name::blablablamMethod()
这对通常不需要任何实例化的静态类有效吗?如果是“静态”类,您可以只调用类中的静态方法$name::blamMethod()
我的类,它们的方法是静态的。你能给我看一个静态类的例子吗?它与您的版本不同吗?我的类及其方法是静态的。你能给我看一个静态类的例子吗?它和你的版本不同吗?