導航:首頁 > 編程語言 > php判斷類是否實例化

php判斷類是否實例化

發布時間:2023-01-03 06:30:19

1. python 怎麼判斷一個類是否被實例化,能給出代碼學習下嗎,謝謝!

這個類似於單例模式吧

print '----------------------方法1--------------------------'
#方法1,實現__new__方法
#並在將一個類的實例綁定到類變數_instance上,
#如果cls._instance為None說明該類還沒有實例化過,實例化該類,並返回
#如果cls._instance不為None,直接返回cls._instance
class Singleton(object):
def __new__(cls, *args, **kw):
if not hasattr(cls, '_instance'):
orig = super(Singleton, cls)
cls._instance = orig.__new__(cls, *args, **kw)
return cls._instance

class MyClass(Singleton):
a = 1

one = MyClass()
two = MyClass()

two.a = 3
print one.a
#3
#one和two完全相同,可以用id(), ==, is檢測
print id(one)
#29097904
print id(two)
#29097904
print one == two
#True
print one is two
#True

2. php實例化

有幾個書寫錯誤,現在已經訂正!
$arr = $this->GetRecord($SQL);//這不是調用父類中的方法嗎?
我跟你說過,什麼叫繼承,就是說子類擁有父類的所有成員(在可繼承的情況下),你可以通過作用域連接符使用父類成員,也可以通過$this關鍵字(靜態的,私有的不行!!!!!)!!!!!!!

怎樣來認識面向對象編程:
給你舉個例子:
class student{
public $name;
public statics $age;
public function set_name($name){
$this->name=$name;//這是正確的
self::$name=$name;//正確
$name=$name;//這句錯誤
}
public function set_age($age){
$this->age=$age;//錯誤
self::$age=$age;//正確
}
}
//為什麼會這樣呢,也就是說,如果你要在類裡面另外的成員,那麼你就要通過
//$this關鍵字,或者作用域解析符,但是如果是靜態成員,不能使用$this訪問,來引用它,不能像普通的代碼一樣直接使用.
$this->name你可以這樣理解,學生的名字,也就是說$this代表的就是類名

class boy_student extents students{
//這個類擴展自students,也就是說有students類的所有成員,
//當然你也可以添加students沒有的成員
$aadress;
:
:
:
//如果你要應用父類的方法:可以這樣:
parent::set_name(....)
//當然這里涉及到的東西足足可以寫成一本書,不是說有的父類成員都能子類訪問,有些甚至連繼承都不行,這里涉及到可見性的問題!
}

*********************************
$this->xxx 實例化來調用的嗎?
*******************************
這不是實例化,什麼叫實例化,就是說,剛才我們定義的是一個抽象的東西,就像學生,他是一個類別;
$zhangshan = new students();
這才是實利化,明白嗎!

3. php中為什麼靜態變數不用實例化

你沒學過C語言和C++嗎???? 靜態變數只能聲明一次,在你連接一個類時,所有的靜態變數和靜態函數都已經定義並啟用了,而且不能再動態生成新變數和函數,所有實例化的對象公用一個靜態變數和靜態函數,靜態類也是如此,靜態類是不能實例化的,但能直接用。。。。
c++語言里static標記的函數和變數,都不能進行第二次申請內存,只有動態的有auto標記的才可以執行一次語句申請一次內存,即實例化(這個關鍵字是默認的通常不寫,沒有就代表是auto),所有語言的靜態和動態意思都是一樣的,靜態變數或函數都有特殊的靜態標識符,通常都是static ,PHP也是一樣,所有編譯器和解釋器一但看到這個標志,就不會第二次執行該聲明語句,所以也沒法實例化,可以直接用,但用的都是同一個。。。

4. PHP 類怎麼判斷調用方法

給個例子 好好理解下吧 例:<?php
class A
{
function foo()
{
if (isset($this)) {
echo '$this is defined (';
echo get_class($this);
echo ")\n";
} else {
echo "\$this is not defined.\n";
}
}
}

class B
{
function bar()
{
A::foo();
//parent::foo();
}
}

$a = new A();
$a->foo();//動態調用,因為new了對象
A::foo();//靜態調用,直接用類名去調用,沒有new對象
$b = new B();
$b->bar();//在對象$b中,A::foo();進行靜態調用
B::bar();
?>
總結:靜態、動態調用都指類、對象對其方法的調用,動態指的是創建(new)了對象,然後用對象變數去調用方法;靜態則是沒有創建對象,直接用類名去調用。至於另一個對象那就很簡單了,不同的類創建不同的對象,比如class A;class B ,$a = new A();$b = new B();$a and $b 相對之間就是另一個對象了。
延伸:偽變數 $this 通常未定義,如果其所在的方法是被靜態調用的話。但這不是個嚴格規定:如果一個方法被從另一個對象內靜態調用的話,則 $this 會被定義。此時 $this 的值是那個發出調用的對象。

5. php 有很多文件實例化了這個類 我想在這個類里知道哪個文件實例化了我

關鍵我還是不太清楚啊 在哪個地方實例化了?是在主文件.php下。還是配置文件里?是不是 一個整體文件 上面是mysql的東西,下面比如說是分頁的東西,分頁的東西也需要用到資料庫,是不是 mysql+list的類才可實現分頁的。!而現在就是把mysql單獨做一個文件出來,在list頁面裡面引入過mysql類的東西。我就不明白最後一點,通過一個global全局就怎麼引用了。因為這個貌似是一個類引用另一個實例化類也就是對象裡面的東西

6. php對象實例化問題

構造函數不能有返回值,你想只實例類,把你返回那個數組賦值給公有變數.外面直接取值.

7. PHP 判斷一個對象是哪個類的實例化的函數

echoget_class($obj);

8. php實例化問題149行 new $type、實例化不都是類的實例化么、

$test = new User();

9. php類的實例化問題

只要是實例化一個類,不論是不是在同一個文件夾下,只要不是在當前腳本聲明的,都是需要include的. 加入一個對象實例化一個不存在的類,這時候機會調用類的一個魔術方法__autoload方法,參數是你要實例化的這個類名,如果你將這個autoload聲明成了一個方法,方法裡面定義如何查找你需要的這個類,在哪裡查找,並且找到了就自動引入,那就不需要你時時刻刻都來引入類文件了

10. 怎樣判斷一個對象是否已被實例化

System.out.print(對象);列印對象,看結果是null還是類路徑,如果是null表示沒有,否則表示已經初始化;或者直接判斷它是不是等於null,等於null表示未實例化,否則已實例化
if(TestObject == null ){
System.out.print(對象TestObject未實例化);
}

閱讀全文

與php判斷類是否實例化相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163