Ric*_*ard 44 php oop class object
我想知道是否允许在另一个类中创建一个类的实例.
或者,我是否必须在外部创建它,然后通过构造函数传递它?但是我会在不知道是否需要它的情况下创建它.
示例(数据库类):
class some{
if(.....){
include SITE_ROOT . 'applicatie/' . 'db.class.php';
$db=new db
Run Code Online (Sandbox Code Playgroud)
Luk*_*ský 36
您无法在另一个类中定义类.您应该包含该类之外的其他类的文件.在你的情况下,这将给你两个顶级类db
和some
.现在在构造函数中,some
您可以决定创建一个实例db
.例如:
include SITE_ROOT . 'applicatie/' . 'db.class.php';
class some {
public function __construct() {
if (...) {
$this->db = new db;
}
}
}
Run Code Online (Sandbox Code Playgroud)
vin*_*tDV 17
人们说可以"在类中创建一个类"似乎意味着可以在类中创建一个对象/实例.我还没有看到另一个类定义中的实际类定义的示例,它看起来像:
class myClass{
class myNestedClass{
}
}
/* THIS IS NOT ALLOWED AND SO IT WON'T WORK */
Run Code Online (Sandbox Code Playgroud)
由于问题是'是否可以在另一个类中创建一个类',我现在只能假设它不可能.
ric*_*tie 14
我只想指出可以在另一个类定义中动态加载类定义.
Lukas是正确的,我们不能在另一个类中定义一个类,但我们可以动态地包含()或require()它们,因为包含文件中定义的每个函数和类都将具有全局范围.如果需要动态加载类或函数,只需将文件包含在其中一个类的函数中.你可以这样做:
function some()
{
require('db.php');
$db = new Db();
...
}
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.include.php
归档时间: |
|
查看次数: |
62580 次 |
最近记录: |