導航:首頁 > 編程語言 > php靜態對象調用

php靜態對象調用

發布時間:2023-06-02 13:09:56

php面向對象 靜態屬性為什麼能用對象訪問

Static關鍵字

聲明類成員或方法為static,就可以不實例化類而直接訪問。不能通過一個對象來訪問其中的靜態成員(靜態方法除外)。

由於靜態方法不需要通過對象即可調用,所以偽變數$this在靜態方法中不可用。

靜態屬性不可以由對象通過->操作符來訪問。

用::方式調用一個非靜態方法會導致一個E_STRICT級別的錯誤。

就像其它所有的PHP靜態變數一樣,靜態屬性只能被初始化為一個字元值或一個常量,不能使用表達式。 所以你可以把靜態屬性初始化為整型或數組,但不能指向另一個變數或函數返回值,也不能指向一個對象。

--------以上為php手冊 原文

❷ php中怎麼調用方法中的靜態變數

看看下面的實例:
<?php
function Test()
{
$w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>

本函數每次調用時都會將 $w3sky 的值設為 0 並輸出 "0"。將變數加一的 $w3sky++ 沒有其到效果,因為一旦退出本函數則變數 $w3sky 就不存在了。
要寫一個不會丟失本次計數值的計數函數,要將變數 $w3sky 定義為靜態(static)的:
如下:
<?php
function Test()
{
static $w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>

❸ PHP 靜態方法怎麼調用父類非靜態方法

子類的靜態方法裡面實例化父類,然後調用父類的非靜態方法。
因為子類的靜態方法調用父類的方法需要使用parent::函數名()或有可能是self::函數名(),子類的靜態方法使用parent::函數名()或有可能是self::函數名()時這個函數名()必須是父類裡面的一個靜態方法,如果不是靜態方法,會報錯Strict Standards: Non-static method parentClass::b() should not be called statically,但是還是會有正確結果喲

❹ php中靜態成員如何使用

當前類中使用self::或者static::調用靜態成員,靜態方法中只能調用靜態成員,外部直接使用類名::靜態成員調用

❺ php中怎麼調用方法中的靜態變數

static
變數是php中的變數作用范圍的一個重要特性
靜態變數僅在局部函數域中存在且只被初始化一次,當程序執行離開此作用域時,其值不會消失,會使用上次執行的結果
一個普通的變數,如
$message
在它所在的函數執行完之後就被釋放了
即第二個function執行10次,每次執行完後,$message變數被釋放,所以每次都是1
變數前加了static後,該變數在它所在的函數執行完後不會被釋放
即第一個function每次被執行後,static
$message沒有被釋放,它將被繼續累加

❻ php父類如何調用子類的靜態方法或變數

<?php
classA{
staticpublic$m=1;
staticpublicfunctionm(){
echostatic::$m,'<br/>';
}
staticpublicfunctionn(){
static::n();
}
}
classBextendsA{
staticpublic$m=111;
staticpublicfunctionm(){
parent::m();
}
staticpublicfunctionn(){
echoparent::$m,'<br/>';
}
}
B::m();
B::n();

❼ php 靜態方法為什麼不能調用this

static關鍵字聲明一個屬性或方法是和類相關的,而不是和類的某個特定的實例相關,因此,這類屬性或方法也稱為「類屬性」或「類方法」。
2. 靜態變數的調用方法:只能使用slef:: 或者 類名:: 訪問,不能使用$this訪問;反之,類的成員變數未聲明為const及static時,只能使用$this訪問,不能用::訪問。

❽ php中static靜態類與static 靜態變數用法區別

static 是定義一個靜態對象或靜態變數,關於static 定義的變數或類方法有什麼特性我們看完本文章的相關實例後就見分曉了。
1. 創建對象$object = new Class(),然後使用」->」調用:$object->attribute/function,前提是該變數/方法可訪問。
2. 直接調用類方法/變數:class::attribute/function,無論是靜態/非靜態都可以。但是有前提條件:
A. 如果是變數,需要該變數可訪問。
B. 如果是方法,除了該方法可訪問外,還需要滿足:
b1) 如果是靜態方法,沒有特殊條件;
b2) 如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態的變數/方法,當然,調用靜態的變數/方法沒有問題。
然後我們再看一下使用$object->… 和使用class::… 都有什麼區別:
1. 使用$object->… ,需要執行構造函數創建對象;
2. 使用class::… 調用靜態方法/變數,不需要執行構造函數創建對象;
3. 使用class::… 調用非靜態方法/變數,也不需要執行構造函數創建對象。
然後奇怪的地方就出來了,既然2和3都一樣,那靜態方法/變數存在還有什麼意義呢?
靜態 static
聲明類成員或方法為 static ,就可以不實例化類而直接訪問,不能通過一個對象來訪問其中的靜態成員(靜態方法除外)。靜態成員屬於類,不屬於任何對象實例,但類的對象實例都能共享。

閱讀全文

與php靜態對象調用相關的資料

熱點內容
男變女懷孕並生孩子的小說 瀏覽:343
安卓怎麼玩出蘋果的軟體 瀏覽:92
除了80以外還有啥看電影 瀏覽:369
加密分享可以採用的演算法 瀏覽:686
請問誰有免費的男人網站? 瀏覽:75
58pdf 瀏覽:768
年輕人愛看的免費的電影網站 瀏覽:782
天津水游城電影院今日影訊簡介 瀏覽:99
lin運演算法則 瀏覽:574
天刀命令 瀏覽:132
韓國電影在閣樓偷窺女主的 瀏覽:417
葉天明與柳韻小說 瀏覽:517
優盤加密文件和投屏沖突 瀏覽:537
韓國推理電影免費在線觀看 瀏覽:646
php修改資料庫欄位 瀏覽:431
老司機看片入口 瀏覽:890
梁山正信樓電影院買票入口 瀏覽:59
消失的眼角膜未刪減版 瀏覽:196
目前安卓平板什麼處理器最好 瀏覽:528
中考幫pdf 瀏覽:678