PHP 类的封装和使用

    技术2022-07-12  82

    PHP 类的封装和使用

    类:相似的数据和数据操作的封装 class**   成员量:普通的量加上一定的修饰就变成了成员量 public,protected,private   成员方法:普通的函数,加上一定的修饰,放入到类中就变成了成员方法.   实例化:类创建特例的过程(实例化一个对象 new)   对象: 类的特例或者实例 object    认识类 -> 类的封装 -> 类的实例化 -> 对象的认识 -> 操作对象

    类的使用步骤:

    1)创建类 class     语法格式:       class 类名{       类的实现:         成员量         成员方法       }

    类名规范:

    1) 类名只能使用字母,下划线开头,不能以数字开头   2) 类名不能使用关键字   3) 类名一定有意义   4) 类名不区分大小写,但是最好使用驼峰法的写法     userModel UserModel   5)类名不能重复   6) Class Connect{ } 空类,空函数么有意义,空类是为了项目后期扩展预留的接口

    实例化类(instance):

    对象变量 = new 类名;

    或者 对象变量 = new 类名();

    对象变量: 普通的变量,只不过他的类型是对象类型 $object = new myClass;/new myClass()

    类的使用

    is_object():判断某个变量是否是对象;

    instanceof:判断对象是否是某个类的实例化

    <?php // 类使用步骤 class MyClass{ } $obj = new MyClass; if(Class_exists("MyClass")){ if(is_object($obj)) echo "obj is object"; else echo "obj isnot object"; }else{ echo "myclass isnot exists"; } ?>

    对象的实例化过程中,类名不区分大小写,后面可以有小括号也可省略,但是一定要注意,声明类的时候是没有小括号的(区别于函数)

    成员变量:

    普通的变量放入到类中就变成了成员量(类的属性)

    格式:

    修饰符 变量名[=值];

    变量定义格式:

    修饰符 变量;

    变量的赋值

    修饰符 变量名 = 值;

    修饰符: public : 公有的,在类内可以使用,在类外也可以使用,等价于 JS 的 var

    Public $height = 100;

    类外的使用:

    1) 对象名 -> 变量名(无$)

    类内调用

    2) t h i s − > 变 量 名 ( 无 this -> 变量名(无 this>() 伪变量

    $this :对象本身

    3) 对于某个对象的操作,对于另外的对象没有任何影响,也就是所谓的对象无关性

    成员方法:

    普通的函数放入到的类中就变成了成员方法

    格式:

    修饰符 function 方法名(参数){

    返回值

    }

    <?php // 类使用步骤 class MyClass{ public $age = 100; } $obj = new MyClass; echo $obj -> age ; // 100 $obj -> age = 105; // 105 echo $obj -> age; // 对象操作的无关性 $obj1 = new MyClass; echo $obj1 -> age; // 100 $obj1 -> age = 200; echo $obj1 -> age; // 200 echo $obj -> age; // 105 ?>

    类外使用:

    对象 -> 方法名(实参列表);

    类内使用

    $this -> 方法名(实参列表);

    $this:

    伪变量

    代表的是当前操作该类的对象。

    类内使用成员变量和成员方法:

    t h i s − > 变 量 名 ( 无 this -> 变量名(无 this>()

    $this -> 方法名(参数);

    <?php class UserModel{ public $user = "admin"; public $pwd = "123456"; public $tag = 0; // 用户是否登录的标示 // 传入用户登录的数据 public function setUserPwd($u,$p){ $this -> login($u,$p); } // 用户进行登录操作 public function login($tmp_u,$tmp_p){ if(!$this -> tag){ if($this -> user == $tmp_u && $this -> pwd == $tmp_p) $this -> tag = 1; // 用户是登录状态 } } // 判断用户是否登录 public function checklogin(){ if($this -> tag == 1) return true; else return false; } } $obj = new UserModel; $obj -> setUserPwd("admin","123456"); if($obj -> checklogin()) echo "login ok"; else echo "login error"; ?>

    类常量:

    类中恒定不变的量

    格式:

    Const 大写的常量名 = 值; Eg: Const HOST = “localhost”; 类外调用: 类名 :: 常量名 类内的调用: self (指本类) Self::常量名

    NOTE:

    1、::叫做作用域操作符

    2、常量在声明的时候必须赋值!

    3、声明常量的过程中,不需要其他的修饰符

    <?php class Myclass{ const HOST = "localhost"; const USER = "root"; public function show(){ echo Myclass::HOST; echo self::USER; } } echo Myclass::HOST.Myclass::USER; $obj = new MyClass; echo "<hr/>"; $obj -> show(); ?>

    类的封装:

    数据库操作类

    1、定义类名和类功能

    2、类名:MySql

    3、功能:编程语言操作mysql数据库

    分析成员量:

    1、服务器名: $host

    2、数据库名: $dbname

    3、用户名: $user

    4、密码: $pwd

    5、链接编码: $code = “utf8”

    6、数据库链接 $link

    7、数据库返回的二维数组 $data = array();

    8、记录集 $result

    分析方法:

    1、添加

    2、删除

    3、修改

    4、查询

    5、数据库链接 _connect(){ 成功返回true }

    6、编码设置

    7、将记录集转换为二维数组

    8、将记录集中的第一条转换为一维数组。

    <?php //功能:数据库操作类 class MySql{ const HOST = "localhost"; const DBNAME = "thinkshop"; const USER = "root"; const PWD = ""; public $code = "utf8"; public $link = null; public $data = array(); public $result = null; //数据库链接方法 public function _connect(){ if(self::HOST != "" && self::USER != ""){ $this -> link = mysql_connect(self::HOST,self::USER,self::PWD); if(is_resource($this -> link)){ $db = mysql_select_db(self::DBNAME,$this -> link); if($db){ $this -> setCode(); return true; }else{ return false; } }else{ return false; } }else{ return false; } } // 设置编码 public function setCode($code = ""){ if($code != "") $this -> code = $code; mysql_query("set names ".$this -> code); } } $db = new MySql; if($db -> _connect()) echo "connect ok"; else echo "connect error"; echo mysql_error(); ?>

    转载 https://www.cnblogs.com/shuo-128/p/6857703.html

    Processed: 0.052, SQL: 9