Thủ thuật PHP dành cho người mới là bài viết tổng hợp các đoạn code linh hoạt và chuyên nghiệp của những đàn anh dành cho dev code PHP mới vào nghề.
Không nên sử dụng require, require_once, include và include_once
Cách mà các dev PHP thường sử dụng:
require_once('include/Configure.php');
require_once('include/Database.php');
Thay vào đó là tạo một function include file linh hoạt hơn
function include_class($class_name)
{
//path của file class
$path = ROOT . '/include/' . $class_name . '.php');
if(file_exists($path)) {
require_once( $path );
}
}
include_class('Configure');
include_class('Database');
Tạo một Class cho những tính năng mang tính lặp đi lặp lại
Ví dụ mình tạo một class Rectangle để có nhiệm vụ lấy chu vi và lấy diện tích từ 2 tham số truyền vào
class Rectangle
{
// Khai báo properties
public $length = 0;
public $width = 0;
// Method lấy chu vi
public function getPerimeter(){
return (2 * ($this->length + $this->width));
}
// Method lấy diện tích
public function getArea(){
return ($this->length * $this->width);
}
}
Kết hợp dùng function require ở trên để include class này vào
include_class('Rectangle'); // Include class
$obj_rec = new Rectangle; // Tạo object từ Rectangle
$obj->length = 30;
$obj->width = 20;
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
// gọi method từ object
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
Sử dụng Switch thay vì If
Hãy sử dụng Switch thay vì các điều kiện If lặp đi lặp lại. Ưu điểm của việc này là script thực thi nhanh hơn do đó hiệu suất được tăng lên và còn linh hoạt hơn so với if-else.
if($color == 'yellow')
echo "The color is yellow";
if($color == 'black')
echo "The color is black";
if($color == 'red')
echo "The color is red";
if($color == 'pink')
echo "Color is pink";
thay đoạn code trên bằng:
switch ($color ) {
case 'yellow' :
echo "The color is yellow" ;
break ;
case 'black' :
echo "The color is black" ;
break ;
case 'red' :
echo "The color is red" ;
break ;
case 'pink' :
echo "Color is pink" ;
break ;
}
Luôn kiểm tra sự tồn tại của biến
Luôn kiểm tra biết đã khai báo chưa hay notNULL trước khi sử dụng biến đó.
if(isset($_POST["name"])) {
echo "Welcome ". $_POST['name'];
}
isset() function dùng để kiểm tra biết đã khai báo chưa, có NULL hay không. Nếu biến chưa được khai báo hoặc biến mang giá trị rỗng hàm sẽ trả về TRUE, ngược lại hàm trả về FALSE.
Hãy sử dụng cú phát ngắn thay cho cú pháp đầy đủ
if(!empty ( $_POST['phone'] ) {
$phone = $_POST['phone'];
}else{
$phone = 9111111111;
}
Thay vào đoạn code trên bằng đoạn code ngắn hơn
$phone = ( !empty ( $_POST['phone'] ) ? $_POST['phone'] : 9111111111 ) ;
Những thói quen này sẽ giúp bạn tiết kiệm thời gian hơn và chuyên nghiệp hơn.
Kiểm tra kiểm tra nhiều chuỗi
Ví dụ chúng ta cần xem thử $item có chứa một trong các ký tự 'candy', 'toy' không:
$item = "candy";
if ($item == 'candy' || $item == 'toy') {
return true;
}else{
return false;
}
Cách trên không sai chỉ là sẽ rất vất vã khi mà kiểm tra không chỉ 2 từ mà 1 đống từ. Đây là cách nhanh hơn:
return in_array($item, ["candy", "toy"]);
Kiểm tra kiểu dữ liệu
Khi tham gia một dự án lớn với nhiều lập trình viên khác, nên sử dụng kiểm tra kiểu dữ liệu trước khi thực hiện function. Khi bỏ qua bước này, có thể bạn sẽ phải gặp những cái bug tốn mất vài tiếng để tìm ra lỗi chỉ vì đơn giản là kiểu dữ liệu không đúng.
function getItem($item) {
// $itemlà một mảng
return allItems()[$item[0]];
}
Tuy nhiên nếu bạn truyền vào một string thì function vẫn có thể chạy nhưng lại không đúng ý bạn. Ví dụng bạn truyền $item là một string 'chair', thì return sẽ là allItems()["c"]
Vậy nên bạn nên kiểm tra $item là chuỗi hay array, nếu không phải array thì nên dừng lại.
function getItem($item) {
if (!is_array($item)) throwErr("item should be array");
return allItems()[$item[0]];
}