PHP中變數為什麼要用

2021-06-23 03:58:00 字數 1238 閱讀 4406

c/vb/php中

可以利用值(數和字串)的位置

1/函式引數

2/運算子運算元(包括vb中的賦值語句)

3/陣列下標(包括phpkey標)

能產生值(數和字串)的位置

1/簡單變數

2/陣列元素

3/結構成員

4/函式

5/常量(一般字面常量、c和php中define常量、vb中const常變數)

6/運算結果

在這三種語言中,能產生值的位置都能夠用於可利用值的位置,這一點大家都是相同的,沒有什麼區別

另:函式產生值為陣列(結構,有待測試)的

c中返回的為陣列指標,函式返回值能夠直接用於偏移運算,以定位陣列元素

vb和js中也可以直接後加元素下標,進行元素定位

但是唯獨在php不行

c和vb中需要字面名稱的位置

1/變數名(包括簡單變數名/陣列變數名/結構變數名)

2/結構成員名

3/函式名

4/類名

5/常量名

以上這些名稱,說到底都是字元,如果能利用'能產生值的位置'中的那些元素中所產生的字元來進行二次解析,將是很方便的,但是這很容易造成歧義,為了克服,於是在php中引入了$符號,使那些能產生字元的元素用於那些需要字元的元素,進行二次解析,但是php做了一些限制,僅僅將簡單變數產生的字元,用於變數名/函式名/結構成員名/類名,不包括常量名,其他能返回字元的元素,典型的如函式,也不能用於作為變數名/函式名/結構成員名/類名的名稱,進行二次解析

<2015-04-09 測試 php中類公共成員字元 陣列元素字元 類公共成員是陣列的陣列元素字元 都可以作為函式名進行二次解析》

特別的:

1/二次解析只能兩層,$$$a,只能解析2個$,最後乙個$將以字元形式輸出

2014-10-19測試,可以正常輸出

<?php

$_1 = '_2';

$_2 = '_3';

$_3 = '_4';

$_4 = '_5';  

echo "$$$$_1"; 

?>

2/php中特有的單雙引號,單引號直接輸出,雙引號解析轉義,如\n等及$單層變數(包括單層簡單變數和陣列,其中陣列的key不能用引號,但可以直接用單層$變數表示)

3/類在set/get傳遞屬性name名的時候,是將其轉變成字串做引數傳遞,然後在進行二次解析,這裡的->符號就相當於變數的$符號進行理解

為什麼要用「變數」

說到學習程式設計啊,首先要學習的,肯定就是變數了,因為變數是一切 的基礎。一 變數是什麼?變數變數,說白了就是會變的量,有些同學不理解什麼是變數,為什麼要宣告變數,宣告變數有什麼用。下面我就打一些比方來說明什麼是變數。首先,要理解,程式設計是什麼。程式設計,就是我們告訴計算機,你要幫我做什麼。在這個...

php中為什麼要用static方法

static全域性變數和普通全域性變數,static區域性變數和普通區域性變數,static函式與普通函式的區別?下面本文將一一為你解答。1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存...

Python中為什麼要用self?

參考文章 self的含義與基本用法 python中為什麼要使用self 注意到文章中的一句話,避免非限定呼叫造成的全域性變數。舉個例子來談談我對這句話的理解 class father def init self,name self.name name def selfdemo self print ...