導航:首頁 > 編程語言 > php定義靜態類

php定義靜態類

發布時間:2025-01-30 04:09:07

『壹』 在php中self與$this的分別

1、意思上的區別

self代表類,$this代表對象(self是引用靜態類的類名,而$this是引用非靜態類的實例名)

2、用法上的區別

能用$this的地方一定使用self,能用self的地方不一定能用$this。

(1)php定義靜態類擴展閱讀:

Python中self用法詳解

1、以Student類為例,在Python中,定義類如下:

class Student(object):

pass

(Object)表示該類從哪個類繼承下來的,Object類是所有類都會繼承的類。

2、實例:定義好了類,就可以通過Student類創建出Student的實例,創建實例是通過類名+()實現:

student = Student()

3、由於類起到模板的作用,因此,可以在創建實例的時候,把我們認為必須綁定的屬性強制填寫進去。這里就用到Python當中的一個內置方法__init__方法,例如在Student類時,把name、score等屬性綁上去:

class Student(object):

def __init__(self, name, score):

self.name = name

self.score = score

『貳』 php 使用靜態方法的幾個注意事項說明

1.即使類中的方法並未用static聲明,但其未使用到可改變的類成員變數,在外部仍可用操作符::來調用;

2.以靜態方式(用::操作符)調用的方法中$this的取值是由調用時的上下文決定的!而不是定義他的類!!

例如以下的代碼:

<?php
classTestClass1
{
public$normal_v='normal_vfromTestClass1';
publicstatic$STATIC_V='STATIC_VfromTestClass1';
publicfunctiontest_func1()
{
echo$this->normal_v.'<br/>'.self::$STATIC_V;
}
}
classTestClass2
{
public$normal_v='normal_vfromTestClass2';
publicstatic$STATIC_V='STATIC_VfromTestClass2';
publicfunctiontest_func2()
{
TestClass1::test_func1();
}
}
$t2=newTestClass2();
$t2->test_func2();

這段代碼是輸出會是什麼呢,我原以為會是normal_v from TestClass1 <br /> STATIC_V from TestClass1,測試發現其實我錯了,正確的輸出是:

normal_v from TestClass2
STATIC_V from TestClass1

說明:test_func1()雖然是在TestClass1中定義的,但卻是在TestClass2中調用的,其內部的$this變數則是由TestClass2決定的!

其實這兩個類的關系應該屬於"雙向關聯".

『叄』 靜態方法 有什麼優缺點 PHP中靜態方法(s

靜態方法佔內存少,不用實例化,可直接調用

『肆』 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中static 靜態變數和普通變數的區別

php中static 靜態變數和普通變數的區別:

在變數的前面加上static 就構成了靜態變數(static 變數)。

static變數和普通變數的區別在於非靜態全局變數的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態的全局變數在各個源文件中都是有效的。 而靜態全局變數則限制了其作用域, 即只在定義該變數的源文件內有效, 在同一源程序的其它源文件中不能使用它。由於靜態全局變數的作用域局限於一個源文件內,只能為該源文件內的函數公用, 因此可以避免在其它源文件中引起錯誤。

『陸』 PHP中this,self和static的區別

  1. PHP支持類和面向對象結構,PHP的類的靜態函數和變數不與任何特定類的實例相關聯(換句話說,一個對象)。

  2. 相反,靜態函數和變數與類定義本身相關聯。換言之,一個類的所有實例都共享相同的靜態變數。在一個類的方法(函數)的上下文中,靜態變數和函數被訪問使用self::,在一個類的對象(實例)的上下文中使用其他方法和變數時用this。

  3. 靜態函數只能使用靜態變數,靜態函數和變數的引用是通過 self::函數名() 和 self::變數名。上述實例中,靜態變數的引用是由類名(exampleClass::$foo),或者self::(self::$foo),當在這個類的靜態方法[稱為 靜態函數()]里使用時。類的正則函數和變數需要一個對象上下文來引用,他們不能脫離對象上下文而存在。對象上下文由$this提供。在上述函數中,$bar 是一個正則變數,所以它被 $obj->bar(上下文使用變數obj) 來引用,或者使用 $this->bar(再次在一個對象的方法里在一個對象上下文中) 來引用。

  4. self 不使用前面的 $,因為 self 不意味著是一個變數而是類結構本身。而 $this 引用一個特定的變數,所以有前面的 $ 。

閱讀全文

與php定義靜態類相關的資料

熱點內容
基於51單片機的熱水器 瀏覽:698
圖片壓縮成一張圖怎麼解壓 瀏覽:777
還原文件夾英文 瀏覽:367
按摩手掌解壓視頻國外 瀏覽:608
空氣能壓縮機價格 瀏覽:532
php不能上傳大文件 瀏覽:240
消毒水清潔解壓 瀏覽:1000
cpdf閱讀 瀏覽:467
android方案公司 瀏覽:182
linux編寫makefile 瀏覽:488
考研程序員有什麼好處 瀏覽:225
畢向東android 瀏覽:259
27安全演算法 瀏覽:352
豐田空調壓縮機型號 瀏覽:835
程序員那麼可愛25集文字預告 瀏覽:556
linux讀寫文件命令 瀏覽:695
完美的傷害演算法 瀏覽:574
usch演算法 瀏覽:606
如何給excel某列表格加密 瀏覽:161
s7編譯 瀏覽:556