× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

10 mẹo và thủ thuật PHP hàng đầu cho người mới bắt đầu

04/04/2023 01:27

Dưới đây sẽ là một số mẹo và thủ thuật để bạn làm việc tốt hơn với ngôn ngữ PHP. Cùng tìm hiểu ngay dưới đây để lập trình nhanh hơn với ngôn ngữ này

PHP là một trong những ngôn ngữ lập trình được yêu thích và sử dụng rộng rãi nhất mà các nhà phát triển yêu thích để xây dựng trang web của họ. Dưới đây sẽ là một số mẹo và thủ thuật để bạn làm việc tốt hơn với ngôn ngữ PHP.

Ví dụ: một số mẹo và kỹ thuật hữu ích có thể được sử dụng để cải thiện và tối ưu hóa mã PHP của bạn, bởi vì mọinhà phát triển PHPmuốn có mẹo để cải thiện phong cách mã hóa và kiến ​​thức.

Không sử dụng yêu cầu, yêu cầu_once, bao gồm hoặc bao gồm_once

Hầu như tất cả các nhà phát triển, sử dụng cách này để xử lý các tệp bên ngoài. Tập lệnh của bạn phải bao gồm nhiều tệp khác nhau ở trên cùng, như thư viện lớp, tệp cho tiện ích và hàm trợ giúp, v.v. như thế này:

require_once('inclides/Configure.php');
require_once('inclides/Database.php');
require_once('class/general_functions.php');Sao chép

Điều này là khá nguyên thủy. Vì vậy, bạn cần thực hiện việc này theo một cách khác và mã cần linh hoạt hơn. Viết các hàm trợ giúp để bao gồm mọi thứ dễ dàng hơn. Hãy lấy một ví dụ:

function include_class($class_name)
{
    //path to the class file
    $path = ROOT . '/include/' . $class_name . '.php');
    if(file_exists($path)) {
       require_once( $path );
    }
}
 
include_class('Configure');
include_class('Database');
Sao chép

Có rất nhiều điều có thể được thực hiện với điều này.

Tạo một lớp cho các nhiệm vụ lặp đi lặp lại

Lập trình hướng đối tượng là một phong cách lập trình mạnh mẽ cho mã hóa linh hoạt và ít hoạt động hơn cho một nhiệm vụ lớn cũng như cho nhiệm vụ lặp đi lặp lại. Lập trình hướng đối tượng được coi là tiên tiến và hiệu quả hơn so với kiểu lập trình thủ tục. Lập trình hướng đối tượng có một số ưu điểm so với kiểu lập trình thông thường hoặc thủ tục. Lớp và đối tượng là hai khía cạnh chính của lập trình hướng đối tượng.

class Rectangle
{
    // Declare  properties
    public $length = 0;
    public $width = 0;
    
    // Method to get the perimeter
    public function getPerimeter(){
        return (2 * ($this->length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}Sao chép

Khi một lớp đã được xác định, hãy tạo một tệp PHP khác để truy cập lớp này với đối tượng:

require "Rectangle.php"; // Include class definition
 
$obj_rec = new Rectangle; // Create a new object from Rectangle class
$obj->length = 30; // Set object properties values
$obj->width = 20; // Set object properties values
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600Sao chép

Làm cho chức năng của bạn linh hoạt

Bất cứ khi nào thêm một mục trong phiên hoặc bất kỳ đối tượng nào khác, bạn sử dụng chức năng trên. Khi thêm nhiều hạng mục thì có tạo chức năng khác không? Vì vậy, chỉ cần làm cho hàm đủ linh hoạt để nhận các loại tham số khác nhau. Hãy lấy một ví dụ:

function add_gift($item_id , $qty)
{
    $_SESSION['gift'][$item_id] = $qty;
}
 
add_gift( 'Phone' , 1 );Sao chép

Chức năng trên được sử dụng cho một món quà thêm, bây giờ xem ví dụ cho một và nhiều tham số:

function add_gift($item_id , $qty)
{
    if(!is_array($item_id))
    {
        $_SESSION['gift'][$item_id] = $qty;
    }
 
    else
    {
        foreach($item_id as $i_id => $qty)
        {
            $_SESSION['gift'][$i_id] = $qty;
        }
    }
}
 
add_gift( 'Phone' , 1 );
add_gift( array('Laptop' => 1 , 'Pen' => 2) );Sao chép

Luôn mã hóa ký tự chính xác cho kết nối MySQL

Đây là một vấn đề lớn đối với người mới bắt đầu, đã từng gặp phải sự cố là các ký tự Unicode/UTF-8 được lưu trữ chính xác trong bảng MySQL, quản trị viên PHP của tôi cũng hiển thị đúng, nhưng khi bạn tìm nạp chúng và lặp lại trên trang của bạn thì chúng không hiển thị chính xác . Bí mật là một đối chiếu kết nối MySQL.

$host = 'localhost';
$username = 'root';
$password = 'password';
 
//Attempt to connect to database
$con = mysqli_connect($host , $username, $password);
         
//Check connection validity
if (!$con) 
{
    die ("Could not connect to the database host: ". mysqli_connect_error());
}
         
//Set the character set of the connection
if(!mysqli_set_charset ( $con , 'UTF8' ))
{
    die('mysqli_set_charset() failed');
}Sao chép

Khi bạn kết nối với cơ sở dữ liệu, bạn nên đặt các ký tự kết nối. Đây là điều bắt buộc khi bạn đang làm việc với nhiều ngôn ngữ trong ứng dụng của mình.

Sử dụng các câu lệnh đã chuẩn bị cho cuộc tấn công SQL injection

Luôn sử dụng các câu lệnh đã chuẩn bị cho các cuộc tấn công SQL injection thay vì truy vấn SQL thông thường. Bước đầu tiên trong việc ngăn chặn một cuộc tấn công SQL injection là thiết lập ứng dụng nào (nếu có) dễ bị tấn công.

 

Bạn cần triển khai các câu lệnh đã chuẩn bị với Truy vấn được tham số hóa. Hãy lấy một ví dụ:

$cid = $_GET['cid'];
$get_prepare_query = db_prepare_query("select * from ".TABLE_CATEGORIES." where category_id = ?");
$get_prepare_query->bind_param('s', $cid);
$get_category_prepare_result = db_prepare_result($get_prepare_query);
$get_category_result = array_shift($get_category_prepare_result);
if(sizeof($get_category_result) == 0 ) tep_redirect(tep_create_url(''));
$category_id = $get_category_result['category_id'];Sao chép

Sử dụng một công tắc thay vì xâu chuỗi các câu lệnh If

Thủ thuật PHP hữu ích dành cho Nhà phát triển, 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, Mã sẽ thực thi nhanh hơn do đó hiệu suất được tăng lên. Việc sử dụng các câu lệnh Switch cho phép bạn vượt ra ngoài việc sử dụng các chuỗi if-else 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";Sao chép

cách tốt hơn để làm điều này như thế này với một công tắc:

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 ;
}Sao chép

Mỗi mảng lớn luôn hoạt động với chunk

Chúng tôi có thể tối ưu hóa công việc mảng lâu dài của mình với sự trợ giúp của đoạn mảng, Trong PHP, chúng tôi có thể cắt một mảng thành các đoạn nhỏ. Hàm array_chunk() là một hàm tích hợp sẵn trong PHP và được sử dụng để chia một mảng thành các phần hoặc khối có kích thước nhất định tùy thuộc vào các tham số được truyền cho hàm.

Một chức năng của PHP cho khối mảng là:

array_chunk($array, $size)Sao chép

Đoạn cuối cùng có thể chứa dữ liệu còn lại của mảng, có thể nhỏ hơn hoặc bằng kích thước.

$token_array = {'321321321s5d1s3d5a1sd',
'asda1s32d1a32s1d3a21d3a',
'4as3da4s2d13a21sd3da21d',
'5a6sd5as65da3s2d545sd4a',
'as4d534a3s5d4a3s5da35sd',
'a3sd4a35s4d35a4sd3a4ds3',
'45as4d3a54s3d5a43sd4ad3',
'43a5s4d35a4sd35a4s5a4s3',
'435a4sd35a4s3d5a4s3d5d4',
'3a5s4d35a4s3d5a4s3d543s',
'4a35s4d3a5s4d35a4s3d5d4',
'43as54d3a5s43d5a4s3d543'
.......};
foreach(array_chunk($token_array, 10) as $token){
  print_r($token)
  //manage your task
}Sao chép

Phương thức HTTP GET và POST

HTTP hoạt động như một giao thức phản hồi yêu cầu giữa máy khách và máy chủ. Máy khách gửi yêu cầu HTTP đến máy chủ, sau đó máy chủ trả về phản hồi cho máy khách. Phản hồi chứa thông tin về nội dung được yêu cầu. Hai loại phương pháp:

  1. NHẬN –  Yêu cầu dữ liệu từ một tài nguyên cụ thể.
  2. POST –  Gửi dữ liệu sẽ được xử lý tới một tài nguyên được chỉ định.

Cố gắng luôn luôn sử dụng phương thức POST. như thế này:

if(isset($_POST["name"])) {
 echo "Welcome ". $_POST['name'];
}Sao chép

Kiểm tra biến tồn tại trước khi sử dụng

Xác định xem một biến có được đặt hay không NULL. Luôn kiểm tra biến tồn tại trước khi sử dụng.

if(isset($_POST["name"])) {
 echo "Welcome ". $_POST['name'];
}Sao chép

Hàm isset() được sử dụng để kiểm tra xem một biến có được đặt hay không. Hàm isset() trả về false nếu biến đã cho chứa giá trị NULL.

Xử lý các nhà khai thác ternary

Mẹo và thủ thuật PHP tốt nhất để có hiệu suất tốt là sử dụng các toán tử bậc ba thay thế cho các cấu trúc IF đơn giản. Điều này sẽ giúp mã của bạn nhẹ hơn và có thể được lồng vào nhau mà không gặp vấn đề gì.

$phone = ( !empty ( $_POST['phone'] ) ? $_POST['phone'] : 9111111111 ) ;Sao chép

Những phương pháp này sẽ tiết kiệm thời gian và ít mã của bạn hơn, hãy tạo thói quen của bạn với các phương pháp hay nhất.

Source: https://www.legendblogs.com/