11個GOOGLE提供初學者必學的PHP小技巧 受用無窮
1.使用echo代替print <?php <script type="text/javascript"> <script type="text/javascript"> if($_POST['submit'] == 'Save') if( $_SERVER['REQUEST_METHOD'] == 'POST' and isset($_POST['submit']) ) foreach($arr as $c => $v) $arr = array_map('trim' , $arr); $amount = intval( $_GET['amount'] ); <?php define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME)); function print_header() function print_header()
echo $str;
2.取代字串使用preg_replace性能開銷很大,除非需要正則表達式,否則使用str_replace。
3.不要使用short tags,養成寫成 <?php 比 <? 好很多。
4.在header重定向之後要記得多寫一個 exit;
5.千萬不要把函數調用放到for 循環控制行中。
6.善用json_encode
很多時候需要拋接資料給前台JS使用,
這個時候使用PHP內建函數是最簡潔、正確不過了
$arr = array('a' => 1, 'web' => 'google.com', 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
//輸出 {"a":1,"web": "google.com","c":3,"d":4,"e":5}
// json_encode 處理UTF-8 字元
$array = array('name'=>'WEição','coolweb'=>'Wão WEGOLDS');
$array = array_map('htmlentities',$array);
//encode
echo html_entity_decode(json_encode($array));
//Output: {"name":"WEição","coolweb":"Wão WEGOLDS"}
?>
HTML前端該如何接收PHP傳來的JSON值呢?
方式1:
// pass PHP variable declared above to JavaScript variable
var ar = <?php echo json_encode($json) ?>;
</script>
方式2:
$.ajax({
url: "json.php",
type: "GET",
dataType: "json",
success: function(json) {
}
});
</script>
7.表單提交後的提交按鈕檢查方法
一般都會使用以下這樣來觸發,但注意submit的名稱會因為不同語言而不是"Save"。
{
//Save the things
}
所以改寫如下:
{
//Save the things
}
8.使用array_map快速處理array陣列
例如,需要把字串移除前方空白trim,一般新手會使用:
{
$arr[$c] = trim($v);
}
不過可以使用array_map變得更整潔:
9.強制類型檢查
$rate = (int) $_GET['rate'];
10.不要使用相對路徑,要定義一個根路徑
很常見這樣的寫法:
require('../../lib/class1.php');
require('../../lib/class2.php');
require('../../lib/class3.php');
這種方法有很多缺點:
首先搜索php包括路徑中的指定目錄,然後查看當前目錄。因此,會檢查許多目錄。
當一個腳本被包含在另一個腳本的不同目錄中時,它的基本目錄變為包含腳本的目錄。
另一個問題是,當一個腳本從cron運行時,它可能不會將它的父目錄作為工作目錄。
其實你可以這樣:
先定義一個根路徑位置,之後都一律使用此路徑。
define('ROOT' , '/var/www/project/');
require_once(ROOT . 'lib/class1.php');
require_once(ROOT . 'lib/class2.php');
require_once(ROOT . 'lib/class3.php');
但是,如果專案更改目錄,不就要重置根目錄名稱嗎?
太麻煩了,請使用魔術常量__FILE__可以讓它變得更加靈活。
require_once(ROOT . 'lib/class1.php');
這樣即使將專案轉移到一個不同的目錄,這些代碼不需要更改就可以運行。
11.加速ECHO輸出
使用緩衝,在一個地方收集所有輸出內容,然後一次性輸出給瀏覽器
這就是所謂的輸出緩衝。比方說,從不同的函數得到像這樣的內容:
{
echo "<div>webgolds.google.com 頂端</div>";
}
function print_footer()
{
echo "<div>尾巴</div>";
}
print_header();
for($i = 0 ; $i < 100; $i++)
{
echo "I is : $i <br />';
}
print_footer();
其實應該先在一個地方收集所有輸出。先將它儲存在函數中的變量內部。或是使用ob_start和ob_end_clean。
PHP 面試考古題收集
{
$o = "<div>webgolds.com 頂端</div>";
return $o;
}
function print_footer()
{
$o = "<div>尾巴</div>";
return $o;
}
echo print_header();
for($i = 0 ; $i < 100; $i++)
{
echo "I is : $i <br />';
}
echo print_footer();
Posted :2016-04-16 / Views: 43
本頁網址:
相關連結: