php类与对象(PHP类和对象)
一、类和对象的关系
1、类的概念
1)类就是分类、类别、模板、概念等,类是无形的、看不见、摸不着,不实际存在的。
2)类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。例如:所有在学校学习的人,具有相同的属性:学号、姓名、性别等;具有相同的行为:学习。所以,这些人构成一个类,即学生类。
2、对象的概念
1)客观世界中任何一个事物都可以看成一个对象,对象看得见、摸得着,实际存在的。
2)对象是构成系统的基本单位。任何一个对象都应具有这两个要素:属性(Attribute)和行为(Behavior)。例如:学生“张三”是一个对象,他有属性:学号、姓名、性别等;行为有:学习、吃饭等。
3)对象来自于某个类,对象不能单独存在。一个类可以产生千千万万个对象。
4)对象和类的关系是,对象是类的实例,类是对象的模板。
5)类是抽象的,几乎不占用内存,而对象是具体的,占用存储空间。
四、对象属性操作
//创建一个学生类 class Student { //声明成员(对象)属性 public $name="张三"; public $age=18; } //类的实例化 $obj=new Student(); //增加一个对象属性(给不存在的属性赋值) $obj->edu="大专"; print_r($obj); //删除一个对象属性 unset($obj->age); print_r($obj); //修改一个对象属性 $obj->name="李四"; print_r($obj); //显示一个对象属性 echo $obj->name;
结果如下:
图片.png
五、对象方法操作
六、伪变量$this的使用
伪变量公式输入有误this变量来代替当前对象,例如:公式输入有误this代表当前对象,是到当前对象的一个引用;
4)公式输入有误this只能用在对象方法定义中,去调用对象的成员属性或成员方法。
6)只有创建对象后,$this变量才存在。类不会自动运行。
示例:
//创建一个学生类 class Student { //声明成员(对象)属性 private $name="张三"; private $age=18; //返回一个水平线 private function showLine() { return "<hr>"; } //公共的成员方法 public function showInfo() { $str="<h2>{$this->name}的基本信息如下:</h2>"; $str.=$this->showLine(); $str.="{$this->name}的年龄是{$this->age}岁"; echo $str; } } //类的实例化 $obj=new Student(); //调用类的成员方法 $obj->showInfo();
结果如下:
七、类常量的定义
1、类常量介绍
1)可以把在类中始终保持不变的值定义为常量,例如:圆周率、班级名称等。
2)常量的值必须是一个定值,不能修改,也不能删除;
3)类常量就是类的常量,是与类相关的,与对象无关。
4)类常量在内存中只有一份,不管创建多少个对象。
5)类常量可以极大节省服务器内存,可以被所有对象去共享。
2、类常量定义和调用格式
1)类常量没有权限,只有属性和方法才会有权限。
2)使用const来定义类的常量(局部常量),只能在局部作用域下使用;define()定义常量是全局常量,在任何地方都可以使用。
示例:
//创建一个数据库类 class Db { //定义类常量 const DB_HOST = "localhost"; const DB_USER = "root"; const DB_PASS = "123"; public function showInfo() { //访问类常量语法:ClassName::常量名 //双引号内只能解析变量,不能解析常量 $str = "主机名:".Db::DB_HOST; $str .= "<br>用户:".Db::DB_USER; $str .= "<br>密码:".Db::DB_PASS; echo $str; } } //在类外直接访问类常量 $str = "主机名:".Db::DB_HOST; $str .= "<br>用户:".Db::DB_USER; $str .= "<br>密码:".Db::DB_PASS; echo $str; echo "<br>"; //创建类对象 $db = new Db(); $db->showInfo();
结果如下:
八、静态属性和静态方法
1)static关键字修饰的属性,就是静态属性;
2)static关键字修饰的方法,就是静态方法;
3)静态属性:就是类的属性,与类相关,与对象无关;
4)静态方法:就是类的方法,与类相关,与对象无关;
5)类的东西(类常量、静态属性、静态方法),通过"类名::"来调用;
6)静态属性,在内存中只有一份,被所有对象去共享,例如:人数
7)静态属性或静态方法的好处:就是为了节省内存。例如:创建了100个对象,而静态属性只有一份。
8)静态属性和类常量的区别:类常量在一次HTTP请求过程值永远不变;但是静态属性可以改变。
9)静态属性和静态方法,都可以加权限控制符,而类常量没有权限。
示例:
//创建一个学生类 class Student { //私有的静态属性:就是类的属性 //调用语法:ClassName::静态属性 private static $name = "张三"; private static $age = 18; //返回一个水平线 private static function showLine() { return "<hr>"; } //公共的静态方法 public static function showInfo() { $str = "学生基本信息如下:<br>"; $str .= Student::showLine(); $str .= Student::$name."的年龄是".Student::$age."岁"; echo $str; } } //直接调用类的静态方法 Student::showInfo();
结果如下:
图片.png
九、self关键字使用
1)公式输入有误this关键字用来调用对象的属性和方法;
3)self用来调用类常量、静态属性、静态方法;
4)$this关键字只能在成员方法中使用;
5)self关键字可以在成员方法和静态方法中使用;
示例:
好啦,先介绍到这里,这里推荐的都是干货,所以……求关注求收藏,需要更多精彩内容,请详细了解尚学堂哦!
放一个美美的图哟!
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com