PHP中的类

PHP中private、public、protected的区别详解

  1. public表示全局,类内部和外部的子类都可以访问
  2. private表示私有的,只有本类内部可以使用
  3. protected表示受保护的,只有本类或子类或父类中可以访问
  4. 所以限制最高,安全最好的是priva

public公有类型

  1. 在子类中可以通过 self::属性名 调用public方法或书信,parent::属性名 调用父类方法
  2. 在实例中可以通过 $obj->属性名来调用public类型的方法或属性

protected受保护类型

  1. 在子类中可以通过 self::属性名 调用protected方法或属性,parent::属性名调用父类方法
  2. 和public的区别在于:不能在类的外部调用,只能在本类,子类和父类中访问

private私有属性

  1. 该类的属性和方法只能在该类中使用
  2. 该类的实例,子类中和子类的实例中都不能调用私有类型的属性和方法

PHP new:实例化对象

  1. 使用类中的属性和方法不像使用变量和函数那样简单,首先要对类进行实例化

实例化对象

  1. 将类实例化成对象非常容易,只需要使用new关键字并在后面加上一个和类同名的方法(**实际上就是new 类名()**)即可
  2. 如果在实例化对象时不需要为对象传递参数,在new关键字后面直接使用类名称即可,不需要加上括号
变量名 = new 类名(参数列表);
或
变量名 = new 类名;

参数说明

  1. 变量名:通过类所创建的一个对象的引用名称,可以通过这个名称来访问对象的成员
  2. new关键字,表明要创建一个新的对象
  3. 类名:表示新对象的类型
  4. 参数列表:指定类的构造方法用于初始化对象的值,如果类中没有定义构造函数,PHP会自动创建一个不带参数的默认构造函数

创建一个类并将其实例化

<?php
	class students{
		...
	}
	$person1 = new students();
	$person2 = new students;
	$person3 = new students;
?>
  1. 一个类可以实例化出多个对象,每个对象都是独立的。
  2. 上面的代码中通过students类实例化出三个对象,person1,person2,person3,相当于在内存中开辟了三分空间用于存放每个对象
  3. 使用同一个类声明的多个对象之间是没有联系的,只能说明他们都是同一个类型,每个对象内部都有类中声明的成员属性和成员方法
  4. 好比类型都是人,但是每个人都有自己的姓名,年龄,等等属性是不同的

访问对象中的成员

  1. 对象中包含成员属性和成员方法,访问对象中的成员和访问数组中的元素相似,只能通过对象的引用来访问对象中的成员
  2. 使用 -> 来完成对象成员的访问
变量名 = new 类(参数);  //实例化一个类
变量名 -> 成员属性 = 值;  //为成员属性赋值
变量名 -> 成员属性;  //直接获取成员属性的值
变量名 -> 成员方法(); // 访问对象中的成员方法
<?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关键字

作用

  1. this关键字的作用是:在实例化对象的时候用来规定指向谁
  2. this就是指向当前对象实例的指针,它不指向任何其它的对象或类
  3. $this->表示在类的本身内部使用本类的属性或方法, 指向当前类的实例化对象后的指针
class user{
	public $name;
	function getname(){
		echo $this -> name;
	}
}
$user1 = new user();
$user1 -> name = '张三';
$user1 -> getname(); 这里就会输出张三

关于什么是对象

  1. 变量是对象,函数是对象,类也是对象

  2. 变量的类型有很多,变量属于类类型(和类很类似)。广义地讲,对象包含了变量,即变量也可以称为一种对象,狭义地讲,将对象看作类的实例,对象是某个类的对象。