php面向对象简单概括-php教程

资源魔 34 0
根本常识

类:具备相反属性或办法的一类荟萃体。比方雪佛兰汽车是一个雪佛兰汽车类,飞驰汽车是一个飞驰汽车类,宝马汽车是一个宝马汽车类,而这三个类又是汽车年夜类的子类。
工具:类的一个详细完成,比方宝马Q5就是宝马汽车类的一个详细完成。工具地应用是放正在内存中的。一下让咱们理解一下工具正在内存中的调配

5.png

应用面向工具,就是灵敏地应用以上两个常识点。让咱们来创立以及应用类与工具

<?php
    /**
    *新建一个类
    */
    class newClass{        public $a;        public $b;        public function funA(){            echo "I am function A";
        }        public function funB(){            echo "I am function B";
        }
    }    /**
    *应用类创立工具
    */
    $opt=new newClass();
    $opt->a="opt";//将opt工具中的a属性赋值为opt
    $opt->funA();//打印出"I am function A"?>


润饰符:正在界说类与类中的属性时,咱们能够应用以下三个润饰符,若没有加,则默许为public
public:权限最年夜
protected:权限范畴正在其自身与其子类
private:权限范畴仅正在其自身
<font color="blue" size="4">结构函数与析构函数</font>:正在咱们对类实例化创立工具时,往往需求对工具进行初始化,这时候,咱们就需求正在类中界说一个结构办法。当咱们应用完工具时,就需求开释工具,以缩小内存的应用,这时候咱们就需求应用析构办法。
正在php中咱们应用__construct()办法与__destruct(),以下代码

<?php
class newClass{
    public $a;
    public $b;
    public function __construct($a,$b){
        $this->a=$a;
        $this->b=$b;
        echo "我是结构函数";
    }
    public function __destruct(){
        echo "我是析构函数";
    }
}
?>

封装性

当咱们开发一些首要的顺序模块时,经常没有心愿他人能随意马虎拜访这些顺序模块的数据,因而需求对这些数据进行封装。这时候咱们要进行数据的拜访管制,经常应用<font color="red">private</font>要害字来对这些属性与办法进行封装。
以下:

<?php
class privateClass
{
    private $a;
    private $b;
    private function privateFun()
    {
        echo "我是封装的办法";
    }
} ?>

这样,当咱们创立工具时就不克不及挪用公有的属性与办法。然而咱们能够经过应用魔术办法来对这些公有属性与办法进行拜访。
__set()与__get()的应用
经过__set()办法咱们能够经过工具间接设置成员属性值
经过__get()办法咱们能够经过工具间接猎取成员属性值

<?php
class setClass
{        
     private $a;        
    private $b="ww";        
    public function __set($oldValue,$newvalue){ 
        $this->$oldValue=$newvalue;
    }        
    public function __get($newvalue){            
        return $newvalue;
    }
}
    $opt= new setClass();
    $opt->a="sss";//间接设置公有属性值
    echo $opt->b;//间接读取公有属性值
?>

__isset()与__unset()的应用
经过__isset()间接查看工具中公有属性能否存正在
经过__unset()间接删除了工具中的公有属性

<?php
class issetClass
{
    private $a;
    private $b = 'www';
    function __isset($privateName)
    {
        if (isset($privateName)) {
            return 1;
        } else {
            return 0;
        }
    }
    function __unset($privateName)
    {
        echo "销毁" . $privateName;
    }
}
$opt = new issetClass();
echo isset($opt->$b);
var_dump(unset($opt->$b));?>

承继性

当咱们编写多个类时,经常多个类具备相反的属性与办法,为了简化代码咱们引入了承继的概念,子类能够承继父类的一些属性与办法,缩小了冗余代码地编写。

若何编写承继类
咱们应用要害字extends来编写子类

<?php
    class parentClass{
    }    
    class childClass extends parentClass{
    }    
?>

如上,childClass是parentClass的子类,php仅支持单承继,即一个子类只有一个父类,但父类能够有多个子类。

重写父类办法
当父类中的办法不克不及餍足子类的应用时咱们能够重写父类办法。但当咱们又想正在子类应用父类的办法时,咱们能够应用以下语法:parent::办法名几个首要的要害字

3.1 final

final能够润饰类与办法,不克不及润饰成员属性;
被final润饰的类不克不及承继,而用final润饰的办法正在子类中不克不及被重写

3.2 static

static能够润饰成员属性与成员办法,不克不及润饰类;
应用static润饰的成员与办法能够经过类间接应用,应用以下语法:类名::\$属性名或办法名();
正在类中应用时经过以下语法:self::\$属性名或办法名.

3.3 const

正在类中申明常量应用const,而没有是应用define();
比方 const TT=90当应用常量时间接应用以下语法self::常量名

3.4 instanceof

应用该要害字能够检测某个实例能否是某个类的实例。

3.5 trait

php只能进行单承继,但它同时提供了另类形式来进行代码复用,处理单承继成绩。
以下

<?php

trait testA
{
    function a()
    {
    }
}

trait testB
{
    function b()
    {
    }
}

class testC
{
    use testA, testB;

    function c()
    {
    }
} ?>

形象技巧

用abstract要害字润饰的办法与类称为形象办法或形象类。
申明形象类与形象办法

<?php
abstract class testClass
{
$a;
$b;
    abstract function testFun();
    abstract function testFun1();
    public function optFun()
    {
        echo "形象类中的形象办法";
    }//形象类能够有非形象办法
}
class childClass extends testClass
{
    function testFun()
    {
        echo "子类中完成形象办法";
    }
    function testFun1()
    {
        echo "子类完成形象办法";
    }
}
abstract child1Class extends testClass
{
}//子类是形象办法能够没有完成父类的形象办法?>

形象技巧为子类的申明提供了一种标准,限度了类的实例化(形象类不克不及实例化)。

接口技巧

接口是一种非凡的形象类,接口中只能申明形象类与常量
申明接口应用interface,完成接口应用implements,润饰符只能是默许的public;
一个子类能够承继多个接口,同时承继一个父类

<?php
interface newInterface
{
    const V = 12;
    abstract function fun1();
    abstract function fun2();
}
interface newInterface1
{
    abstract function fun3();
    abstract function fun4();
}
class parentClass
{
    function fun5()
    {
        echo "fun5";
    }
}
class optClass extends parentClass implements newInterface, newINterface1
{
    function fun1()
    {
        echo "fun1";
    }
    function fun2()
    {
        echo "fun2";
    }
    function fun3()
    {
        echo "fun3";
    }
    function fun4()
    {
        echo "fun4";
    }
} ?>

多态

正在php中多态地完成需求一个类经过多个子类地承继完成,假如一个类的办法正在多个子类中重写并完成没有同的性能,咱们称之为多态。

保举教程:《PHP教程

以上就是php面向工具简略归纳综合的具体内容,更多请存眷资源魔其它相干文章!

标签: php开发教程 php开发资料 php开发自学 面向对象

抱歉,评论功能暂时关闭!