php中的继承
我构建这些类:php中的继承,php,inheritance,Php,Inheritance,我构建这些类: class Anonym { public $ToSelect; public $ToUpdate; public $ToInsert; public $ToDelete; public $limit; public $order_by; public $filter; public function is_banned($ipAddress) { $query="SELECT * FROM
class Anonym
{
public $ToSelect;
public $ToUpdate;
public $ToInsert;
public $ToDelete;
public $limit;
public $order_by;
public $filter;
public function is_banned($ipAddress)
{
$query="SELECT * FROM anonym WHERE ip='$ipAddress'";
}
public function insert_ip()
{
$serverAddress=$_SERVER['REMOTE_ADDR'];
$query="INSERT INTO anonym (ip,banned)
VALUES('$serverAddress',0)";
}
public function update_ban($update_ban)
{
$serverAddress=$_SERVER['REMOTE_ADDR'];
$query="UPDATE anonym SET ban=$update_ban WHERE ip='$serverAddress'";
}
}
class User extends Anonym
{
public function get_user_id()
{
$select="SELECT ".$ToSelect." FROM users ".$filter.$order_by.$limit;
}
public function insert_user()
{
$select="INSERT INTO users (name, password,roles) VALUES (".$ToInsert.")";
}
public function get_user_name()
{
$select="SELECT ".$ToSelect." FROM users ".$filter.$order_by.$limit;
}
public function get_user_role()
{
$select="SELECT ".$ToSelect." FROM users ".$filter.$order_by.$limit;
}
}
匿名用户由登录用户继承。我不确定的是如何继承这些财产,。。这样做对吗?或者我需要添加$this->,以便进行覆盖
另外,方法重写在php中简单吗
因此,如果我这样做:
$user=new User();
$user->insert_ip(); // will the overriding be successful or do I need to use some special syntax?
- 是的,就是这么简单
- 是的,可以
$query
是不够的
$query="SELECT * FROM anonym WHERE ip='$ipAddress'";
mysql_query($query); // !!!
据我所知,继承在其他语言中也很简单…我可以返回它,并对结果进行迭代..我知道,因为我犯了一个你没有注意到的错误。要覆盖,您需要在属性上执行此操作:$this->filter not$filter*是就是这么简单。你没注意到我犯的错误吗。属性像方法一样被继承。。当我应用子类的方法或属性时,它被重写,而不是被继承。如果您询问重写,我会给出关于重写的答案。我刚刚询问了$query,以确保您知道自己在做什么。