【发布时间】:2014-07-27 08:47:03
【问题描述】:
我正在尝试用 PHP 自学 OOP。我有一个来自子类的错误,有人知道我为什么会收到这个错误吗?
致命错误:在第 28 行的 C:\wamp\www\starter\display.php 中调用未定义的方法 User::getSkipper()
用户类是这样的:
<?php
class User
{
protected $_first_name;
protected $_last_name;
protected $_email;
public function __construct($first_name, $last_name, $email)
{
$this->_first_name = $first_name;
$this->_last_name = $last_name;
$this->_email = $email;
}
public function getFirstName()
{
return $this->_first_name;
}
public function getLastName()
{
return $this->_last_name;
}
public function getEmail()
{
return $this->_email;
}
}
?>
Skipper 类是这样的:
<?php
class Skipper extends User
{
protected $_skipper;
public function __construct($first_name, $last_name, $email, $skipper)
{
$this->_skipper = $skipper;
}
public function getSkipper()
{
return $this->_skipper;
}
}
?>
执行以下代码时抛出错误:
$user1 = new User('Steven', 'Smith', 'steve@sljgksdj.com', 'Yes');
echo '<p>First Name: ' . $user1->getFirstName() .'</p>';
echo '<p>Last Name: ' . $user1->getLastName() .'</p>';
echo '<p>Email: ' . $user1->getEmail() .'</p>';
echo '<p>Skipper: ' . $user1->getSkipper() .'</p>';
【问题讨论】:
-
将 skıpper 变量添加到 User 的构造函数中
-
您正在使用用户类的对象调用skipper方法,同时将用户扩展到skipper.instantiate skipper.或将对象传递给用户的构造函数
标签: php class methods undefined