加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 这是OOP或类似OOP

发布时间:2020-05-31 00:37:32 所属栏目:PHP 来源:互联网
导读:长时间阅读和测试,但我想知道.这是正确的 PHP OOP代码,或不 Class User { function Add($Name, $Password){ $sql_str = INSERT INTO User SET Name = $Name, Password = $Password; $sql-do_sql($sql_str); } funct

长时间阅读和测试,但我想知道.这是正确的 PHP OOP代码,或不

Class User {

  function Add($Name,$Password){
    $sql_str = "INSERT INTO User SET Name = '$Name',Password = '$Password'";
    $sql->do_sql($sql_str);
  }

  function Del($UserID) {
    $sql_str = "DELETE FROM User WHERE UserID = '$UserID'";
    $sql->do_sql($sql_str);
  }

  function Show ($Limit)
    if ($limit > 0){
      $sql_str = "SELECT * FROM User ORDER BY Name LIMIT $Limit";
    }else{
      $sql_str = "SELECT * FROM User ORDER BY Name";
    }
    $result = $sql->do_sql($sql_str);
    for ($i = 0; $i < COUNT($result); $i++){
      $data[$i]['UserID'] = ....
      $data[$i]['Name'] = ....
    }
    return $Data
  }

}
$MyUser = new User;

现在从文件userControl.php我可以控制动作.如果我想做某事,我可以将动作发送到用户类的实例:$MyUser-> Add($Name,$Password);
这种方法更像是一个分组函数而不是OOP,还是更好地使用setter和getter?

如果这个例子不是OOP,那么我做错了怎么需要做这个例子的OOP方式呢?

TNX

你没有以正确的方式解决这个问题.你真正想要做的是拥有一个代表单个用户的类User,其方法反映了这一点.

来自维基百科:

In object-oriented programming,a
method is a subroutine that is
exclusively associated either with a
class (in which case it is called a
class method or a static method) or
with an object (in which case it is an
instance method).

用户对象至少应该具有实例方法,使其能够:

>从数据库加载
>保存到数据库

以及一种静态方法:
– 创建用户并返回用户对象.

它还应该有一个构造函数方法(PHP5中的__construct(args)或PHP4中的User(args))在创建用户时调用.这可能应该接受id或用户名或识别的东西,以便它可以加载正确的用户.

为了简单而不仅仅为您做一切,想象一下只有id和名称的用户对象.以下是该类的外观:

假设PHP5:

class User{
    private $id;
    public $name;

    public function __construct($id){
        $this->load($id);
    }

    public function load($id){
        // Do a query to load a user and initialize $id and $name.
    }

    public function save(){
        // Do a query saving $this->id and $this->name to the database.
    }

    public static function create($name){
        // Do a query to create a user with name $name.
    }
}

您可以使用新用户($id)加载给定其ID的用户,或者创建一个给定的User :: create($name)

有可能被比喻钉死,我不会在PHP中使用setter和getter.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读