問題如題,php裡不需要宣告變量,那系統知道什麼是變數並且給變數分配空間是根據$來分辨的嗎?它不需要聲明變數是因為php是弱型別語言嗎?
問題如題,php裡不需要宣告變量,那系統知道什麼是變數並且給變數分配空間是根據$來分辨的嗎?它不需要聲明變數是因為php是弱型別語言嗎?
php的底層C是由一個聯合體union來儲存變量,這個聯合體裡面有各種變量類型,php都以long類型來儲存整型,用hashtable哈西表來儲存數組,因為union可以儲存各種變量,且解釋器會自動判定變數類型,所以php不用宣告變數類型,弱型別
是的,因為php是弱型別語言,所以不需要宣告變數型別即可使用。 。
$只是個語法糖,表示後面跟的是一個變數。 。
如果按照記憶體空間分配來解釋的話
弱類型的變數在分配記憶體空間時,這個記憶體空間可以儲存任何類型的變數。使用的時候需要找所有的記憶體區域
而強型別則依照變數型別分配在指定的記憶體中,不可直接轉換型別。使用的時候直接去該類型的區域中找到該值。
所以一般在弱型別語言中改變變數型別可以直接修改。 。但是強型別語言不能直接修改,所以強型別語言的指標概念特別重要,我們不直接使用記憶體中的數據,我們建立一個引用型變數(指標),如果想修改的時候直接修改指標指向的記憶體位址就可以。
。