在同一个php类文件中创建类的对象是明智的吗?

时间:2013-06-30 05:00:10

标签: php class oop

我是php oop的新手。我的问题是在同一个类文件中创建类的对象/实例是明智的吗?像这样: myclass.php

<?php
class myClass{
    public $a
    function myFunction()
        echo $this->a;
    }
}
$obj= new myClass;
$obj->$a='This is my class file';
?>

对于所有php专家来说,这可能是众所周知的,但对我来说这是一个非常新的基本概念。

1 个答案:

答案 0 :(得分:1)

没有规则阻止在定义的同一文件中实例化类。这一切都归结为你想用它做什么。

例如,您可以使用静态方法来实例化类并返回实例。这对于实施singleton patternfactory pattern非常有用。然而,在您的示例中使用变量$obj之类的全局变量被认为是不好的做法。

如果您要做的只是在创建实例时初始化实例,那么您应该在the constructor中执行此操作。

例如,MyClass类可以驻留在MyClass.php文件中:

<?php

class MyClass {
    private $a;

    public function __construct() {
        $this->a = 'This is my class file';
    }

    public function myFunction() {
        return $this->a;
    }
}

然后,在您确实想要使用MyClass实例的文件中,您可以执行以下操作:

<?php

require_once 'MyClass.php';

$myInstance = new MyClass();
echo $myInstance->myFunction();