php学习笔记之面向对象编程
一个php初学者的一个学习笔记的面向对象编程实例,有需要学习的朋友可参考参考.
PHP实例代码如下:
- class db {
- private $mysqli; //数据库连接
- private $options; //SQL选项
- private $tableName; //表名
- public function __construct($tabName) {
- $this->tableName = $tabName;
- $this->db ();
- }
- private function db() {
- $this->mysqli = new mysqli ( 'localhost', 'root', '', 'hdcms' );
- $this->mysqli->query("SET NAMES GBK");
- }
- public function fields($fildsArr) {
- if (emptyempty ( $fildsArr )) {
- $this->options ['fields'] = '';
- }
- if (is_array ( $fildsArr )) {
- $this->options ['fields'] = implode ( ',', $fildsArr );
- } else {
- $this->options ['fields'] = $fildsArr;
- }
- return $this;
- }
- public function order($str) {
- $this->options ['order'] = "ORDER BY " . $str;
- return $this;
- }
- public function select() {
- $sql = "SELECT {$this->options['fields']} FROM {$this->tableName} {$this->options['order']}";
- return $this->query ( $sql );
- }
- private function query($sql) {
- $result = $this->mysqli
- ->query ( $sql );
- $rows = array ();
- while ( $row = $result->fetch_assoc () ) {
- $rows [] = $row;
- }
- return $rows;
- }
- private function close() {
- $this->mysqli
- ->close ();
- }
- function __destruct() {
- $this->close ();
- }
- }
- $chanel = new db ( "hdw_channel" );
- $chanelInfo = $chanel->fields ( 'id,cname,cpath' )
- ->select ();
- echo "<pre>";
- print_r ( $chanelInfo );
- class a {
- protected function aa(){
- echo 222;
- }
- }
- class b extends a{
- function bb(){
- $this->aa();
- }
- }
- $c = new b();
- $c->bb();
public 公有的:本类,子类,外部对象都可以调用.
protected 受保护的:本类 子类,可以执行,外部对象不可以调用.
private 私有的:只能本类执行,子类与外部对象都不可调用.