国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

php中靜態類與靜態變量用法區別解析

2019-11-02 15:51:43
字體:
來源:轉載
供稿:網友

 static是定義一個靜態對象或靜態變量,關于static 定義的變量或類方法有什么特性我們看完本文章的相關實例后就見分曉了.

 

  1. 創建對象$ob ject = new Class(),然后使用”->”調用:$ob ject->attribute/function,前提是該變量/方法可訪問.

 

  2. 直接調用類方法/變量:class::attribute/function,無論是靜態/非靜態都可以,但是有前提條件.

  A. 如果是變量,需要該變量可訪問.

  B. 如果是方法,除了該方法可訪問外,還需要滿足.

  ① 如果是靜態方法,沒有特殊條件.

  ② 如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態的變量/方法,當然,調用靜態的變量/方法沒有問題.

 

  然后我們再看一下使用$ob ject->… 和使用class::… 都有什么區別:

  1. 使用$ob ject->… ,需要執行構造函數創建對象.

  2. 使用class::… 調用靜態方法/變量,不需要執行構造函數創建對象.

  3. 使用class::… 調用非靜態方法/變量,也不需要執行構造函數創建對象.

  然后奇怪的地方就出來了,既然2和3都一樣,那靜態方法/變量存在還有什么意義呢?

 

  靜態static:聲明類成員或方法為 static,就可以不實例化類而直接訪問,不能通過一個對象來訪問其中的靜態成員(靜態方法除外),靜態成員屬于類,不屬于任何對象實例,但類的對象實例都能共享.

 

  例子,代碼如下:

  [代碼]php代碼:

  01<?php

  02Class Person{

  03 // 定義靜態成員屬性

  04 public static $country = "中國";

  05 // 定義靜態成員方法

  06 public static f

情侶網名[www.la240.com/html2017/1/25/]
unction myCountry() {

  07 // 內部訪問靜態成員屬性

  08 echo "我是".self::$country."人<br />";

  09 }

  10}

  11class Student extends Person {

  12 function study() {

  13 echo "我是". parent::$country."人<br />";

  14 }

  15}

  16// 輸出成員屬性值

  17echo Person::$country."<br />"; // 輸出:中國

  18$p1 = new Person();

  19//echo $p1->country; // 錯誤寫法

  20// 訪問靜態成員方法

  21Person::myCountry(); // 輸出:我是中國人

  22// 靜態方法也可通過對象訪問:

  23$p1->myCountry();

  24

  25// 子類中輸出成員屬性值

  26echo Student::$country."<br />"; // 輸出:中國

  27$t1 = new Student();

  28$t1->study(); // 輸出:我是中國人

  29?>

  運行該例子,輸出:

  中國

  我是中國人

  我是中國人

  中國

  我是中國人

 

  小結:在類內部訪問靜態成員屬性或者方法,使用 self::(注意不是 $slef),代碼如下:

  slef:: $country

  slef:: myCountry()

 

  在子類訪問父類靜態成員屬性或方法,使用 parent::(注意不是 $parent),代碼如下:

  parent:: $country

  parent:: myCountry()

 

  外部訪問靜態成員屬性和方法為 類名/子類名::,代碼如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漾濞| 福安市| 腾冲县| 礼泉县| 陕西省| 宾川县| 全州县| 虎林市| 江孜县| 永修县| 中江县| 定西市| 昭苏县| 元江| 项城市| 怀远县| 巧家县| 昌乐县| 浪卡子县| 祥云县| 嘉兴市| 乌兰浩特市| 博客| 长寿区| 卢龙县| 永城市| 甘泉县| 灵寿县| 蛟河市| 荣昌县| 东阿县| 万盛区| 甘泉县| 文昌市| 龙州县| 固镇县| 海城市| 江孜县| 甘孜县| 双城市| 济阳县|