2011-11-17 90 views
0

我建立这些类:继承在PHP

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? 
+0

类继承 –

回答

-1
  • 是就是这么简单。
  • 是的,它会重写。

我希望你知道使变量$query是不够的。

$query="SELECT * FROM anonym WHERE ip='$ipAddress'"; 
mysql_query($query); // !!! 

据我所知继承就是这么简单其他语言,以及...

+0

我就回来了,并逐一results..I知道 –

+0

Downvoter能告诉我为什么 - 1? – Peter

+0

因为我犯了一个你没有注意到的错误。覆盖你需要在属性上执行此操作:$ this-> filter not $ filter –