创建一个PHP类 - >在另一个类中创建它的对象

时间:2010-02-20 20:59:22

标签: php class forms object

我创建了一个名为formChecker.php的PHP类。它验证表格。作为一名Java程序员,我想坚持在另一个类中创建这个类的实例并从那里运行它的想法。它似乎对我不起作用。以下是一个演示:

class formChecker{

  ..... validation functions go here

}

class runFormChecker{

....  create instance of formchecker here and use it's methods etc.

}

可以这样做吗?我正在考虑的是开发一些可以单独运行的类。

GF

3 个答案:

答案 0 :(得分:8)

只需在您想要使用它的类之前包含formChecker类文件,例如:

include "formChecker.php"

class runFormChecker{

     function __construct() {
      $obj = new formChecker;  // create instance
      // more processing............
     }  
}

但是,如果你在一个文件中有两个类(这是坏的),那么不需要包含该文件,你可以直接创建它的实例,例如:

class formChecker{
  // ............
}

class runFormChecker{

     function __construct() {
      $obj = new formChecker;  // create instance
      // more processing............
     }  
}

<强> More Information Here....

谢谢:)

答案 1 :(得分:8)

我宁愿将formChecker的实例(或实现某个接口的东西)传递给runFormChecker的实例。见http://en.wikipedia.org/wiki/Dependency_injection

可以像

一样简单
interface FormChecker {
  public function foo($x);
}

class MyFormChecker implements FormChecker
  public function foo($x) {
    return true;
  }
}

class RunFormChecker {
  protected $formChecker=null;
  public function __construct(FormChecker $fc) {
    $this->formChecker = $fc;
  }

  // ....
}

$rfc = new RunFormChecker(new MyFormChecker);

答案 2 :(得分:0)

是的,这并不奇怪。您通常会在formChecker的实例中创建runFormChecker的实例,而不是在类级别。