类 class:类是具有相同特性的对象的集合
class 类名{
var $name; //属性
function func($par1,$par2){ // 方法
}
}
<?php class Student{ var $name; function say(){ echo "我的名字叫".$this->name; } } ?>
对象 object:
$对象名称 = new 类名称();
当程序结束被清除后,对象就会被销毁
<?php $xiaowang = new Student();
使用->操作符 调用对象中成员属性和方法
完整实例:
<?php // 定义学生类 class student{ // 属性 var $name; var $age; // 方法 function say(){ echo "我的姓名".$this->name."<br/>"; echo "年龄是:".$this->age; } } $xiaoming = new student(); $xiaoming->name = "小明"; $xiaoming->age = 20; $xiaoming->say(); /* 我的姓名小明 年龄是:20 */ echo "<br/>"; $xiaohong = new student(); $xiaohong->name ="小红"; $xiaohong->age =18; $xiaohong->say(); /* 我的姓名小红 年龄是:18 */
类成员访问控制
通过对类的成员添加关键字public、protected或provite来实现对类中成员的访问控制。
如果没有设置这些关键字,PHP将自动解析为public
public : 被public定义的类成员可以在任意地方访问
protected : 所在类子类和父类访问
private :只能在类内部访问
类常量
class product{ const NAME= 'php'; function show(){ echo self::NAME; } } $p = new product(); $p->show(); //php
方法
class stu{ // 属性 private $name; // 方法 function setName($name){ $this->name = $name; } function getName(){ echo $this->name."<br/>"; } } // 对象实例化 $s1 = new stu(); // 调用成员方法 $s1->setName('张三'); $s1->getName(); //张三
$this关键字
在类内部访问成员变量和方法时,使用$this关键字,只能在内部使用。
构造方法 __construct() 2个下划线
一个类中只能有一个构造方法,不会被调用
只有在使用new关键字创建对象的时候才会调用构造方法
通常放一些初始化的内容
class stu{ // 属性 private $name; // 构造方法 function __construct($name){ $this->name = $name; } // 方法 function setName($name){ $this->name = $name; } function getName(){ echo $this->name."<br/>"; } } // 对象实例化 $s1 = new stu('莉莉'); $s1->getName(); //莉莉
析构方法 __destruct()
静态类成员
静态方法
静态方法不受任何具体对象的限制,所以不需要建立类实例
使用self::表示调用同一类的静态方法
class stu{ // 属性 private $name; // 构造方法 function __construct($name){ $this->name = $name; } // 方法 function setName($name){ $this->name = $name; } function getName(){ echo $this->name."<br/>"; } // 静态方法 static function cls($c){ echo "我在".$c."班级"; } } // 直接通过类名调用静态方法 stu::cls(3); //我在3班级