本文目錄一覽:
php變數定義方法
PHP語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以下是為大家分享的php變數定義方法,供大家參考借鑒,歡迎瀏覽!
1.定義常量define(“CONSTANT”, “Hello world.”);
常量只能包含標量數據(boolean,integer,float 和 string)。
調用常量時,只需要簡單的用名稱取得常量的值,而不能加「$」符號,如:echo CONSTANT;
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
2.普通變數$a = “hello”;
3.可變變數(使用兩個美元符號($))
$$a = “world”;
兩個變數都被定義了:
$a 的內容是「hello」並且 $hello 的內容是「world」。
因此,可以表述為:
echo “$a ${$a}”;或者 echo “$a $hello”;它們都會輸出:hello world
要將可變變數用於數組,必須解決一個模稜兩可的問題。這就是當寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為一個變數呢,還是想要 $$a 作為一個變數並取出該變數中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
4.靜態變數
在函數內部static $a = 0;
注意:聲明中用表達式的結果對其賦值會導致解析錯誤如static $a =3+3;(error)
靜態變數僅在局部函數域中存在(函數內部),函數執行完之後,變數值不會丟失,可用於遞歸調用
5.全局變數
在函數體內定義的global變數,函數體外可以使用,在函數體外定義的global變數不能在函數體內使用,在全局範圍內訪問變數可以用特殊的 PHP 自定義 $GLOBALS 數組:
如:$GLOBALS[“b”] = $GLOBALS[“a”] + $GLOBALS[“b”];
在一個函數域內用 global 語句導入的一個真正的全局變數實際上是建立了一個到全局變數的引用
global $obj;
註:對於變數的 static 和 global 定義是以 應用 的方式實現的
6.給變數賦值:傳地址賦值(簡單引用):
$bar = $foo; //加符號到將要賦值的變數前
改動新的變數將影響到原始變數,這種賦值操作更加快速
注意:只有命名變數才可以傳地址賦值
注意:如果
$bar = $a;
$bar = $foo;
改變$bar的值只能改變變數foo的值,而不改變a的值(引用改變了)
7.PHP 超全局變數$GLOBALS : 包含一個引用指向每個當前腳本的全局範圍內有效的變數。該數組的鍵標為全局變數的 名稱。從 PHP 3 開始存在 $GLOBALS 數組。
$_SERVER : 變數由 Web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。
$_GET : 經由 HTTP GET 方法提交至腳本的變數。
$_POST : 經由 HTTP POST 方法提交至腳本的變數。
$_COOKIE : 經由 HTTP Cookies 方法提交至腳本的變數。
$_FILES : 經由 HTTP POST 文件上傳而提交至腳本的變數。
文件上傳表單中要有 enctype=”multipart/form-data”
$_ENV : 執行環境提交至腳本的變數。
$_REQUEST :經由 GET,POST 和 COOKIE 機制提交至腳本的.變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。該數組沒有直接模擬 PHP 4.1.0 的早期版本。參見 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在於 $_REQUEST 中。
$_SESSION :當前註冊給腳本會話的變數。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重啟web伺服器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含標量數據(boolean,integer,float 和 string)。
可以簡單的通過指定其名字來取得常量的值,不要在常量前面加上 $ 符號。如果常量名是動態的,也可以用函數
constant() 來讀取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字元串調用它一樣(CONSTANT 對應 “CONSTANT”)。此時將發出一個 E_NOTICE 級的錯誤。參見手冊中為什麼 $w3sky[bar] 是錯誤的(除非事先用 define() 將 bar 定義為一個常量)。如果只想檢查是否定義了某常量,用 defined() 函數。
常量和變數不同:
* 常量前面沒有美元符號($);
* 常量只能用 define() 函數定義,而不能通過賦值語句;
* 常量可以不用理會變數範圍的規則而在任何地方定義和訪問;
* 常量一旦定義就不能被重新定義或者取消定義;
* 常量的值只能是標量。
定義常量
?PHP
define(“CONSTANT”, “Hello world.”);
echo CONSTANT; // outputs “Hello world.”
echo Constant; // outputs “Constant” and issues a notice.
?
php表單中有變數,如何在頁面載入時賦空值,表單提交後修改它的值?
如果這個表單同時可編輯和添加數據,那麼直接輸入這個變數就可以了,編輯回顯數據時才會有值顯示
input name=”xxx” value=”{$abc}” / 就如這個,載入頁面時由於$abc沒有值所以為空,有值才賦值
php 表單提交的變數在處理頁面只能用一次
1. 修改php.ini,查找 register_globals,將其值修改為 On。這樣就可以像原來一樣,例如,提交的表單中包括一個名為”username”的變數,那麼在php中就可以直接使用$username來訪問該變數。但是,除非你要使用一段舊的代碼而考慮到兼容性問題,否則不建議使用該方法。
2. 使用 $HTTP_GET_VARS、$HTTP_POST_VARS數組來訪問,例如寫成$HTTP_POST_VARS[“username”]的形式。不過該方法也不建議採用。
3. (推薦)使用 $_POST、$_GET等數組來訪問,例如寫成 $_POST[“username”]的形式。建議採用這種方法。
4. (推薦)使用 import_request_variables 函數。該函數將提交內容導入到變數中。例如 import_request_variables(“gp”, “rvar_”);第一個參數可以選擇g,p,c,分別表示導入 GET,POST,COOKIE 變數;第二個參數為導入後的變數前綴。執行上面的語句後即可使用 $rvar_username 來訪問提交的 username 變數。使用import_request_variables(“gp”, “”);可以兼容以前的PHP程序。
PHP 怎麼通過表單給變數賦值?
使用表單隱藏欄位在接收資料的位置使用自定義變數
使用$_POST[“變數”]來獲取表單變數的值
例子:
?
echo”form action=index.php method=POST name=regform
centertable border=1 cellpadding=0 cellspacing=0 bordercolor=#111111 width=400 id=AutoNumber1
tbody
tr
td width=300帳號:
input type=text name=reg_username maxlength=30
br
密碼:
input type=password name=reg_password maxlength=30
td width=100
input type=submit name=check value=登錄
input type=hidden name=asd value=’login_inset’br
/div/td
/tr
/tbody
/table
/center
/formbrbr
“;
if ($ASD == “login_inset”){
$username = $_POST[“username”];
$password = $_POST[“pasword”];
echo $username , $password ;
}
?
上面是index.php表單regform
reg_username是帳號
reg_password是密碼
REGISTER_S1是隱藏欄位值變數
這裡已經給變數REGISTER_S1賦值login_inset
這樣當提交表單~就會把3個變數reg_username,reg_password,REGISTER_S1
傳遞到index.php
然後if ($ASD == “login_inset”)
這裡是如果變數ASD是匹配login_inset的話
顯示$username , $password 的變數
如果自己寫的話可以使用var_dump($_POST);插件表單傳遞的資料有那些
if ($ASD == “login_inset”){
var_dump($_POST);
$username = $_POST[“username”];
$password = $_POST[“pasword”];
echo $username , $password ;
}
?
那麼我們看看下面的測試
帳號我們輸入123
密碼我們輸入456
然後點登錄遞交資料
根據var_dump($_POST);我們可以看到所有表單遞交的資料
array(4) { [“reg_username”]= string(3) “123” [“reg_password”]= string(3) “456” [“check”]= string(6) “登錄” [“ASD”]= string(11) “login_inset” }
隱藏欄位
[“ASD”]= string(11) “login_inset”
這裡說明了,隱藏欄位是可以是通過表單變數ASD賦值login_inset
關於這個有個簡單的理解
input type=hidden name=asd value=’login_inset’
隱藏欄位的name是等於變數
隱藏欄位的value是等於值
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200916.html