本文目錄一覽:
- 1、php的函數傳參要怎麼表達;如何讓函數內修改全局變量?
- 2、什麼是PHP中可變變量以及如何應用
- 3、PHP中,將變量值作為變量名
- 4、PHP:函數內部使用的變量聲明為全局變量時,其名稱要與全局變量名稱一致
- 5、php變量定義方法
php的函數傳參要怎麼表達;如何讓函數內修改全局變量?
使用引用啊
給你寫個例子啊,稍等
?php
$A = 10; //初始化一個變量, 並賦值10
echo $A; //輸出這個值
echo ‘br/’; //這裡輸出一個換行符是等下演示運行的時候為了區分
function B( $B ) { //自定義函數, 參數是引用形式
$B += 33; //給參數的值再加上33;
}
B( $A ); //調用這個自定義函數, 並把變量A作為參數
echo $A; //再次輸出變量A的值
php面向過程編程方式中的自定義函數, 是一個獨立的整體, 參數和返回值可以理解為是函數本身和函數之外的一個接口而已!
換句話說,常規下, 自定義函數中的變量與外部變量並沒有關係, 哪怕變量名一模一樣。各自獨立!
而添加引用就不同了,引用可以理解為,比如說,就像2個手機號碼綁定消費一樣, 任何一個手機號消費, 就等於2個號都在消費,,當然,這是一個比喻啊!
什麼是PHP中可變變量以及如何應用
有時候可變的變量名會給編程帶來很大的方便。也就是說變量名可以被動態的命名和使用。通常變量通過下面這樣的語句來命名?php可變變量名指的是使用一個變量的值作為這個變量的名稱。在上面的例子中,通過使用兩個$符號,你可以把hello設置成一個變量的名稱,就像下面那樣。?php通過上面的兩個語句,有兩個變量被定義:變量$a,裝的內容是hello 以及變量$hello,裝的內容是 world。 於是,下面的語言:?php跟下面的語句的輸出完全一致:?php它們都輸出:hello world。為了使用數組的可變變量名,你需要解決一個歧義問題。就是,如果你寫$$a[1],解析器需要明白究竟你的意思是要把$a[1]當成一個變量,還是要把$$a當成變量、[1]指的是這個變量的索引。解決這個歧義問題的語法是:第一種情況使用${$a[1]},第二種情況使用${$a}[1]。類屬性也可以通過可變屬性名來訪問。可變屬性名從產生調用所在的變量的訪問範圍內獲取。例如,如果你的表達式是這樣的:$foo-$bar,那麼運行時將會在本地變量範圍內尋找變量$bar,它的值將會做為$foo對象的一個屬性名。如果$bar是個數組也可以使用。例1 可變變量名?phpclass foo {var $bar = ‘I am bar.’;}$foo = new foo();$bar = ‘bar’;$baz = array(‘foo’, ‘bar’, ‘baz’, ‘quux’);上面的例子將會輸出下面的結果:I am bar.請注意,可變變量名不能用於PHP函數和類里的超級全局數組變量上。
PHP中,將變量值作為變量名
$GLOBALS[$s][] = $row;
或
${$s}[] = $row;
樓主,麻煩你去下一個PHP手冊看下吧。
可變變量
有時候使用可變變量名是很方便的。就是說,一個變量的變量名可以動態的設置和使用。一個普通的變量通過聲明來設置,例如:
?php
$a = ‘hello’;
?
一個可變變量獲取了一個普通變量的值作為這個可變變量的變量名。在上面的例子中 hello 使用了兩個美元符號($)以後,就可以作為一個可變變量的變量了。例如:
?php
$$a = ‘world’;
?
這時,兩個變量都被定義了:$a 的內容是「hello」並且 $hello 的內容是「world」。因此,可以表述為:
?php
echo “$a ${$a}”;
?
以下寫法更準確並且會輸出同樣的結果:
?php
echo “$a $hello”;
?
它們都會輸出:hello world。
要將可變變量用於數組,必須解決一個模稜兩可的問題。這就是當寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為一個變量呢,還是想要 $$a 作為一個變量並取出該變量中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
PHP:函數內部使用的變量聲明為全局變量時,其名稱要與全局變量名稱一致
下面的信息,是來自互聯網,我就直接粘貼在這裡了
PHP的變量分不出 是聲明還是使用,($name
不管是聲明還是使用都是一種形式,所以函數中要使用外部的變量就要使用global來確定函數中是使用外部的全局變量,而不是聲明。
php 常量默認就是全局的,常量只能定義一次,而且不可以改變。
而javascript 聲明變量使用關鍵字 var name= ‘hyr’;
如果在函數中不聲明 就直接用全局的)
————————————————————————————————-
不使用global關鍵詞 ,函數內 $a 是局部變量 ,全局的$a = 10
;不會改變
?php
$a = 10;
function test()
{
$a =
20;
echo
$a;
}
test();// 局部變量 20
echo
“br”;
echo $a;//全局變量 10
?
函數內 使用 global關鍵字 聲明$a 就是外部全局的$a 變量 ,
函數內global關鍵字聲明的同時不能同時賦值
?php
$a = 10;
function test()
{
global
$a;//聲明$a是外部的全局變量$a的同時不能賦值,賦值可以另外起一行賦值,如下行
$a
= 20;//聲明函數里使用的 $a 變量是來自 函數外部 聲明的全局變量$a
echo
$a;
}
test();// 結果為
20
echo
“br”;
echo $a;// 結果也是 20
?
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.
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/259671.html