2024-02-19 19:48:06
浏览数 (1)
PHP中的类
PHP中private、public、protected的区别详解
- public表示全局,类内部和外部的子类都可以访问
- private表示私有的,只有本类内部可以使用
- protected表示受保护的,只有本类或子类或父类中可以访问
- 所以限制最高,安全最好的是priva
public公有类型
- 在子类中可以通过 self::属性名 调用public方法或书信,parent::属性名 调用父类方法
- 在实例中可以通过 $obj->属性名来调用public类型的方法或属性
protected受保护类型
- 在子类中可以通过 self::属性名 调用protected方法或属性,parent::属性名调用父类方法
- 和public的区别在于:不能在类的外部调用,只能在本类,子类和父类中访问
private私有属性
- 该类的属性和方法只能在该类中使用
- 该类的实例,子类中和子类的实例中都不能调用私有类型的属性和方法
PHP new:实例化对象
- 使用类中的属性和方法不像使用变量和函数那样简单,首先要对类进行实例化
实例化对象
- 将类实例化成对象非常容易,只需要使用new关键字并在后面加上一个和类同名的方法(**实际上就是new 类名()**)即可
- 如果在实例化对象时不需要为对象传递参数,在new关键字后面直接使用类名称即可,不需要加上括号
代码语言:javascript
复制变量名 = new 类名(参数列表);
或
变量名 = new 类名;
参数说明
- 变量名:通过类所创建的一个对象的引用名称,可以通过这个名称来访问对象的成员
- new关键字,表明要创建一个新的对象
- 类名:表示新对象的类型
- 参数列表:指定类的构造方法用于初始化对象的值,如果类中没有定义构造函数,PHP会自动创建一个不带参数的默认构造函数
创建一个类并将其实例化
代码语言:javascript
复制<?php
class students{
...
}
$person1 = new students();
$person2 = new students;
$person3 = new students;
?>
- 一个类可以实例化出多个对象,每个对象都是独立的。
- 上面的代码中通过students类实例化出三个对象,person1,person2,person3,相当于在内存中开辟了三分空间用于存放每个对象
- 使用同一个类声明的多个对象之间是没有联系的,只能说明他们都是同一个类型,每个对象内部都有类中声明的成员属性和成员方法
- 好比类型都是人,但是每个人都有自己的姓名,年龄,等等属性是不同的
访问对象中的成员
- 对象中包含成员属性和成员方法,访问对象中的成员和访问数组中的元素相似,只能通过对象的引用来访问对象中的成员
- 使用 -> 来完成对象成员的访问
代码语言:javascript
复制变量名 = new 类(参数); //实例化一个类
变量名 -> 成员属性 = 值; //为成员属性赋值
变量名 -> 成员属性; //直接获取成员属性的值
变量名 -> 成员方法(); // 访问对象中的成员方法
代码语言:javascript
复制<?php
class web{
public $name,$url,$title;
public function demo(){
echo '成员方法 demo()';
}
}
$student = new web(); //进行实例化
$student -> name = 'xxx'; // 给web类变量student中的变量name赋值为xxx
$student -> url = 'xxx'; // 给web类实例化后的变量student中的url赋值为xxx
echo $student -> name;
echo $student -> url;
?>
this关键字
作用
- this关键字的作用是:在实例化对象的时候用来规定指向谁
- this就是指向当前对象实例的指针,它不指向任何其它的对象或类
- $this->表示在类的本身内部使用本类的属性或方法, 指向当前类的实例化对象后的指针
代码语言:javascript
复制class user{
public $name;
function getname(){
echo $this -> name;
}
}
$user1 = new user();
$user1 -> name = '张三';
$user1 -> getname(); 这里就会输出张三
关于什么是对象
- 变量是对象,函数是对象,类也是对象
- 变量的类型有很多,变量属于类类型(和类很类似)。广义地讲,对象包含了变量,即变量也可以称为一种对象,狭义地讲,将对象看作类的实例,对象是某个类的对象。