當前位置:首頁 » 編程語言 » php域

php域

發布時間: 2023-08-25 15:41:52

① 淺談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配置指令作用域

  1. 首先,PHP總共有4個配置指令作用域,分別是PHP_INI_USER,PHP_INI_PERDIR,PHP_INI_SYSTEM,PHP_INI_ALL。這些作用域限制了指令是否可以被修 改,在那裡可以被修改。php的每個配置項都會有一個作用域。下面是對四種作用域的說明。

  2. 作用域類型說明

PHP_INI_USER 可在用戶腳本(如 ini_set())或Windows注冊表(PHP 5.3 起)以及.user.ini中設定
PHP_INI_PERDIR 可在 php.ini,.htaccess 或 httpd.conf 中設定
PHP_INI_SYSTEM 可在 php.ini 或 httpd.conf 中設定
PHP_INI_ALL 可在任何地方設定

3.例如 output_buffering 指令是屬於 PHP_INI_PERDIR,因而就不能用 ini_set() 來設定。但是 display_errors 指令是屬於 PHP_INI_ALL 因而就可以在任何地方被設定,包括 ini_set()。

熱點內容
kld資料庫 發布:2025-03-15 15:46:27 瀏覽:261
互聯網資料庫設計 發布:2025-03-15 15:44:42 瀏覽:238
自適應濾波c語言 發布:2025-03-15 15:40:25 瀏覽:967
cs狙擊腳本 發布:2025-03-15 15:25:15 瀏覽:343
平板搭建ftp伺服器 發布:2025-03-15 15:24:32 瀏覽:831
中樞源碼指標 發布:2025-03-15 15:17:15 瀏覽:117
手柄壓縮 發布:2025-03-15 15:15:41 瀏覽:995
威綸通觸摸屏編程軟體 發布:2025-03-15 15:10:22 瀏覽:501
光遇安卓聖島季是什麼 發布:2025-03-15 15:10:06 瀏覽:714
socket緩存大小 發布:2025-03-15 15:10:05 瀏覽:967