<?php /** __file__ , getcwd(), $_server["request_uri"], $_server["script_name"], $_server["php_self"], $_server["script_filename"], 來觀察一下這些變數或函式 ...
<?php
/**__file__ ,
getcwd(),
$_server["request_uri"],
$_server["script_name"],
$_server["php_self"],
$_server["script_filename"],
來觀察一下這些變數或函式的異同.
假設有乙個請求位址為: http://localhost:8080/test.php/age=20
而test.php 的完整路徑是: d:/server/www/example/test.php
1) getcwd()
將得到瀏覽器請求的頁面檔案所在的目錄. 即test.php 檔案所在的目錄: d:/server/www/example/ ,
如果在test.php 執行了 require 或 include 語句, 比如 inculde(」test_dir/test2.php」),
那麼在 test2.php 裡 getcwd()函式 返回的也將是 test.php 所在的目錄.
2) __file__
乙個魔術變數, 用它將得到 __file__ 變數所在檔案的完整路徑,
比如: test.php 裡 __file__ 將得到 d:/server/www/example/test.php ,
test_dir/test2.php 裡的 __file__ 將得到 d:/server/www/example/test_dir/test2.php
3) $_server["script_filename"]
將得到瀏覽器請求的頁面檔案的完整路徑.
test.php 和 test_dir/test2.php 裡用 $_server["script_name"] 都將得到 d:/server/www/example/test.php.
4) $_server["script_name"]
將得到瀏覽器請求的頁面檔案的檔名,注意: 與 $_server["script_name"] 不同, 此變數只得到檔名而不包含路徑,
在test.php 與 test_dir/test2.php 用$_server["script_name"] 得到的都將是 test.php.
當然, 在test.php 與 test_dir/test2.php 執行 basename($_server["script_filename"]) 與 $_server["script_name"] 相同.
執行 在test.php 與 test_dir/test2.php 執行 realpath(」test.php」) 得到的結果與 $_server["script_filename"] 相同.
5) $_server["php_self"]
將得到瀏覽器請求頁面的檔名, 並剝掉問號 ? 後的內容, 注意:不包含路徑,
比如在客戶端裡請求 http://localhost:8080/test.php?age=20&name=tom,
那麼test.php 和 test_dir/test2.php 的 $_server["php_self"] 都將得到 「test.php」。「age=20&name=tom」被剝掉。
而如果客戶端裡請求 http://localhost:8080/test.php/age=20&name=tom,
那麼test.php 和 test_dir/test2.php 的 $_server["php_self"] 都將得到 「test.php/age=20&name=tom」。
6) $_server["request_uri"]
將得到瀏覽器請求頁面的檔名, 以及檔名之後的所有內容(注意: 井號 # 之後的內容將被略去),
比如在客戶端裡請求 http://localhost:8080/test.php?age=20&name=tom,
那麼test.php 和 test_dir/test2.php 的 $_server["reuest_uri"] 都將得到 「test.php」。「age=20&name=tom」被剝掉。
而如果客戶端裡請求 http://localhost:8080/test.php/age=20&name=tom,
那麼test.php 和 test_dir/test2.php 的 $_server["request_uri"] 都將得到 「test.php/age=20&name=tom」。
*/// test.php:
echo 「test1.php variables
」;echo 「getcwd: 「, getcwd(), 「
」;echo 「__file__: 「, __file__, 「
」;echo 「request_uri: 「, $_server["request_uri"], 「
」;echo 「script_name: 「, $_server["script_name"], 「
」;echo 「php_self: 「, $_server["php_self"], 「
」;echo 「script_filename 「, $_server["script_filename"] , 「
」;// 把 test2.php 包含進來, 在 test2.php 裡輸出上面的變數,看有什麼不同:
include_once(」test2/test2.php」);
?>
PHP中對變數的一些說明
如果程式比較大,引用同乙個物件的變數比較多,並且希望用完該物件後手工清除它,個人建議用 方式,然後用 var null的方式清除.php5中對於大陣列的傳遞,建議用 方式,畢竟節省記憶體空間使用。php中對於位址的指向功能不是由使用者自己來實現的,是由zend核心實現的 php中引用採用的是 寫時拷...
php一些函式
1.show source 函式是php中的內建函式,用於返回突出顯示php語法的檔案。通過使用html標記突出顯示語法 2.strstr 函式 定義和用法 strstr 函式搜尋字串在另一字串中是否存在,如果是,返回該字串及剩餘部分,否則返回 false。注釋 該函式是二進位制安全的。注釋 該函式...
PHP 變數型別中的一些問題
1 整形 echo 027 23?為什麼因為027是八進位制數 2 0.3 0.2 0.1嗎?不等於 為什麼?因為 浮點數的精度有限。儘管取決於系統,php 通常使用 ieee 754 雙精度格式,則由於取整而導致的最大相對誤差為 1.11e 16。非基本數 算可能會給出更大誤差,並且要考慮到進行復...