麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

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

2020-03-22 20:18:31
字體:
來源:轉載
供稿:網友
本文實例分析了php中靜態類與靜態變量用法的區別。分享給大家供大家參考。具體分析如下:html' target='_blank'>static是定義一個靜態對象或靜態變量,關于static 定義的變量或類方法有什么特性我們看完本文章的相關實例后就見分曉了.1. 創建對象$object = new Class(),然后使用”- ”調用:$object- attribute/function,前提是該變量/方法可訪問.2. 直接調用類方法/變量:class::attribute/function,無論是靜態/非靜態都可以,但是有前提條件.A. 如果是變量,需要該變量可訪問.B. 如果是方法,除了該方法可訪問外,還需要滿足.① 如果是靜態方法,沒有特殊條件.② 如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態的變量/方法,當然,調用靜態的變量/方法沒有問題.然后我們再看一下使用$object- … 和使用class::… 都有什么區別:1. 使用$object- … ,需要執行構造函數創建對象.2. 使用class::… 調用靜態方法/變量,不需要執行構造函數創建對象.3. 使用class::… 調用非靜態方法/變量,也不需要執行構造函數創建對象.然后奇怪的地方就出來了,既然2和3都一樣,那靜態方法/變量存在還有什么意義呢?靜態static:聲明類成員或方法為 static,就可以不實例化類而直接訪問,不能通過一個對象來訪問其中的靜態成員(靜態方法除外),靜態成員屬于類,不屬于任何對象實例,但類的對象實例都能共享.例子,代碼如下:
復制代碼 代碼如下: php
Class Person{
// 定義靜態成員屬性
public static $country = "中國";
// 定義靜態成員方法
public static function myCountry() {
// 內部訪問靜態成員屬性
echo "我是".self::$country."人 br /
}
}
class Student extends Person {
function study() {
echo "我是". parent::$country."人 br /
}
}
// 輸出成員屬性值
echo Person::$country." br / // 輸出:中國
$p1 = new Person();
//echo $p1- country; // 錯誤寫法
// 訪問靜態成員方法
Person::myCountry(); // 輸出:我是中國人
// 靜態方法也可通過對象訪問:
$p1- myCountry();

// 子類中輸出成員屬性值
echo Student::$country." br / // 輸出:中國
$t1 = new Student();
$t1- study(); // 輸出:我是中國人

運行該例子,輸出:
中國
我是中國人
我是中國人
中國
我是中國人小結:在類內部訪問靜態成員屬性或者方法,使用 self::(注意不是 $slef),代碼如下:
復制代碼 代碼如下:slef:: $countryslef:: myCountry()在子類訪問父類靜態成員屬性或方法,使用 parent::(注意不是 $parent),代碼如下:
復制代碼 代碼如下:parent:: $countryparent:: myCountry()外部訪問靜態成員屬性和方法為 類名/子類名::,代碼如下:
復制代碼 代碼如下:Person::$countryPerson::myCountry()Student::$country但靜態方法也可以通過普通對象的方式訪問.
例子,聲明靜態變量,代碼如下:
復制代碼 代碼如下: PHP
function foo(){
static $int = 0;// correct
static $int = 1+2; // wrong (as it is an expression)
static $int = sqrt(121); // wrong (as it is an expression too)
$int++;
echo $int;
}

例子,使用靜態變量的例子,代碼如下:
復制代碼 代碼如下: PHP
function Test()
{
static $w3sky = 0;
echo $w3sky;
$w3sky++;
}

現在,每次調用 Test() 函數都會輸出 $w3sky 的值并加一.靜態變量也提供了一種處理遞歸函數的方法,遞歸函數是一種調用自己的函數,寫遞歸函數時要小心,因為可能會無窮遞歸下去,必須確保有充分的方法來中止遞歸,一下這個簡單的函數遞歸計數到 10,使用靜態變量 $count 來判斷何時停止.例子,靜態變量與遞歸函數,代碼如下:
復制代碼 代碼如下: PHP
function Test()
{
static $count = 0;

$count++;
echo $count;
if ($count 10) {
Test();
}
$count--;
}

注:靜態變量可以按照上面的例子聲明,如果在聲明中用表達式的結果對其賦值會導致解析錯誤.希望本文所述對大家的php程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线播放h | 91九色蝌蚪在线 | 日韩一级网站 | 中文字幕在线播放第一页 | 在线亚洲综合 | 天天躁狠狠躁夜躁2020挡不住 | 悠悠成人资源亚洲一区二区 | 羞羞电影在线观看 | 成人一级毛片 | 免费a级毛片大学生免费观看 | 中文字幕在线资源 | 亚洲国产色婷婷 | 摸逼逼视频 | 毛片毛片免费看 | 成人在线观看一区二区三区 | 久久久久久免费免费 | 欧美电影在线观看 | 久久精品一二三区白丝高潮 | 亚洲自拍第一 | 久久久视频免费观看 | 欧美精品在线视频观看 | 一级大片一级一大片 | 久久777国产线看观看精品 | 黄色18网站| 91色成人 | 久久久久成人免费 | 国产在线精品一区二区夜色 | 特色一级黄色片 | 91 视频网站| 日韩精品一区二 | 免费一级片观看 | 在线a毛片免费视频观看 | 一本色道久久综合亚洲精品小说 | 日本羞羞影院 | 日韩精品中文字幕在线观看 | 欧美成人高清视频 | wwwav国产 | 久久精品成人 | 毛片毛片免费看 | 宅男视频在线观看免费 | 日日摸夜夜骑 |