我创建了一个名为formChecker.php的PHP类。它验证表格。作为一名Java程序员,我想坚持在另一个类中创建这个类的实例并从那里运行它的想法。它似乎对我不起作用。以下是一个演示:
class formChecker{
..... validation functions go here
}
class runFormChecker{
.... create instance of formchecker here and use it's methods etc.
}
可以这样做吗?我正在考虑的是开发一些可以单独运行的类。
GF
答案 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
的实例,而不是在类级别。