我不知道它是否可以在PHP中使用。我尝试了这段代码,但是我收到了错误。
class UserAccount extends classDatabase
{
$validate = new classValidate;
function login($user, $pass)
{
//access a method from classValidate
$validate->checkInput($user);
}
}
我想使用classValidate
中的方法验证用户输入。怎么做?我无法延长classValidate
因为我已经扩展classDatabase
。
请告诉我如何做到这一点。
答案 0 :(得分:1)
您的示例代码有语法错误:
class UserAccount extends classDatabase
{
$validate = new classValidate; // <-- in php you can't do this
首先,您需要指定一个访问修饰符,例如public
,protected
,private
或至少var
。其次,php无法运行&#34;声明中的代码,= new ClassValidate
在此不起作用,只有42
或"some string"
等常量或文字或静态方法调用的结果(see docs)
您可以将实例化移动到构造函数,如下所示:
public function __construct() {
$this->validate = new ClassValidate;
}
注意显式的$this->
,在php中你总是要输入它。
最后,您需要正确使用login()
中的实例:
function login($user, $pass) {
$this->validate->checkInput($user);
}
答案 1 :(得分:0)
class UserAccount extends classDatabase
{
$validate = null;
function __construct(){
$this->validate = new classValidate;
}
function login($user, $pass)
{
//access a method from classValidate
$this->validate->checkInput($user);
}
}
或添加范围使其不在PHP5上发出警告
class UserAccount extends classDatabase
{
private $validate = NULL;
function __construct(){
$this->validate = new classValidate();
}
public function login($user, $pass)
{
//access a method from classValidate
$this->validate->checkInput($user);
}
}