Ⅰ php 函數內引用全局變數
<?php
$var1 = "Example variable";
$var2 = " ";
function global_references($use_globals)
{
global $var1, $var2;
if (!$use_globals) {
$var2 =& $var1; // visible only inside the function///???
} else {
$GLOBALS["var2"] =& $var1; // visible also in global context
}
}
global_references(false);//變數$var2賦值為對$var1的引用,但是它的值在函數外不可見,他是一個局部變數
echo "var2 is set to '$var2'\n<br>";
global_references(true);//將$var2注冊到全局變數數組中賦值為對變數$var1的引用,他是全局可見的
echo "var2 is set to '$var2'\n";
?>
Ⅱ php類中如何調用全局變數 一個文件中定義$_SGLOBAL['supe_uid'] = 0;
建議用SESSION方式實現,代碼:
a.php:
<?php
session_start();
$_SESSION['supe_uid']=$uid='test';
echo$_SESSION['supe_uid'];
?>
b.php:
<?php
session_start();
echo$_SESSION['supe_uid']
?>
Ⅲ Php全局變數怎麼使用 他的作用域是什麼
PHP的全局變數其實指的頂級作用域變數。
在每一個次級作用域中,上一級作用域的變數都會被隱藏起來。
但是在全局變數之上還有一種超全局變數,例如$_GET,$_POST,$_SERVER等等,一共有8大類,這8類又可以通過$GLOBALS來統一訪問。
你如果可以訪問下面這個網址的話,會比較容易理解一些。
http://www.php.net/manual/zh/language.variables.superglobals.php
「超全局變數是在全部作用域中始終可用的內置變數」。
換句話說,不管你在什麼作用域中,你都是可以訪問到任意超全局變數的。
Ⅳ php里什麼是全局變數和局部變數
在程式內定義的變數稱為局部變數,只在程式內部使用,隨程式結束而消失。定義在程式外部的變數就叫全局變數,可以被程式呼叫,但不會隨程式結束而消失。
Ⅳ php怎樣定義全局變數
<?php
$arr=array();
function a(){
global $arr;
print_r($arr);
}
a();
/*更多問題可以去php中文網問答社區提問http://www.php.cn/wenda.html,大神在線幫你解決,希望對你有幫助*/
?>
僅供參考,希望能幫到你
Ⅵ 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 全局變數,有句話我沒懂。
PHP的函數都是全局性的,一旦被聲明後,在文件任何地方都可以調用,內嵌在函數內和條件語句內的函數在文件載入之後不會被立即聲明,而是運行到該語句後在會被聲明。
在函數外聲明的變數稱為全局變數,全局變數在函數內不能被訪問,這就是「能見度」為否
如果要在函數內使用全局變數需要使用變通的方法:
1.第一種,使用$GLOBALS 數組,這個數組保存了所有全局變數,如果使用全局變數$a可以在函數內使用 $GLOBALS['a']
2.在函數內用關鍵字global聲明一個變數是全局變數,如果要使用全局變數$a,可以在函數內寫一句 global $a; 注意,這句要單獨成行,使用這一句之後,如果函數內另外定義了變數$a,則忽略函數內定義的$a ,如果在多個函數內使用全局變數$a,則每個函數都要寫 global $a;
Ⅷ PHP中使用全局變數~呢
在方法體中使用全局變數可以有兩種方式:
先在方法(函數)外面定義變數,在方法體中全局化這個變數 :global $abc
也可以在方法(函數)體中用$_GLOBALS['abc']
之後就可以在方法中調用這個變數了
Ⅸ thinkphp 怎麼定義全局變數 所有頁面都可以調用 ,注意是變數不是常量
方法1:新建一個CommonAction.class.php控制器,在CommonAction.class.php這個控制器中,新建一個_initialize方法,在這個方法中定義一個變數,在所有的頁面中都可以調用這個變數。還有一個方法是:把這個變數存儲在session中,這樣在所有的頁面中也可以調用這個變數。