當前位置:首頁 » 編程語言 » php變數中的變數

php變數中的變數

發布時間: 2024-06-14 11:22:09

php全局變數和php預定義變數

僅供參考,更多,可以查看http://www.phpsu.com/

預定義變數

PHP 提供了大量的預定義變數。由於許多變數依賴於運行的伺服器的版本和設置,及其它因素,所以並沒有詳細的說明文檔。一些預定義變數在 PHP 以命令行形式運行時並不生效。有關這些變數的詳細列表,請參閱預定義變數一章。
Warning

PHP 4.2.0 以及後續版本中,PHP 指令 register_globals 的默認值為 off。這是 PHP 的一個主要變化。讓 register_globals 的值為 off 將影響到預定義變數集在全局范圍內的有效性。例如,為了得到 DOCUMENT_ROOT 的值,將必須使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 來代替 $id 從 URL http://www.example.com/test.php?id=3 中獲取 id 值,亦或使用 $_ENV['HOME'] 來代替 $HOME 獲取環境變數 HOME 的值。

更多相關信息,請閱讀 register_globals 的配置項條目,安全一章中的使用 Register Globals,以及 PHP » 4.1.0 和 » 4.2.0 的發行通告。

如果有可用的 PHP 預定義變數那最好用,如超全局變數。

從 PHP 4.1.0 開始,PHP 提供了一套附加的預定數組,這些數組變數包含了來自 web 伺服器(如果可用),運行環境,和用戶輸入的數據。這些數組非常特別,它們在全局范圍內自動生效,例如,在任何范圍內自動生效。因此通常被稱為自動全局變數(autoglobals)或者超全局變數(superglobals)。(PHP 中沒有用戶自定義超全局變數的機制。)超全局變數羅列於下文中;但是為了得到它們的內容和關於 PHP 預定義變數的進一步的討論以及它們的本質,請參閱預定義變數。而且,你也將注意到舊的預定義數組($HTTP_*_VARS)仍舊存在。自 PHP 5.0.0 起,長格式的 PHP 預定義變數可以通過設置 register_long_arrays 來屏蔽。

Note: 可變變數 超級全局變數不能被用作可變變數。

Note: 盡管超全局變數和 HTTP_*_VARS 同時存在。但是他們並不是同一個變數,所以改變一個的值並不會對另一個產生影響。

如果某些 variables_order 中的變數沒有設定,它們的對應的 PHP 預定義數組也是空的。

PHP 超全局變數
$GLOBALS
包含一個引用指向每個當前腳本的全局范圍內有效的變數。該數組的鍵名為全局變數的名稱。從 PHP 3 開始存在 $GLOBALS 數組。
$_SERVER
變數由 web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。
$_GET
經由 URL 請求提交至腳本的變數。類似於舊數組 $HTTP_GET_VARS 數組(依然有效,但反對使用)。
$_POST
經由 HTTP POST 方法提交至腳本的變數。類似於舊數組 $HTTP_POST_VARS 數組(依然有效,但反對使用)。
$_COOKIE
經由 HTTP Cookies 方法提交至腳本的變數。類似於舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用)。
$_FILES
經由 HTTP POST 文件上傳而提交至腳本的變數。類似於舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用)。詳細信息請參閱 POST 方法上傳。
$_ENV
執行環境提交至腳本的變數。類似於舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用)。
$_REQUEST
經由 GET,POST 和 COOKIE 機制提交至腳本的變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。此數組在 PHP 4.1.0 之前沒有直接對應的版本。參見 import_request_variables()。
Caution

自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在於 $_REQUEST 中。

Note: 當運行於命令行模式時,此數組將不會包含 argv 和 argc 條目;它們已經存在於數組 $_SERVER 中。

$_SESSION
當前注冊給腳本會話的變數。類似於舊數組 $HTTP_SESSION_VARS 數組(依然有效,但反對使用)。

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

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

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

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

㈢ html中使用php 的變數

html標簽使用php中的變數方法如下:

一、如果html標簽中使用php變數,提示:Undefined index: uid in /var/www//list.php,list.php的具體代碼如下:

<?php
require'redis.php';
for($i=0;$i<=($redis->get("userid"));$i++){
$data[]=$redis->hgetall("user:".$i);
}
/*var_mp($data)的結果如下:
array(size=3)
0=>
array(size=0)
empty
1=>
array(size=4)
'uid'=>string'1'(length=1)
'username'=>string'jjj'(length=3)
'password'=>string'123'(length=3)
'age'=>string'20'(length=2)
2=>
array(size=4)
'uid'=>string'2'(length=1)
'username'=>string'lamp'(length=4)
'password'=>string'123'(length=3)
'age'=>string'20'(length=2)
*/
?>
<tableborder="1">
<caption>userlist</caption>
<tr>
<th>uid</th>
<th>username</th>
<th>age</th>
</tr>
<?phpforeach($dataas$v){?>
<tr>
<td><?phpecho$v['uid']?></td>
<td><?phpecho$v['username']?></td>
<td><?phpecho$v['age']?></td>
</tr>
<?php}?>
</table>

這時在echo 前 isset 下就可以了,代碼如下:

<?php$a=10;if(isset($a)){echo"這個變數存在";}else{echo"這個變數不存在";}?>

二、 php可以和html混編的 ,如下圖所示

㈣ php 定義變數

<?php//常量聲明!defined("PI") or define("PI", 3.14);//變數聲明$var = value; //value可以為值類型、引用類型、NULL、布爾類型、資源類型?>

㈤ 什麼是PHP變數

常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在腳本執行期間該值不能改變(除了所謂的魔術常量,它們其實不是常量)。常量默認為大小寫敏感。按照慣例常量標識符總是大寫的。(更多PHP知識相關推薦閱讀:什麼是PHP開發?PHP開發都用什麼工具?)

常量名和其它任何 PHP 標簽遵循同樣的命名規則。合法的常量名以字母或下劃線開始,後面跟著任何字母,數字或下劃線。用正則表達式是這樣表達的:[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*

注: 在這里,字母是 a-z,A-Z,以及從 127 到 255(0x7f-0xff)的 ASCII 字元。

和 superglobals 一樣,常量的范圍是全局的。不用管作用域就可以在腳本的任何地方訪問常量。有關作用得更多信息請閱讀手冊中的變數范圍。

語法

可以用 define() 函數來定義常量。一個常量一旦被定義,就不能再改變或者取消定義。

常量只能包含標量數據(boolean,integer,float 和 string)。

可以簡單的通過指定其名字來取得常量的值,不要在常量前面加上 $ 符號。如果常量名是動態的,也可以用函數 constant() 來讀取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。

注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。

如果使用了一個未定義的常量,PHP 假定你想要的是該常量本身的名字,如同你用字元串調用它一樣(CONSTANT 對應 "CONSTANT")。此時將發出一個 E_NOTICE 級的錯誤。參見手冊中為什麼 $foo[bar] 是錯誤的(除非你事先用 define() 將 bar 定義為一個常量)。如果你只想檢查是否定義了某常量,用 defined() 函數。

常量和變數不同:

常量前面沒有美元符號($);

常量只能用 define() 函數定義,而不能通過賦值語句;

常量可以不用理會變數范圍的規則而在任何地方定義和訪問;

常量一旦定義就不能被重新定義或者取消定義;

常量的值只能是標量。

以上來自上海優就業老師進行的總結,關於上海IT培訓PHP開發更多了解:網頁鏈接

㈥ 在php變數中引用變數,然後再進行賦值的方法

<?php
$t=array(1,2,3);
$s=55;
for($i=0;$i<count($t);$i++){
$n="new".$t[$i];
$$n=$s;
}
echo$new1,"<br/>";
echo$new2,"<br/>";
echo$new3,"<br/>";

以上你直接拷貝運行,檢驗一下是不是你要的效果。

補充

$t=array("typeid"=>array(10,21,38),'view'=>10);
for($i=0;$i<count($t["typeid"]);$i++){
$n="view".$t["typeid"][$i];
$$n=$t['view'];
}
echo$view10,"<br/>";
echo$view21,"<br/>";
echo$view38,"<br/>";

你要的效果需要連續用兩個$。

熱點內容
別克s60和君威配置哪個好 發布:2024-11-27 00:36:03 瀏覽:722
資料庫的文件名稱 發布:2024-11-27 00:30:04 瀏覽:336
javaweb與android交互 發布:2024-11-27 00:28:26 瀏覽:918
華為手機方舟編譯器emui91 發布:2024-11-27 00:10:46 瀏覽:948
高考時老媽解壓 發布:2024-11-27 00:09:34 瀏覽:358
全振動演算法 發布:2024-11-27 00:00:24 瀏覽:843
編譯程序用銳龍好還是酷睿好 發布:2024-11-26 23:47:09 瀏覽:897
蘋果緩存清理後會加速嗎 發布:2024-11-26 23:28:11 瀏覽:139
我的世界伺服器修改開放埠 發布:2024-11-26 23:22:51 瀏覽:52
qt5編譯器 發布:2024-11-26 23:22:04 瀏覽:517