php的作用域
『壹』 php中session作用域的問題,如下圖,框架是library中的內容,現在給ad配一個域名,給admin配一個域名
在php中,伺服器端和客戶端之間的session是通過一個session_id來聯系($_COOKIE['PHPSESSID'],這個PHPSESSID可以通過session_name()修改),並且session數據是以普通文件的形式保存在一個特定的文件夾里。
所以說,只要是同一台伺服器,session數據目錄相同,且兩個域名使用了同一個session_id,那麼兩個域名就會共享session。
如果使用不同session的話,建議在兩個域名進入的時候先使用session_destroy()清除原有的session_id,然後再重新session_start()生成新的session_id,這樣就不會出現兩個站點共享session的情況了。
『貳』 淺談php中include文件變數作用域
本文給大家總結了php中include文件時的幾種情況下的作用域,十分的簡單實用,希望對大家熟悉include的使用能夠有所幫助。
在php中我們有時候需要include一個文件。比如我前段時間在寫一個框架的時候,打算用原生的php作為模板,然後寫一個display方法引入模板文件就可以,但是這只是我的意淫而已。
寫完後發現在模板中所有的變數都提示未定義。通過各種研究和查找資料,總結了include文件時的幾種情況下的作用域。
第一種情況:A文件include
B文件,在B文件中可以調用A中的變數。
A文件代碼:
1
2
3
4
?php
$aaa
=
'123';
include
B.php;
B文件代碼:
1
2
3
?php
echo
$aaa;
可以正常輸出內容。
第二種情況:A文件include
B文件,然後在A文件中可以調用B文件的變數。
A文件代碼:
1
2
3
4
5
?php
include
B.php;
echo
$fff;
B文件代碼:
1
2
3
?php
$fff
=
'i
am
f';
這個時候是可以正常輸出內容的。
第三種情況:A文件的某個類的某個方法中調用B文件,然後在B文件中可以調用該方法中的變數。
A文件代碼:
1
2
3
4
5
6
7
8
9
10
11
?php
class
test{
public
function
show(){
$bbb
=
'abc';
include
B.php;
}
}
$t
=
new
test;
$t-show();
B文件的代碼:
1
2
3
?php
echo
$bbb;
這個時候是可以正常輸出內容的。
第四種情況:A文件通過定義的一個函數引入B文件,在B文件中無法使用A中的變數,但是可以使用A文件中調用函數(display)中的變數。
A文件代碼:
1
2
3
4
5
6
7
8
9
?php
$aaa
=
'123';
function
display($file){
$bbb=
'asdasdas';
include
$file;
}
display(B.php);
B文件代碼:
1
2
3
?php
echo
$aaa;
echo
$bbb;
運行後$aaa提示未定義,$bbb可以正常輸出。
所以我開始准本用一個display方法來引入模板是不可行的。根據方面的三種情況,最後我選擇了寫一個類來導入模板文件。目前ThinkPHP和Smarty也都是用類來引入模板文件的。文中不足之處歡迎指正。
以上所述就是本文的全部內容了,希望大家能夠喜歡。
『叄』 PHP 變數作用域是怎麼樣的
關於php的變數作用域是有兩種的!
一種是在函數外的叫全局變數,一種在函數內的變數叫做局部變數。兩者是互不影響檔中的!
舉個例子:
$a=1;
functionA(){
$a=2;
$b=1;
$sum=$a+$b;
echo$sum;
}
$a++;
A();
echo"和".$a;
得到的結果會是:3和2
意思就是,全局變數$a = 1; 局部變數$a = 2;函數內 對$a的所有操作都是$a=2進行計算。而函數下面有$a是不會受函數內的$a=2影響。
而如果要讓函數內的$a受到影響,很容易!那就是用global關鍵字定義函數內的$a;空納那麼$a就是函數外的1了。
$a=1;
functionA(){
global$a;//全局變數,等於函數行虧山外的$a=1
$b=1;
$sum=$a+$b;
echo$sum;
}
$a++;
A();
echo"和".$a;
得到的結果會是:2和2
具體的就是這樣一種情況!
希望我的回答對樓主有幫助,不懂可以繼續追問。
『肆』 PHP中的自定函數和類是全局作用域還是局部做用域呢
PHP 中的所有函數和類都具有全局作用域,可以定義在一個函數之內而在之外調用,反之亦然。
參見php官方手冊中:用戶自定義函數章節。
『伍』 Php全局變數怎麼使用 他的作用域是什麼
PHP全局變數在使用時,需要使用global 進行聲明,如:
global$test;
PHP Global變數的作用是定義全局變數,但是這個全局變數不是應用於整個網站,而是應用於當前頁面,包括include或require的所有文件。