use*_*830 2 php object instantiation
这是一个非常基本的php问题:假设我有3个文件,file1,file2,file3.
在file1中,我声明了一个名为Object的类.在file2中,我有一个实例化Object的方法,将其称为$ object,并调用此方法Method
在file2中,此方法看起来像
public function Method(){
$object = new Object;
...
require_once(file3);
$anotherobject = new AnotherObject;
$anotherobject->method();
}
Run Code Online (Sandbox Code Playgroud)
最后,在文件3中,我声明了另一个AnotherObject.那么,如果我在file3中有一个方法'method',我可以直接引用$ object的属性,还是可以访问Object的静态方法?
Jvd*_*erg 10
这不是应该如何编程OOp.为每个类提供自己的文件.据我所知,你有3个文件,其中包含类,并希望使用实例化的对象.使用依赖注入构建彼此依赖的类.
例:
file1.php:
class Object
{
public function SomeMethod()
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
file2.php,使用实例化对象:
class OtherObject
{
private $object;
public function __construct(Object $object)
{
$this->object = $object;
}
// now use any public method on object
public AMethod()
{
$this->object->SomeMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
file3.php,使用多个实例化对象:
class ComplexObject
{
private $object;
private $otherobject;
public function __construct(Object $object, OtherObject $otherobject)
{
$this->object = $object;
$this->otherobject = $otherobject;
}
}
Run Code Online (Sandbox Code Playgroud)
将所有这些绑定在一个引导程序文件或某种程序文件中:
program.php:
// with no autoloader present:
include_once 'file1.php';
include_once 'file2.php';
include_once 'file3.php';
$object = new Object();
$otherobject = new OtherObject( $object );
$complexobject = new ComplexObject( $object, $otherobject );
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5562 次 |
最近记录: |