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

use*_*813 7 php forms class object

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

class formChecker{

  ..... validation functions go here

}

class runFormChecker{

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

}
Run Code Online (Sandbox Code Playgroud)

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

GF

Sar*_*raz 8

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

include "formChecker.php"

class runFormChecker{

     function __construct() {
      $obj = new formChecker;  // create instance
      // more processing............
     }  
}
Run Code Online (Sandbox Code Playgroud)

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

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

class runFormChecker{

     function __construct() {
      $obj = new formChecker;  // create instance
      // more processing............
     }  
}
Run Code Online (Sandbox Code Playgroud)

更多信息在这....

谢谢 :)


Vol*_*erK 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);
Run Code Online (Sandbox Code Playgroud)