php-面向对象OOP

简介: php-面向对象OOP

类:定义一件事物的抽象特点。
对象:类的 实例。
成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。var关键字定义成员变量。
多态:相同的函数或方法可作用于多种类型对象产生不同结果。
封装:现实世界中存在的某个客体的属性和行为绑定在一起,并放置在一个逻辑单元中。
构造函数:创建对象是初始化对象,为对象成员变量赋初始值,与new运算符一起使用在创建对象的语句中。
定义类:

<?php
class site(){
    /* 成员变量 */
  var $url;
  var $title;
  
  /* 成员函数 */
  function setUrl($par){
     $this->url = $par;
  }
  function getUrl(){
     echo $this->url . PHP_EOL;
  }
}
?>

类的变量使用 var 来声明, 变量也可以初始化值。
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
变量 $this 代表自身的对象。
创建对象:

$baidu = new site;
$taobao = new site;

调用成员方法:

$baidu->setUrl('www.baidu.com');
$baidu->getUrl();

构造方法:

function __construct($baidu){
    $this->url = $baidu;
}

现在可以这样实例化对象:

$baidu = new site('www.baidu.com');
//调用成员函数
$baidu->getUrl()

方法重写:

// 从父类继承的方法不能满足子类时,可以对方法进行重写覆盖(override)
function getUrl() {
   echo $this->url . PHP_EOL;
   return $this->url;
}

访问控制:
public 公有公有的类成员可以在任何地方被访问。protected 受保护受保护的类成员则可以被其自身以及其子类和父类访问。private 私有私有的类成员则只能被其定义所在的类访问。(继承类也不能访问)

static关键字:
声明方法或类属性为static,可以不实例化而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

Final关键字:
如果父类中的方法被声明final,则子类不能覆盖该方法(重写);如果类被声明final则该类不能被继承。

调用父类的构造方法:
PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。

<?php
class base{
    function __construct(){
        print "base类构造方法".PHP_EOL;
    }
}

class sub extends base{
    function __construct()
    {
        parent::__construct();// 子类不能自动继承父类构造方法
        print "子类sub的构造方法".PHP_EOL;
    }
}

// 调用base构造方法
$obj1 = new base();
// 调用base、sub构造方法
$obj2 = new sub();
?>
目录
相关文章
|
9月前
|
数据处理 PHP
PHP面向对象和面向过程的区别
PHP面向对象和面向过程的区别
48 0
|
存储 PHP
PHP面向对象的知识体系是什么?底层原理是什么?
PHP面向对象的知识体系是什么?底层原理是什么?
|
存储 Java PHP
PHP面向对象的生命周期是什么?底层原理是什么?
PHP面向对象的生命周期是什么?底层原理是什么?
127 0
|
API PHP 开发者
PHP的面向对象是什么?底层原理是什么?
PHP的面向对象是什么?底层原理是什么?
|
API PHP 开发者
PHP为什么要用面向对象?底层原理是什么?
PHP为什么要用面向对象?底层原理是什么?
|
存储 PHP 数据库
PHP面向对象为什么一定要有属性?
PHP面向对象为什么一定要有属性?
|
算法 数据处理 PHP
PHP面向过程和面向对象的区别是什么?底层原理是什么?
PHP面向过程和面向对象的区别是什么?底层原理是什么?
161 0
|
存储 PHP 数据安全/隐私保护
PHP面向对象是干什么的?底层原理是什么?
PHP面向对象是干什么的?底层原理是什么?
PHP快速入门-基础语法及面向对象
PHP快速入门-基础语法及面向对象
109 0
|
PHP 数据安全/隐私保护
【PHP面向对象】接口跟抽象类的区别和各自的用法
【PHP面向对象】接口跟抽象类的区别和各自的用法
115 0
【PHP面向对象】接口跟抽象类的区别和各自的用法