面向对象与面向过程 $this的注意事项和魔术方法set和get

时间:2022-05-21 23:19:43

一.面向对象与面向过程的区别:

二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为。面向对象,将功能封装进对象,强调具备了功能的对象。面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则。

二.面向对象的三大特征:

①封装(Encapsulation)②继承(Inheritance)③多态(Polymorphism)

面向对象简称OOP( Object Oriented Programming)

面向过程(procedure oriented programming)

三.完成需求时:

1.先去找具有所需功能的对象来用。

2.如果该对象不存在,那么创建一个具有所需功能的对象。

3.这样简化开发并提高复用。

(class)类和对象(boject)是面向对象的核心概念。

类是对一类事物的描述。是抽象的,概念上的定义。

对象是实际存在的该类事物的每一个个体,因而也称为实例。

万事万物皆对象。

四.面向对象程序设计的重点是对类的设计。

基本的类的成员有:

属性(成员变量或Field)和 方法(Method)

例题

class Ren //定义一个类叫Ren
{
//通过变量和方法来描述人类的特征
public $name;// 成员变量
public $sex; function __construct($n) //构造方法
{
$this->sex=$n; // $this 关键字,在类里面代表该对象;
}
public function Speak(); //成员方法
{
echo "正在讲话";
}
}

$this 本质可以理解为就是这个对象的地址。

哪个对象使用到$this,就是哪个对象的地址。

$this 不能在类外部使用。

魔术方法

function __set($n,$v)//魔术方法set
{
//$n是成员变量名;$v是成员变量值
$this->$n=$v;
}
$r=new Ren();
$r->age=20;//这样写__set()方法可以找到。
//$r->__set("age",20);//这样写也可以。 function __get($n)//魔术方法get
{
return $this->$n;
}
echo $r->age;