类 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班级