7.7.1 PHP常見的關(guān)鍵字

7.7.1 PHP常見的關(guān)鍵字

instanceof關(guān)鍵字
final關(guān)鍵字的應(yīng)用
static關(guān)鍵字的使用
const關(guān)鍵字

instanceof關(guān)鍵字

“instanceof”操作符用于檢測當(dāng)前對(duì)象實(shí)例是否屬于某一個(gè)類的類型。

<?php
        class Person{ ... ...  }
        class Student extends Person{  ...  ...  }
        $p=new Person();
        $s=new Student();
        echo $p instanceof Student;    //結(jié)果為false
        echo $s instanceof Student ;   //結(jié)果為true
        echo $s instanceof Person;    //結(jié)果為true

final關(guān)鍵字的應(yīng)用
在PHP5中新增加了final關(guān)鍵字,它只能用來修飾類和方法,不能使用final這個(gè)關(guān)鍵字來修飾成員屬性,因?yàn)閒inal是常量的意思,我們在PHP里定義常量使用的是define()函數(shù)和const關(guān)鍵字,所以不能使用final來定義成員屬性。
final的特性:
使用final關(guān)鍵字標(biāo)識(shí)的類不能被繼承;
使用final關(guān)鍵字標(biāo)識(shí)的方法不能被子類覆蓋(重寫),是最終版本;
目的:一是為了安全,二是沒有必要

1.php

<?php
/* 
 *
 */

    class Person {
        public $name;
        protected $age;
        protected $sex;

        function __construct($name, $age, $sex) {
            $this->name = $name;
            $this->age = $age;
            $this->sex = $sex;

        }

        public function say() {
            echo "我的名子是:{$this->name},我的年齡是:{$this->age},我的性別是:{$this->sex}。<br>";
        }

    


        function eat() {
            echo "11111111111111<br>";
        }

        function run() {
        
        }
    }


    class Student extends Person{
        var $school;

        function __construct($name, $age, $sex, $school) {
            parent::__construct($name, $age, $sex);

            $this->school = $school;
        }

        function study() {
        
        }

        function say() {
            parent::say();
            echo "我所在的學(xué)校:{$this->school}<br>";
        }

    }

    class Hello {
    
    }



    $p = new Person("高洛峰", 30, "男");


    $s = new Student("妹子", 20, "女", "兄弟連");


    if($s instanceof Person) {
        echo "這個(gè)\$s是Person類的對(duì)象";
    } else {
        echo "對(duì)象不屬于這個(gè)類";
    }


//  $s = new Student("妹子", 20, "女", "兄弟連");


//  $s -> say();

2.php

<?php
/* 
 *
 */

    final class Person {
        public $name;
        protected $age;
        protected $sex;

        function __construct($name, $age, $sex) {
            $this->name = $name;
            $this->age = $age;
            $this->sex = $sex;

        }

        public function say() {
            echo "我的名子是:{$this->name},我的年齡是:{$this->age},我的性別是:{$this->sex}。<br>";
        }

    


        function eat() {
            echo "11111111111111<br>";
        }

        function run() {
        
        }
    }


    class Student extends Person{
        var $school;

        function __construct($name, $age, $sex, $school) {
            parent::__construct($name, $age, $sex);

            $this->school = $school;
        }

        function study() {
        
        }

        function say() {
            parent::say();
            echo "我所在的學(xué)校:{$this->school}<br>";
        }

    }



    /*
     *
     *  在PHP中final不定義常量, 所以就不會(huì)使用,也不能使用final來修飾成員屬性
     *
     *
     *  1. final可以修飾類  --- 這個(gè)類不能去擴(kuò)展, 不能有子類 (不讓別人去擴(kuò)展, 這個(gè)類是最終的類時(shí))
     *
     *  2. final可以修飾方法
     *
     */



    $s = new Student("妹子", 20, "女", "兄弟連");

    $s -> say();

3.php

<?php
/* 
 *
 */

    class Person {
        public $name;
        protected $age;
        protected $sex;

        function __construct($name, $age, $sex) {
            $this->name = $name;
            $this->age = $age;
            $this->sex = $sex;

        }

        public final function say() {
            echo "我的名子是:{$this->name},我的年齡是:{$this->age},我的性別是:{$this->sex}。<br>";
        }

    


        function eat() {
            echo "11111111111111<br>";
        }

        function run() {
        
        }
    }


    class Student extends Person{
        var $school;

        function __construct($name, $age, $sex, $school) {
            parent::__construct($name, $age, $sex);

            $this->school = $school;
        }

        function study() {
        
        }

        function say() {
            parent::say();
            echo "我所在的學(xué)校:{$this->school}<br>";
        }

    }



    /*
     *
     *  在PHP中final不定義常量, 所以就不會(huì)使用,也不能使用final來修飾成員屬性
     *
     *
     *  1. final可以修飾類  --- 這個(gè)類不能去擴(kuò)展, 不能有子類 (不讓別人去擴(kuò)展, 這個(gè)類是最終的類時(shí))
     *
     *  2. final可以修飾方法  --- 這個(gè)方法,就不能在子類中覆蓋(不讓子類去改這個(gè)方法, 或擴(kuò)展這個(gè)方法的功能時(shí), 這個(gè)方法也就時(shí)最終的方法)
     *
     */



    $s = new Student("妹子", 20, "女", "兄弟連");

    $s -> say();

test.php

<?php
/* 
 *
 */

    class Person {
        public $name;
        protected $age;
        protected $sex;

        function __construct($name, $age, $sex) {
            $this->name = $name;
            $this->age = $age;
            $this->sex = $sex;

        }

        public  function say() {
            echo "我的名子是:{$this->name},我的年齡是:{$this->age},我的性別是:{$this->sex}。<br>";
        }

    


        function eat() {
            echo "11111111111111<br>";
        }

        function run() {
        
        }
    }


    class Student extends Person{
        var $school;

        function __construct($name, $age, $sex, $school) {
            parent::__construct($name, $age, $sex);

            $this->school = $school;
        }

        function study() {
        
        }

        function say() {
            parent::say();
            echo "我所在的學(xué)校:{$this->school}<br>";
        }

    }



    /*
     *
     *  在PHP中final不定義常量, 所以就不會(huì)使用,也不能使用final來修飾成員屬性
     *
     *
     *  1. final可以修飾類  --- 這個(gè)類不能去擴(kuò)展, 不能有子類 (不讓別人去擴(kuò)展, 這個(gè)類是最終的類時(shí))
     *
     *  2. final可以修飾方法  --- 這個(gè)方法,就不能在子類中覆蓋(不讓子類去改這個(gè)方法, 或擴(kuò)展這個(gè)方法的功能時(shí), 這個(gè)方法也就時(shí)最終的方法)
     *
     */



    $s = new Student("妹子", 20, "女", "兄弟連");

    $s -> say();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Php:腳本語言,網(wǎng)站建設(shè),服務(wù)器端運(yùn)行 PHP定義:一種服務(wù)器端的HTML腳本/編程語言,是一種簡單的、面向?qū)ο?..
    廖馬兒閱讀 2,185評(píng)論 2 38
  • 注:這是第三遍讀《C語言深度解剖》,想想好像自從大學(xué)開始就沒讀完過幾本書,其中譚浩強(qiáng)的那本《C語言程序設(shè)計(jì)(第四版...
    HavenXie閱讀 1,765評(píng)論 1 6
  • Java的關(guān)鍵字對(duì)java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù)類型,或者表示程序的結(jié)構(gòu)等。保留字是為java...
    小沙鷹168閱讀 1,748評(píng)論 0 0
  • 感賞自己已經(jīng)堅(jiān)持打坐5到15分鐘第三天了,喜歡靜靜地坐著,讓自己回歸寧靜,投射可以把打坐時(shí)間來長到30分鐘 感賞男...
    童欣怡_中閱讀 144評(píng)論 0 0
  • 小的時(shí)候住平房,家里院子好大,爸爸養(yǎng)了好幾只狗,狗又生狗,我們就有了好多小狗。 我家的狗,一共有四只,分為傳家狗和...
    陳大可1943閱讀 2,291評(píng)論 36 91