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
来自维基百科:
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.
原文地址:https://www.jb51.cc/php/130273.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。