php面向对象基础一

php面向对象基础一

  每学一门后端语言,都会先让你了解什么面向对象?现在我们就一起去了解什么是面向对象。
什么是面向对象?!什么是面向过程?!

面向对象:把构成问题事务分解成各个对象,建立对象的目的描述某个事物在整个解决问题的步骤中的行为。

面向过程:分析出解决问题所需要的步骤。

1.类
类的定义:

 class 类名{

  字段(属性)

  方法(函数)

 }

继承:extends

接口:interface

接口实现:implements

继承:parent::方法名 或者类名::方法名

抽象类(方法):abstract

特别注意:解决类名的冲突可以使用命名空间 namespace

2.修饰符(public、private、protected)

修饰符 作用域
public 任意作用域
private 类内
protected 子类中

**3.include与require区别**
差异:二者出现的抛出的异常错误不一样,当二者应用不存在的文件时,前者会抛出warring并且继续进行下面的代码,后者会抛出error不会继续执行剩下的代码。
Include:主要引入html文件
Require:主要用于引入php文件(严谨)
相同处:都可以用于引入文件

扩展:
require_once和include_once

require和require_once

Require:同一个文件多次会报错

require_once:多次使用则会只引入一次(同一个文件引入只能引入一次)

Include和include_once

Include:可以多次引入

Include_once:多次使用则会只引入一次(同一个文件引入只能引入一次)

Require比require_once性能好

4.关键字(this、self)

this、self主要用于常量和静态变量的使用

public static $st=666;
const PI = 3.1415926;
public function onlyRead(){
    echo "静态字段:<br>";
    echo "类名读取:".Person::$st."<br>";
    echo "self读取:".self::$st."<br>";
    echo "this读取:".$this::$st."<br>";
}

在类外访问常量和静态变量时,只能通过类名访问。

5.静态方法和变量

定义静态变量:修饰符 static 变量名
定义静态方法:修饰符 static function 函数名(){}

public static $st=666;
public static function setST($type){
    // Person::$st = $type; //静态字段赋值只能通过self、类名赋值  不可以通过$this
    self::$st = $type;
}

6.常量(const)

定义常量:const 常量名 = 值

访问常量的方法:

类外:

    echo "类名读取:".Person::PI."<br>";  //类名访问

类中:

public function onlyReadConst(){
    echo "const字段:<br>";
    echo "类名读取:".Person::PI."<br>";
    echo "self读取:".self::PI."<br>";
    echo "this读取:".$this::PI."<br>";
}

特别注意:
常量一旦定义就不可以修改其值。

7.属性操作

自定义:set、get方法

public function getName(){
return $this->name;
}
public function setName($name){
$this->name = $name;
}

Php自带API:魔法函数 __get(),__set()

public function __get($type){
return $this->$type;
}
public function __set($type,$value){
$this->$type = $value;
}

8.构造函数

(1)自定义构造函数

无参构造体

public function Person(){
echo "自定义无参构造体<br>";
}

自定义有参构造体

public function Person($name,$age=10){
echo "自定义有参构造体<br>";
$this->name = $name;
$this->age = $age;
}

(2)魔法构造函数

API无参构造体

public function __construct(){
echo "API实现无参构造体<br>";
}

API有参构造体

public function __construct($name,$age=100){
echo "魔法函数之有参构造体<br>";
$this->name = $name;
$this->age = $age;
}

特别注意:
在php中一个类有且仅有一个构造函数。

发布了42 篇原创文章 · 获赞 56 · 访问量 10万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章