Khoá Học – Tân Hồng IT https://tanhongit.com Kiến thức tin học, máy tính, lập trình, thủ thuật tiện ích Fri, 06 Mar 2020 08:30:36 +0000 en-US hourly 1 https://wordpress.org/?v=5.3.2 https://tanhongit.com/wp-content/uploads/2020/02/favicon-tanhongit.png Khoá Học – Tân Hồng IT https://tanhongit.com 32 32 Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp https://tanhongit.com/lo-trinh-hoc-php-tu-co-ban-den-nang-cao-chuyen-nghiep/ https://tanhongit.com/lo-trinh-hoc-php-tu-co-ban-den-nang-cao-chuyen-nghiep/#respond Thu, 27 Feb 2020 22:59:57 +0000 https://tanhongit.com/?p=2452 Các bạn đang muốn học lập trình Website? các bạn chưa biết nên bắt đầu từ đâu và các bạn chưa biết mình nên theo lập trình web phía Back-end hay Full-Stack như thế nào? Bài viết này sẽ cho các bạn  biết về lộ trình học lập trình website từ cơ bản đến nâng […]

The post Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp appeared first on Tân Hồng IT.

]]>
Các bạn đang muốn học lập trình Website? các bạn chưa biết nên bắt đầu từ đâu và các bạn chưa biết mình nên theo lập trình web phía Back-end hay Full-Stack như thế nào? Bài viết này sẽ cho các bạn  biết về lộ trình học lập trình website từ cơ bản đến nâng cao với ngôn ngữ chủ đạo là PHP.

lo trinh hoc php
Lộ trình học PHP từ căn bản đến nâng cao

Tìm hiểu sơ qua về ngôn ngữ PHP

PHP là ngôn ngữ kịch bản phổ biến nhất trên website hiện nay. Nó được viết tắt của “Hypertext Preprocessor” là một ngôn ngữ lập trình mã nguồn mở được chạy ở phía server nhằm sinh ra mã html trên client rất phổ biến và được dùng trong phát triển ứng dụng Website.

Với đặt tính nhanh, linh hoạt, hữu dụng trong thực tế và được tối ưu hoá qua nhiều phiên bản, dễ học nên PHP trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng để phát triển mọi ứng dụng web từ blog đến các website nối tiếng.

Ví dụ như các ông lớn Facebook, Yahoo, Google đều ứng dụng với ngôn ngữ này.

Vậy trước khi bắt tay vào học ngôn ngữ PHP, chúng ta có cần có trước những kiến thức cơ bản nào khác không. Đáp án đối với bản thân mình là nên có.

Mặc dù chúng ta có thể bắt tay vào học PHP ngay cũng được, nhưng bạn sẽ gặp rất nhiều trở ngại trong quá trình học. Cho nên dù không nhiều thì ít, các bạn vẫn nên chuẩn bị cho bản thân một số kiến thức dưới đây trước khi học PHP.

Kiến thức nên có trước khi bắt đầu học lập trình PHP

Học html cơ bản

HTML là ngôn ngữ đánh dấu siêu văn bản giúp cho bạn tạo khung xương của website

Bạn nên học qua về HTML, HTML5

Học CSS cơ bản

Bạn nên học CSS, CSS3, Bootstrap sẽ giúp bạn trang trí cho website thêm phần sinh động.

Học Javascript

Có Javascript sẽ giúp cho website trở nên tương tác hơn.

  • Javasript cơ bản
  • jQuery: Thư viện hiệu ứng của Javascript

Với bộ 3 HTML + CSS + Javascript này bạn đã trở thành một lập trình viên front-end có đủ kiến thức rồi. Học xong 3 phần trên, các bạn sẽ rất dễ nắm bắt những công nghệ mới khi tiếp xúc sau này.

Học MySQL

Database là một phần không thể thiếu của bất cứ ứng dụng nào. Nó là thứ để lưu trữ các dữ liệu của ứng dụng và người dùng. Trong PHP thì người ta thường ưa chuộng MySQL.

Vì thế bạn nên học MySQL để biết về cách tạo dựng và quản lý database như thế nào nhé!

Giờ hãy bắt đầu vào lộ trình học PHP căn bản đến nâng cao.

Lộ trình học PHP căn bản

Ta sẽ học về lý thuyết những kiến thức cơ bản nhất.

  1. Ngôn ngữ lập trình PHP là gì và hướng dẫn thiết lập môi trường để lập trình PHP
  2. Cú pháp trong PHP, Khai báo hằng và biến trong PHP
  3. Những kiểu dữ liệu trong PHP
  4. Toán tử và biểu thức trong PHP
  5. Biểu Thức Điều Kiện Trong PHP (Lệnh if, else, switch)
  6. Các loại Vòng lặp trong PHP (for, while, do while)
  7. Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2)
  8. lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP
  9. Hàm (Function) Trong PHP
  10. Mảng (Array) Trong PHP
  11. Các hàm xử lý mảng (Array) trong PHP
  12. Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP

Học PHP nâng cao thêm một chút nữa

  1. Phương thức GET và POST trong PHP
  2. Cookie là gì? Cookie trong PHP
  3. Session trong PHP
  4. Các hàm xử lý và làm việc với file trong PHP
  5. Xử lý date time ngày tháng trong PHP
  6. Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)
  7. Xử lý ngoại lệ trong PHP.
  8. Xử lý lỗi (Error) trong PHP
  9. Những lệnh require, require_once, include, include_once trong PHP

Tiếp sau đó bạn sẽ cần học về Form trong php, truyền dữ liệu trong php từ form và kiểm tra form nhập liệu.

Gửi Emaill trong PHP.

Học cách sử dụng XML, DOM, Parsers trong PHP.

Các hàm bảo mật trong PHP

Học PHP nâng cao – Lập trình PHP hướng đối tượng OOP

Trong Phần học PHP nâng cao, Nội dung quan trọng nhất là Lập trình hướng đối tương OOP, nên ta sẽ có từng bài học theo lộ trình sau:

  1. Lập trình hướng đối tượng là gì?
  2. Class, properties, method of Object
  3. Magic methords
  4. Trừu tượng hoá dữ liệu
  5. Hàm khởi tạo và huỷ trong PHP
  6. Biến có sẵn được định nghĩa trước trong PHP
  7. Tính kế thừa trong php
  8. Các mức truy cập visibility private protected và public trong kế thừa
  9. Kế thừa lồng nhau trong php
  10. Tính đóng gói và đa hình trong php
  11. Lớp trừu tượng abstract trong php hướng đối tượng
  12. Get set và magics methods __get __set
  13. Autoloading require, require_one
  14. Ghi chú với docblocks
  15. Interface là gì?
  16. Trait là gì?
  17. Self và this khác nhau như thế nào?
  18. Final class là gì?

Nâng cao thêm – Học PHP và MySQL

Để học tốt chương trình học PHP và MySQL, chúng ta phải nắm vững kiến thức về lập trình frontend, bao gồm HTML, CSS, và Javascript. Tư duy logic tốt, khả năng xử lý vấn đề thực tiễn, khả năng tìm hiểu tài liệu, và ngoại ngữ sẽ là một lợi thế.

  1. MySQL là gì?
  2. Mối liên hệ giữa MySQL và PHP
  3. Tạo CSDL
  4. Tạo Bảng (table)
  5. Kết nối và truy vấn CSDL MySQL
  6. Thiết lập quan hệ giữa các bảng trong CSDL (khóa chính, khóa ngoại, contrains…)
  7. Chọn (Select) dữ liệu MySQL
  8. Thêm (Insert) dữ liệu MYSQL
  9. Chỉnh sửa (Update) dữ liệu MYSQL
  10. Xoá (Delete) dữ liệu MySQL
  11. Cơ chế prepared câu SQL trong PHP
  12. Thao tác với CSDL trong PHP thông qua PDO

Lập trình phát triển ứng dụng PHP

  1. Hiển thị sản phẩm trên trang chủ và theo từng chuyên mục sản phẩm
  2. Tìm kiếm và phân trang trong PHP
  3. Đăng ký, đăng nhập, ghi nhớ đăng nhập, quên mật khẩu trong php
  4. Upload file trong PHP
  5. Đếm số người Online
  6. Hệ thống bình chọn bằng PHP và MySQL
  7. Tạo Giỏ hàng trong PHP
  8. Xây dựng chức năng checkout
  9. Tích hợp thanh toán trực tuyến vào giỏ hàng
  10. Tìm kiếm với PHP và Ajax
  11. Sử dụng Google reCAPTCHA với PHP
  12. Quản lý đơn hàng bằng php và mysql
  13. Tạo trang quản lý sản phẩm
    1. Quản lý menu
    2. Quản lý sản phẩm: thêm, xoá, sửa, update.
    3. Chức năng Quản lý User.
    4. Quản lý chuyên mục.

Tìm Hiểu Mô Hình MVC Với PHP

Học Framework của PHP

Học Laravel

Nguồn tài nguyên, tài liệu tốt nhất để học Lập trình PHP

Các bạn có thể tham khảo một số nguồn tài liệu chuyên về PHP bên dưới.

  1. Học tập từ tài liệu trên W3 Schools
  2. Đọc documents trên php.net

Ngoài ra các bạn cũng có thể đăng lý học những khoá học chất lượng từ Udemy.com, Tutorialspoint.com hoặc học qua video hướng dẫn trên Youtube.

Tất cả đều nhằm mục đích hỗ trợ cho việc học tập của các bạn, Việc còn lại phụ thuộc vào sự cần cù và đam mê của các bạn để trong quá trình học không bị chán nản mà bỏ giữa chừng nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

 

The post Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/lo-trinh-hoc-php-tu-co-ban-den-nang-cao-chuyen-nghiep/feed/ 0
Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions https://tanhongit.com/bai-19-xu-ly-ngoai-le-trong-php-php-exceptions/ https://tanhongit.com/bai-19-xu-ly-ngoai-le-trong-php-php-exceptions/#respond Wed, 26 Feb 2020 04:34:07 +0000 https://tanhongit.com/?p=2381 Ngoại lệ, error và xử lý ngoại lệ là những khái nhiệm rất quen thuộc đối với tất cả các lập trình viên. Bài viết này trình bày các vấn đề liên quan đến Exception trong PHP. PHP có cung cấp các cơ chế giúp bắt lỗi, giám sát các lỗi và xử lý các […]

The post Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions appeared first on Tân Hồng IT.

]]>
Ngoại lệ, error và xử lý ngoại lệ là những khái nhiệm rất quen thuộc đối với tất cả các lập trình viên. Bài viết này trình bày các vấn đề liên quan đến Exception trong PHP. PHP có cung cấp các cơ chế giúp bắt lỗi, giám sát các lỗi và xử lý các lỗi có thể xảy ra khi lập trình.

Trong nhiều ứng dụng lớn, có thể mở rộng, trong các ứng dụng hướng đối tượng và các frameworks thì việc bắt được các Exception trong quá trình develop là điều cực kì tốt.

xu ly ngoai le php exception
Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

Ngoại lệ (Exception) trong PHP là gì?

Bạn có thể hiểu nôm na ngoại lệ như sau: Trong lập trình chúng ta sẽ tạo ra những đoạn code, hàm, mảng mới mong muốn nó thực hiện một hành động nào đó trong chương trình. Như vậy, tất cả các hành động có thể xảy ra mà khác với mong muốn đó thì nó chính là ngoại lệ (Exception).

Và chúng ta sẽ không bao giờ muốn cho chương trình của mình hoạt động sai mong muốn phải không nào. Vì thế mà ta cần xử lý ngoại lệ để tránh những ngoại lệ đó phá hỏng chương trình.

Trái ngược với hệ thống xử lý lỗi trong PHP, xử lý ngoại lệ là phương pháp hướng đối tượng để xử lý lỗi, cung cấp hình thức báo cáo lỗi linh hoạt và có kiểm soát hơn.

Các phương pháp xử lý ngoại lệ trong PHP

  • Sử dụng try, throw và catch.
  • Tạo lớp ngoại lệ tùy chỉnh.
  • Xử lý nhiều ngoại lệ.
  • Ném lại một ngoại lệ.
  • Thiết lập trình xử lý ngoại lệ cao cấp.

Xử lý ngoại lệ (Exception Handling) trong PHP

Sử dụng try, throw và catch

Ta sẽ có một số khái niệm cần lưu ý dưới đây:

Try − Một hàm sử dụng một exception nên nằm trong khối try. Nếu exception không xảy ra( không được kích hoạt), code sẽ tiếp tục như bình thường. Tuy nhiên, nếu exception xảy ra ( được kích hoạt) thì exception đó sẽ bị “thrown”.

Throw − Đây là cách bạn kích hoạt một exception. Mỗi “thrown” phải có ít nhất một “catch”.

Catch − Mỗi khối “catch” bắt một exception và tạo một đối tượng chứa thông tin của exception đó.

Cú pháp tổng quát của try catch

<?php
  try {
    //Thực hiện đoạn mã này có khả năng ném ra một ngoại lệ
  }
  catch (Exception $e) {
    //Xử lý ngoại lệ ở đây
  }
?>

Ví dụ:

<?php 
// PHP Program to illustrate normal 
// try catch block code 
function demo($var) { 
    echo "<br> Before try block"; 
    try { 
        echo "<br> Inside try block"; 
              
        // If var is zero then only if will be executed 
        if($var == 0) 
        { 
                  
            // If var is zero then only exception is thrown 
            throw new Exception('Number is zero.'); 
                  
            // This line will never be executed 
            echo "<br> After throw (It will never be executed)"; 
        } 
    } 
          
    // Catch block will be executed only  
    // When Exception has been thrown by try block 
    catch(Exception $e) { 
            echo "<br> Exception Caught: ", $e->getMessage(); 
        } 
          
        // This line will be executed whether 
        // Exception has been thrown or not  
        echo "<br> After catch (will be always executed)"; 
} 

// Exception will not be rised 
demo(2); 
echo '<br>';
echo '<br>';
// Exception will be rised here 
demo(0); 
?>

Kết quả:

Before try block
Inside try block
After catch (will be always executed)


Before try block
Inside try block
Exception Caught: Number is zero.
After catch (will be always executed)

Trong đó Hàm demo() kiểm tra nếu một số có bằng 0 hay không. Nếu điều kiện đúng ngoại lệ được ném ra. Khối “catch” lấy ra ngoại lệ và tạo ra một đối tượng ($e) chứa thông tin ngoại lệ. Thông báo lỗi từ ngoại lệ được lặp lại bằng cách gọi $e->getMessage() từ đối tượng ngoại lệ.

Trong ví dụ trên, hàm $e->getMessage() được sử dụng để lấy error message. Không chỉ có mỗi một hàm đó, dưới đây là một số hàm có thể được sử dụng từ lớp Exception trong PHP.

Một số hàm lấy error message

  • getMessage() − thông báo của exception
  • getCode() − code của exception
  • hàm getFile() − tên source file
  • getLine() − source line
  • getTrace() − n mảng của backtrace()
  • hàm getTraceAsString() − chuỗi được định dạng của trace
  • getClass() – class có exception

Từ ví dụ về try catch trên ta có thể thêm như sau:

<?php
// PHP Program to illustrate normal 
// try catch block code 
function demo($var)
{
    echo "<br> Before try block";
    try {
        echo "<br> Inside try block";

        // If var is zero then only if will be executed 
        if ($var == 0) {

            // If var is zero then only exception is thrown 
            throw new Exception('Number is zero.');

            // This line will never be executed 
            echo "<br> After throw (It will never be executed)";
        }
    }

    // Catch block will be executed only  
    // When Exception has been thrown by try block 
    catch (Exception $e) {
        echo "<br> Exception Caught: ", $e->getMessage();
        echo "<br> Exception Caught: ", $e->getFile();
        echo "<br> Exception Caught: ", $e->getCode();
        echo "<br> Exception Caught: ", $e->getLine();
        echo "<br> Exception Caught: ", $e->getTraceAsString();
    } 

    // This line will be executed whether 
    // Exception has been thrown or not  
    echo "<br> After catch (will be always executed)";
}

// Exception will not be rised 
demo(5);
echo '<br>';
echo '<br>';
// Exception will be rised here 
demo(0);
Before try block
Inside try block
After catch (will be always executed)


Before try block
Inside try block
Exception Caught: Number is zero.
Exception Caught: C:\wamp64\www\webdemo\index2.php
Exception Caught: 0
Exception Caught: 14
Exception Caught: #0 C:\wamp64\www\webdemo\index2.php(41): demo(0) #1 {main}
After catch (will be always executed)

Tạo lớp ngoại lệ tuỳ chỉnh

Để tạo một trình xử lý ngoại lệ tùy chỉnh, bạn phải tạo một lớp đặc biệt với các hàm có thể được gọi khi một ngoại lệ xảy ra trong PHP. Lớp này phải được kế thừa lớp Exception.

<?php 
class myException extends Exception { 
    function get_Message() { 
          
        // Error message 
        $errorMsg = 'Error on line '.$this->getLine(). 
                    ' in '.$this->getFile() 
        .$this->getMessage().' is number zero'; 
        return $errorMsg; 
    } 
} 
  
function demo($a) { 
    try { 
      
        // Check if 
        if($a == 0) { 
            throw new myException($a); 
        } 
    } 
      
    catch (myException $e) { 
      
        // Display custom message 
        echo $e->get_Message(); 
    } 
} 
  
// This will not generate any exception 
demo(5); 
  
// It will cause an exception 
demo(0); 
?>

Kết quả: Error on line 18 in C:\wamp64\www\webdemo\index2.php0 is number zero

Đầu tiên ta sẽ tạo một class có tên myException được kế thừa từ class Exception, như vậy, nó sẽ kế thừa tất cả các phương thức và thuộc tính từ lớp Exception.

Trong class trên sẽ tạo một hàm get_message để thông báo lỗi nếu một số truyền vào bằng 0.

Ra khỏi class, ta dựng một hàm demo() với nội dung bên trong thực hiện try catch để kiểm tra xem số truyền vào có bằng 0 không. Nếu số bằng 0, một ngoại lệ sẽ được ném và sau đó khối catch sẽ bắt được ngoại lệ về rồi hiển thị ra thông tin lỗi.

Xử lý nhiều ngoại lệ – Multiple Exceptions

Multiple Exceptions là cách sử dụng nhiều block try…catch để cố gắng bắt các ngoại lệ được ném ra.

Ở phương pháp này chúng ta có thể sử dụng các câu lệnh điều khiển như if…else, switch, hoặc các ngoại lệ lồng vào nhau.

Cú pháp tổng thể

try {
     // Some code...
} catch (ExceptionType1 | ExceptionType2 $e) {
     // Code to handle the exception
} catch (\Exception $e) {
     // ...
}

Ví dụ:

<?php

class A_Error extends Exception {}
class B_Error extends Exception {}
class C_Error extends Exception {}

try {
    throw new A_Error();
} 
catch (A_Error $e) { goto abc; }
catch (B_Error $e) { goto abc; }
catch (C_Error $e) {
abc:
    var_dump(get_class($e));
    echo "Error one";
}

Xử lý nhiều ngoại lệ sẽ có ích khi bạn muốn hiển thị thông điệp hoặc thực hiện một hành động nào đó tuỳ thuộc vào mỗi ngoại lệ được ném ra.

Thiết lập xử lý ngoại lệ cao cấp – Set Top Level Exception Handler

Hàm set_exception_handler() sẽ đặt tất cả hàm do người dùng đã xác định thành tất cả ngoại lệ chưa được lưu.

<?php
function myException($exception) {
  echo "<b>Exception:</b> " . $exception->getMessage();
}
 
set_exception_handler('myException');
 
throw new Exception('Uncaught Exception occurred');
?>

Trong đoạn mã trên không có khối “catch”. Thay vào đó, trình xử lý ngoại lệ cấp cao nhất được kích hoạt. Hàm này nên được sử dụng để bắt các ngoại lệ chưa được catch.

Kết quả:

Exception: Uncaught Exception occurred

Ví dụ khác:

<?php 
// PHP Program to illustrate normal 
// try catch block code 
// Function for Uncaught Exception 
function myException($exception) { 
      
    // Details of Uncaught Exception 
    echo "<br> Exception: " . $exception->getMessage(); 
} 
  
// Set Uncaught Exception handler 
set_exception_handler('myException');

function demo($var) { 
    echo "<br> Before try block"; 
    try { 
        echo "<br> Inside try block"; 
              
        // If var is zero then only if will be executed 
        if($var == 0) 
        { 
                  
            // If var is zero then only exception is thrown 
            throw new Exception('Number is zero.'); 
                  
            // This line will never be executed 
            echo "<br> After throw (It will never be executed)"; 
        } 
    } 
          
    // Catch block will be executed only  
    // When Exception has been thrown by try block 
    catch(Exception $e) { 
            echo "<br> Exception Caught: ", $e->getMessage(); 
        } 
          
        // This line will be executed whether 
        // Exception has been thrown or not  
        echo "<br> After catch (will be always executed)"; 
        if($var < 0) {  
          
            // Uncaught Exception 
            throw new Exception('Uncaught Exception occurred'); 
        } 
} 

// Exception will not be rised 
demo(2); 
echo '<br>';
// Exception will be rised here 
demo(0); 
// Uncaught Exception 
demo (-3); 
?>
Before try block
Inside try block
After catch (will be always executed)

Before try block
Inside try block
Exception Caught: Number is zero.
After catch (will be always executed)
Before try block
Inside try block
After catch (will be always executed)
Exception: Uncaught Exception occurred

Tham khảo:

Kết thúc

Bài viết trên mình đã liệt kê một vài cách để xử lý ngoại lệ trong lập trình PHP. Mỗi bài viết về kiến thức học PHP của mình đều có thể chưa hoàn toàn đầy đủ, cho nên mong các bạn hãy tra google khi tham khảo và mong bạn có thể gửi lại comment bổ sung bên dưới để mình có thể hoàn thiện lại bài viết hơn. Cảm ơn các bạn!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

Tổng hợp Internet

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

The post Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/bai-19-xu-ly-ngoai-le-trong-php-php-exceptions/feed/ 0
Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…) https://tanhongit.com/bai-18-nhung-ham-kiem-tra-du-lieu-trong-php-isset-empty/ https://tanhongit.com/bai-18-nhung-ham-kiem-tra-du-lieu-trong-php-isset-empty/#respond Mon, 24 Feb 2020 09:52:16 +0000 https://tanhongit.com/?p=2382 Tiếp tục series học PHP căn bản, bài này chúng ta sẽ tìm hiểu về một số hàm dùng để kiểm tra dữ liệu hoặc biến về sự tồn tại của nó. Và những lợi ích của nó trong lập trình website PHP. Có rất nhiều hàm kiểm tra dữ liệu giá trị của một […]

The post Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…) appeared first on Tân Hồng IT.

]]>
Tiếp tục series học PHP căn bản, bài này chúng ta sẽ tìm hiểu về một số hàm dùng để kiểm tra dữ liệu hoặc biến về sự tồn tại của nó. Và những lợi ích của nó trong lập trình website PHP.

Có rất nhiều hàm kiểm tra dữ liệu giá trị của một biến trong PHP. Mỗi hàm sẽ có một chức năng phụ thuộc vào từng loại biến và cách sử dụng khác nhau, Nhưng mình chỉ giới thiệu các hàm thông dụng thường hay dùng đó là isset(), empty() và is_null(),….

Tất cả các hàm được liệt kê trên này đều trả về một giá trị boolean. Nó sẽ rất có ích cho các bạn trong việc làm web sử dụng ngôn ngữ php. Nhưng nếu các chức năng này không được sử dụng đúng cách, chúng có thể gây ra các kết quả không mong muốn.

kiem tra du lieu isset php
Kiểm tra dữ liệu trong PHP (isset, empty,…)

Hàm isset($value)

Về hàm này mình đã từng nói sơ qua và áp dụng ví dụ rất nhiều lầm ở các bài viết trước đây rồi. Tác dụng của nó dùng để kiểm tra biến $value có tồn tại hay không. Nó sẽ trả về true chỉ khi biến không phải là null.

Thông thường bạn hay dùng hàm này để kiểm tra một biến trước khi xử lý thao tác đến nó.

Cú pháp

isset($value1, $value2 ......)

Tham số

  • $value1: Là biến thứ nhất cần kiểm tra (bắt buộc phải có)
  • $value2 ,…$value_n các biến còn lại cần kiểm tra( có thể có hoặc không)
<?php
$data = 'phpcanban';
if (isset($data))
    echo 'Biến này tồn tại';
else
    echo 'Biến này không tồn tại';
?>

Hàm isset() được sử dụng trong trường hợp nào

Trong quá trình biên dịch nếu trong code có sử dụng một biến không tồn tại thì trình biên dịch sẽ ngưng xử lý và thông báo lỗi ngay, chính vì vậy thông thường những trường hợp mà ta không chắc chắn là biến đó luôn tồn tại thì trước khi sử dụng hãy kiểm tra nó bằng isset.

Ngoài ra nó còn có một số ứng dụng sau:

  • Thường được sử dụng trong From kiểm tra sự xác định của biến
  • Kiểm tra sự xác định của phần tử trong mảng phục vụ cho xử lý và xuất giá trị trong mảng

Ví dụ:

//kiểm tra giá trị phần tử trong mảng
<?php
$var = array(
    "php",
    'laptrinh',
    null,
    27,
    "php can ban",
    null
);
foreach ($var as $value) {
    if (isset($value)) {
        echo 'this var is set <br />';
    } else {
        echo 'this var is not set <br />';
    }
}
/*output:
this var is set
this var is set
this var is not set
this var is set
this var is set
this var is not set*/
?>

Nếu biến đã được khai báo, nhưng sau đó lại được loại bỏ bởi hàm unset() thì khi kiểm tra với hàm isset() sẽ trả về kết quả FALSE.

Khi sử dụng isset () trên các thuộc tính đối tượng không thể tiếp cận, phương thức nạp chồng __isset () sẽ được gọi, nếu được khai báo.

Các bạn có thể tham khảo thêm về hàm isset tại đây.

Hàm empty($var)

Kiểm tra biến $var có phải giá trị trống hay không. Tất cả các giá trị như: số 0, giá trị null, giá trị rỗng, giá trị false đều được quy về là empty.

Cú pháp

empty($var);

Tham số

Tham số của hàm empty($var) chỉ hỗ trợ khi chỉ có mỗi một biến $var.

Nếu biến $var không tồn tại thì hàm này vẫn không báo lỗi và sẽ trả kết quả về false.

Những giá trị sau đấy được xem là rỗng:

  • “” (Chuỗi)
  • 0 (0 là số nguyên)
  • 0.0 (0 là số thực)
  • “0” (0 là chuổi)
  • NULL
  • FALSE
  • array() (là mảng rỗng)
  • $var; (biến chưa khai báo, không có giá trị)
Hàm empty($var) sẽ tương đương !isset($var) hoặc $var == false.
Cũng có thể ở một số trường hợp isset($var) trả về TRUE nhưng empty($var) lại trả về FALSE. Vì thế trong quá trình thiết lập các biểu thức điều kiện cần xác định rõ để tạo biểu thức thích hợp
<?php
$data = [];
if (empty($data))
    echo 'Biến này rỗng';
else
    echo 'Biến này không rỗng';

Hàm empty() được sử dụng trong trường hợp nào

  • Sử dụng để kiểm tra giá trị biến xem có rỗng hay không
  • Phục vụ cho qua trình kiểm tra chuẩn hóa dữ liệu khi thao tác đến nhận giá trị từ Form
//kiểm tra dữ liệu từ form đăng nhập
if (empty($_POST['password'])){
    echo 'Bạn chưa nhập tên mật khẩu';
}

Các bạn có thể tham khảo thêm về hàm empty tại đây.

Hàm is_null($var)

Hàm sẽ kiểm tra biến $var có phải giá trị null không.

Nói cách khác, nó chỉ trả về true khi biến là null . is_null () trái ngược với isset (), ngoại trừ một điểm khác biệt là có thể áp dụng ngay bây giờ cho các biến không xác định

<?php
$demo= null;
if (is_null($demo))
    echo 'Biến này là null';
else
    echo 'Biến này không phải là null';

Các bạn có thể tham khảo thêm về hàm is_null tại đây.

Một số hàm kiểm tra dữ liệu cho biến khác

is_array($var)

Hàm is_array() kiểm tra xem một biến $var có phải là một mảng hay không.

Hàm này trả về true nếu biến là một mảng, nếu không, nó trả về false / nothing.

<?php
$yes = array('this', 'is', 'an array');

echo is_array($yes) ? 'Array' : 'not an Array';
echo "\n";

$no = 'this is a string';

echo is_array($no) ? 'Array' : 'not an Array';
?>

is_string($var)

Kiểm tra biến $var có phải kiểu chuỗi hay không.

<?php
$values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0);
foreach ($values as $value) {
    echo "is_string(";
    var_export($value);
    echo ") = ";
    echo var_dump(is_string($value));
}
?>

is_int($var) hoặc is_integer($var)

Kiểm tra biến $var có phải kiểu INT hay không.

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));
}
?>

is_float($var)

Kiểm ta biến $var có phải kiểu float hay không

var_dump(is_float(27.25));
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Scientific Notation
var_dump(is_float(true));
?>

is_double($var)

Kiểm tra biến $var có phải kiểu double hay không.

<?php
$var_name=127.55;
if (is_double($var_name))
echo 'This is a double value.<br>';
else
echo 'This is not a double value.<br>';
echo '<br>';
var_dump(is_double(85));
echo '<br>';
var_dump(is_double(1e8));
echo '<br>';
var_dump(is_double(true));
echo '<br>';
var_dump(is_double(array(23.3, 56, 6)));
?>

in_array($needle, $haystackarray)

Kiểm tra giá trị $needle có trong mảng $haystackarray hay không

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

array_key_exists($key, $searcharray)

Kiểm tra key $key có trong mảng $searcharray hay không

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>

is_numeric($var)

Hàm có tác dụng kiểm tra xem một biến có phải là số hay không

<?php
$demo = 20;
if (is_numeric($demo))
    echo 'Biến này là số';
else
    echo 'Biến này không phải là số';
?>

Còn có vô số hàm khác mà mình không thể liệt kê hết được, các bạn có thể vào php.net để tìm tòi và lục lọi những hàm phù hợp với bài toán của các bạn nhé. Các bạn có thể thao khảo link về function tại đây.

Kết thúc

Bạn sẽ phải thường xuyên dùng đến các hàm trên trong quá trình học tập cũng như làm việc với lập trình PHP, qua bài viêt mong bạn đã hình dung được cách sử dụng của chúng và ứng dụng vào mỗi trường hợp của bài toán thật phù hợp.

Mỗi bài viết về kiến thức học PHP của mình đều có thể chưa hoàn toàn đầy đủ, cho nên mong các bạn hãy tra google khi tham khảo và mong bạn có thể gửi lại comment bổ sung bên dưới để mình có thể hoàn thiện lại bài viết hơn. Cảm ơn các bạn!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

The post Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…) appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/bai-18-nhung-ham-kiem-tra-du-lieu-trong-php-isset-empty/feed/ 0
Bài 16: Các hàm xử lý và làm việc với file trong PHP https://tanhongit.com/bai-16-cac-ham-xu-ly-va-lam-viec-voi-file-trong-php/ https://tanhongit.com/bai-16-cac-ham-xu-ly-va-lam-viec-voi-file-trong-php/#respond Sat, 22 Feb 2020 09:39:45 +0000 https://tanhongit.com/?p=2040 Bài viết này sẽ xoay quanh về nội dung của các hàm xử lý và làm việc với file trong PHP.  Đối với một ngôn ngữ lập trình, làm việc với file và thư mục là điều bắt buộc mà không thể tránh khỏi. Vấn đề xử lý file trong PHP rất quan trọng khi […]

The post Bài 16: Các hàm xử lý và làm việc với file trong PHP appeared first on Tân Hồng IT.

]]>
Bài viết này sẽ xoay quanh về nội dung của các hàm xử lý và làm việc với file trong PHP.  Đối với một ngôn ngữ lập trình, làm việc với file và thư mục là điều bắt buộc mà không thể tránh khỏi. Vấn đề xử lý file trong PHP rất quan trọng khi các bạn muốn làm một số chức năng như cache hay log file nhằm giúp ứng dụng web chạy nhanh hơn,…

ham xu ly file trong php
Các hàm xử lý và làm việc với file trong PHP

Việc nắm vững kiến thức về xử lý file và quyền hạn của file, thư mục khi học PHP không những giúp bạn dễ dàng lưu trữ thông tin cho website mà còn giúp bạn tăng tính bảo mật cho các file và thư mục quan trọng.

Quá trình làm việc với một file trong PHP diễn ra như sau: Mở file –> Thao tác (Đọc, Ghi ) –> Đóng file. 

Các loại File được hỗ trợ trong PHP

  • File quản lý hệ thống
  • File logs
  • Loại file.txt
  • File.log
  • File.csv
  • Dạng file hình ảnh file.gif, file.jpg …
  • File cài đặt chương trình (program.ini)

Mở file với fopen

Để mở file trong PHP chúng ta dùng hàm fopen với cú pháp:

fopen($path, $mode);

Trong đó:

  • $path là đường dẫn đến file các bạn muốn mở.
  • $mode là thuộc tính bao gồm các quyền hạn truy cập vào file.

Danh sách ký hiệu thuộc tính $mode gồm quyền hạn truy cập vào file.

Mode Chú thích
r Chỉ được đọc (Read only)
r+ Được quyền đọc và ghi (Read + write)
w Chỉ được viết (write only)
x Tạo file mới chỉ để ghi.
w+ Được quyền đọc và viết (write + read). Nếu file này tồn tại thì nội dung cũ sẽ bị xóa đi và ghi lại nội dung mới, còn nếu file chưa tồn tại thì nó tạo file mới.
a Được quyền chỉ để viết và nếu file đã tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới.
a+ Được quyền cả viết lẫn đọc. Nếu file tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới
x+ Quyền tạo file mới để đọc và ghi.
b Mở dưới dạng chế độ binary

Hàm fopen() sẽ mở một file dựa vào đường dẫn truyền vào. Nếu truyền vào một URL, hàm sẽ sẽ tìm kiếm một trình xử lý giao thức(wrapper) cho URL đó, nếu không có trính xử lý nào đươc cung cấp, nó sẽ cảnh báo cho người dùng và sau đó tiếp tục như đối với các file bình thường.

Ví dụ:

<?php
$open = @fopen('data.txt', 'r'); // dùng @ đặt trước hàm fopen để ngăn chặn thông báo lỗi khi truyền sai đường dẫn file
if (!$open)
    echo "Mở file không thành công";
else
    echo "Mở file thành công";
?>

Đọc File trong PHP

Có 3 cách đọc file thông thường trong PHP đó là đọc từng dòng, đọc từng ký tự và đọc hết file. Chúng ta sẽ đi vào từng cách đọc trên nhé!

Sử dụng hàm feof trong đọc file

Trước khi tìm hiểu các cách đọc file trong PHP mình xin giới thiệu các bạn hàm feof().

Hàm này có tác dụng đặt trong vòng lặp để sau khi đọc xong nó sẽ chuyển sang dòng mới hoặc ký tự mới đối với từng trường hợp đọc file.

Hàm feof() hữu ích khi lặp lại những dữ liệu không xác định được độ dài.

Đọc file từng dòng

Để đọc file từng dòng ta dùng hàm fgets($fp).

Ở cách này trước tiên chúng ta sẽ dùng feof để sau khi đọc xong nó sẽ chuyển sang dòng mới, và dùng hàm fgets để in ra từng dùng của file.

<?php
$fp = @fopen('demo.txt', "r");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    // Lặp qua từng dòng để đọc
    while(!feof($fp))
    {
        echo fgets($fp);
    }
}
?>

Ở phương pháp đọc file theo từng dòng này, ngoài cách duyệt từng dòng bằng việc dùng hàm feof trong vòng lặp while như trên thì ta còn có một cách khác đó là chuyển file sang dạng mảng với mỗi phần tử trong mảng là 1 dòng của file, sau đó chỉ cần duyệt mảng và xuất ra màn hình.

$array = @file('demo.txt'); // chuyển đổi file sang mảng
foreach ($array as $value) {
    echo $value;
}

Trong đó: Hàm file() đọc nội dung của file và đưa vào một mảng. Mỗi phần tử của mảng tương ứng với một dòng của file.

Đọc file từng ký tự

Để đọc file từng dòng ta dùng hàm fgetc($fp).

Ở cách này trước tiên chúng ta sẽ dùng feof để sau khi đọc xong nó sẽ chuyển sang dòng mới, và dùng hàm fgetc để in ra từng dùng của file.

<?php
$fp = @fopen('demo.txt', "r");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    // Lặp qua từng ký tự để đọc
    while(!feof($fp))
    {
        echo fgetc($fp);
    }
}
?>

Đọc hết file với fread

Thông số trong hàm fread() chứa tên của file dùng để đọc dữ liệu và thông số thứ hai là một số lượng bytes nhất định để đọc dữ liệu.

Cú pháp: fread($file,$filesize)

<?php
$fp = @fopen('demo.txt', "r");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    echo fread($file, filesize('demo.txt'));
} ?>

Ghi, Chèn dữ liệu vào file trong PHP

Để ghi nội dung vào file ta dùng hàm fwrite($fp, $content) trong đó $fp là đối tượng trả về lúc mở file, còn $content

Để ghi file thì bắt buộc file của bạn phải được mở ở chế độ mode có cho phép ghi file và tiếp đó dùng hàm fwrite để ghi dữ liệu.

Vì vậy mà việc ghi file sẽ phụ thuộc vào lúc bạn mở file như thế nào. Ví dụ lúc bạn mở file ghi đè thì lúc ghi file nó sẽ ghi đè, lúc bạn mở file ghi kiểu append thì lúc ghi file nó sẽ thêm xuống cuối file, nếu bạn mở file chỉ cho đọc thì bạn không thể ghi file được.

<?php
$fp = @fopen('demo.txt', "w");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    fwrite($fp,'Đã mở file thành công, hãy tiếp tục thao tác mới');
}
?>

Đóng File

Quá trình làm việc với một file trong PHP diễn ra như sau: Mở file –> Thao tác (Đọc, Ghi ) –> Đóng file. Quy trình này là mặc định đối với nhiều ngôn ngữ lập trình khác nhau, chúng ta luôn phải tuân thủ theo quy trình đã mở thì phải đóng.

Việc mở file để sử dụng mà không đóng file rất nguy hiểm, vì thế sau khi sử dụng xong bạn nên đóng file để an toàn hơn và thu hồi tài nguyên hệ thống.

Để đóng file ta dùng hàm fclose($fp). Trong đó $fp là đối tượng trả về lúc bạn mở file.

<?php
$fp = @fopen('demo.txt', "w");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    fwrite($fp,'Đã mở file thành công, hãy tiếp tục thao tác mới');
    fclose($fs); //đóng file
}
?>

Vì thế những ví dụ ở phần đọc file bạn đều phải bổ sung thêm hàm đóng file vào thì code mới đúng và hoàn chỉnh các bạn nhé!

Các hàm xử lí file khác

Kiểm tra file có tồn tại không?

Trong PHP có cung xấp cho chúng ta hàm file_exists($path) để kiểm tra sự tồn tại của file, hàm sẽ trả về true nếu file tồn tại và ngược lại false nếu không. Trong đó $path là đường dẫn đến file cần test.

Bạn cũng có thể sử dụng hàm này khi bạn tạo ra một tập tin mới và bạn muốn đảm bảo rằng các tập tin chưa từng tồn tại trên server.

<?php
if (file_exists('STDIO.txt'))
{
    echo 'File exists';
}
?>

Kiểm tra cấp quyền với file

Để kiểm tra file có được cấp quyền gì không thì chúng ta dùng hàm is_writable() . Hàm này sẽ trả về true nếu được quyền ghi và ngược lại false nếu không được quyền ghi.

<?php
$fp = @fopen('demo.txt', "w");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    if(is_writable('demo.txt')){       
        fwrite($fp, 'Được phép ghi');}
    else{
        echo 'Không Được phép ghi';}
    fclose($fp);
}

Lấy nội dung của file hàm file_get_contents

Cú pháp: file_get_contents($path)

Trong đó $path là đường dẫn đến file, hoặc 1 đường link URL dẫn tới trang web chứa file.

echo file_get_contents('demo.txt');

Đổi tên file

Để đổi tên file ta dùng hàm rename($oldname, $newname), trong đó $oldname là đường dẫn đến file cần đổi tên, $newname là đường dẫn mới có kèm tên file cần đổi . Nếu bạn chỉ muốn đổi tên thôi thì đường dẫn của cả 2 biến giống nhau, chỉ khác nhau ở cái tên file.

Nếu tên file mới bị trùng thì file đó sẽ bị ghi đè.

rename('demo.txt', 'newdemo.txt');

Copy file

Cú pháp: copy($source, $newpath)

Trong đó $source là path file cần copy và $newpathlà path file cần di chuyển tới.

copy('demo.txt', 'newdemo.txt');

Xóa file

Ta dùng hàm unlink($path) để xóa file. Trong đó $path là đường dẫn đến file cần xóa.

<?php
if (file_exists('demo.txt'))
{
    if(unlink('demo.txt'))
        echo 'Xoá thành công';
    else
        echo 'Không thành công';
}
?>

Ghi toàn bộ nội dung chuỗi ra file

Đây là cách ghi toàn bộ một chuỗi ra file ngắn gọn (thay cho việc phải sử dụng fopen, fread, fclose).

Cú pháp: file_put_contents($path, $contents)

file_put_contents('demo.txt', 'đây là nội dung sẽ được ghi ra file');

Tạo một thư mục ( folder) mới

Cú pháp: mkdir($path)

Trong đó $path là đường dẫn đến folder cần tạo.

Ví dụ:

mkdir('webdevelopment/php/phpcanban');
Lưu ý: tên folder cuối cùng lằn trong link chính là tên folder bạn cần tạo và tất cả các folder trước nó bạn chắc chắn là phải có, nếu không sẽ bị lỗi.
Từ ví dụ trên ta sẽ nhận ra rằng ta đã phải có folder webdevelopment và trong nó là folder con có tên là php thì mới tạo thêm được.

Kiểm tra sự tồn tại đường dẫn thư mục

Cú pháp kiểm tra sự tồn tại của thư mục trong php là is_dir(path)

if(is_dir('phpcanban')){
    echo 'Folder này hiện đang tồn Tại';
}

Kết thúc

Qua bài viết trên mình đã nói qua về những hàm cần thiết về xử lý file cần biết trong PHP, Các bạn hãy thao khảo tìm mốt số bài tập thực hành để nâng cao hiểu biết của bản thân hơn nhé!

Ngoài ra còn rất nhiều hàm xử lý về file khác mà mình chưa nói tới, các bạn có thể tham khảo tại đây.

Bài viết tiếp theo mình sẽ sơ lược qua về vấn đề xử lý thời gian, ngày tháng trong PHP các bạn hãy đón đọc nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

The post Bài 16: Các hàm xử lý và làm việc với file trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/bai-16-cac-ham-xu-ly-va-lam-viec-voi-file-trong-php/feed/ 0
Bài 13: Phương thức GET và POST trong PHP https://tanhongit.com/bai-13-phuong-thuc-get-va-post-trong-php/ https://tanhongit.com/bai-13-phuong-thuc-get-va-post-trong-php/#respond Tue, 18 Feb 2020 11:45:18 +0000 https://tanhongit.com/?p=1978 Tiếp tục series học PHP căn bản, ở bài 13 này chúng ta sẽ học về 2 phương thức truyền tải dữ liệu thông dụng trong mô hình Client-Server đó là Get và Post. Các bạn có thể xem lại khái niệm của Client-Server.  Phương thức GET trong PHP Khi người dùng phía client sử […]

The post Bài 13: Phương thức GET và POST trong PHP appeared first on Tân Hồng IT.

]]>
Tiếp tục series học PHP căn bản, ở bài 13 này chúng ta sẽ học về 2 phương thức truyền tải dữ liệu thông dụng trong mô hình Client-Server đó là GetPost. Các bạn có thể xem lại khái niệm của Client-Server. 

get va post trong php
Phương thức GET và POST trong PHP

Phương thức GET trong PHP

Khi người dùng phía client sử dụng phương thức GET gửi dữ liệu lên server thông qua các tham số (parameter) trên thanh địa chỉ URL của Browser. Các tham số trên URL bắt đầu bằng dấu chấm hỏi ( ? ) và được ngăn cách với nhau bởi dấu và ( & ). Server sẽ phân tích tất cả những thông tin đằng sau dấu hỏi (?) chính là phần dữ liệu mà Client gửi lên.

Ví dụ: ta có URL https://tanhongit.net/?p=7740&preview=true

Khi truy cập, từ Server sẽ hiểu giá trị p = 7740 và giá trị preview = true.

Lưu ý 1: khi muốn truyền nhiều cặp giá trị lên Server chúng ta sẽ sử dụng dấu và ( & ), và vị trí các cặp giá trị không quan trọng. Nghĩa là từ ví dụ trên, giá trị preview nằm trước giá trị p cũng được.

Đó là ví dụ về phần Client truy cập từ thanh địa chỉ URL. Chúng ta bây giờ sẽ chuyên sang các vấn đề trong code PHP.

Trong code khi các dữ liệu mà Client gửi lên bằng phương thức GET đều được lưu trong một biến toàn cục mà PHP tự tạo ra đó là biến $_GET. ( $_GET là một biến toàn cục lưu trữ dưới dạng mảng bất tuần tự.)

<?php
$_GET = [
    'name' => 'TanHongIT',
    'website' => 'tanhongit.net'
];
?>  //biến $_GET là một mảng chứa nhiều phần tử

Lưu ý về phương thức GET trong PHP

  • Phương thức GET được giới hạn gửi tối đa chỉ 1024 ký tự.
  • Không bao giờ sử dụng phương thức GET nếu gửi password hoặc thông tin nhay cảm lên Server.
  • GET không thể gửi dữ liệu nhị phân, ví dụ như hình ảnh hoặc các loại tài liệu lên Server.
  • Dữ liệu gửi bởi phương thức GET có thể được truy cập bằng cách sử dụng biến môi trường QUERY_STRING.
  • PHP cung cấp mảng liên hợp $_GET để truy cập tất cả các thông tin đã được gửi bởi phương thức GET.

Ví dụ thực hành

Ví dụ 1: Bạn khởi tạo 1 file demo.php nằm trong thư mục WWW của WampServer hoặc tạo trong thư mục htdocs nếu bạn dùng Xampp, sau đó bạn dán đoạn code bên dưới vào.

<?php
$_GET = [
    'title' => 'TanHongIT',
    'website' => 'tanhongit.net'
];
?> 
<!DOCTYPE html>
<html lang="en">
<body>
    <form action="<?php $_PHP_SELF ?>" method="GET">
        <?php foreach ($_GET as $key => $value){  
            echo $key . ' - ' . $value . '<br>';
        } ?>
        <input type="submit">
    </form>
</body>
</html>

khi truy cập vào http://localhost/demo.php?title=tanhongit&website=tanhongit.net hoặc http://localhost//demo.php thì kết quả đều ra như sau:

title - TanHongIT
website - tanhongit.net

Ở ví dụ trên mình sử dụng phương thức GET ngay trong 1 file duy nhất, mình đã sử dụng vòng lặp Foreach để lấy toàn bộ key và value có trong biến $_GET là một mảng có nhiều phần tử.

GET còn có thể sử dụng để truyền dữ liệu từ file này sang file khác. hãy làm tiếp ví dụ 2.

Ví dụ 2: Tạo 2 file, 1 file có tên get_demo.php và một file demo.html

Đầu tiên, ở trong file demo.html ta sẽ tạo 1 form để lấy dữ liệu nhập vào từ bàn phím và gửi lên server.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div class="container">
        <form action="get_demo.php" method="GET"> <!--thêm thuộc tính action chuyển hướng đến file get_demo.php -->
            <div class="form-group">
                <label for="">Title</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào title..." name="title"> <!--tạo một trường có tên là title để truyền dữ liệu lên file get_demo.php-->
            </div>

            <div class="form-group">
                <label for="">Website</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào url website..." name="web"> <!--tạo một trường có tên là web để truyền dữ liệu lên file get_demo.php-->
            </div>

            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>
</body>
</html>

Ở file demo.html mình có tạo 2 trường nhập liệu trong form có tên là title web để truyền dữ liệu nhập từ bàn phím vào file get_demo.php

Tiếp theo ta viết code để phía Server xuất ra màn hình sau khi nó đã nhận dữ liệu được nhập vào từ file demo.html thông qua file get_demo.php

<?php
echo 'Kết quả nhập liệu của bạn là: <br>';
echo 'Title: ' . $_GET['title'] . '<br>';
echo 'Website: ' . $_GET['web'];

Hãy test thử bằng cách chạy file demo.html lên theo đường link http://localhost/demo.html sau đó nhập vào các trường dữ liệu và nhấn vào button Submit. Lập tức Server sẽ tự động chuyển link sang file get_demo.php và xuất ra thông tin bạn đã nhập liệu.

demo get php url method get php

Lưu ý 2: Vì đây là phương thức GET nên khi truyền dữ liệu bạn sẽ có 2 cách truyền, 1 là truyền dữ liệu từ form sau đó gửi lên Server, 2 là ta có thể truyền tham số trực tiếp thông qua paramter trên địa chỉ URL

Ví dụ: http://localhost/get_demo.php?title=hello&web=chaomoinguoi.com

Kết quả nhận được sau khi Enter sẽ như hình dưới:

Lưu ý 3: Dùng phương thức GET thì dữ liệu luôn được gửi một cách tường minh, chúng ta có thể thấy mọi thông tin trên URL và có thể chỉnh sửa trực tiếp cho nên nó không bảo mật tốt.
Vì thế khi muốn tạo dữ liệu nào đó ta không nên sử dụng phương thức GET mà phải dùng POST vì GET luôn để lộ thông tin trên địa chỉ URL nên rất dễ bị hack đánh cắp dữ liệu.

Phương thức POST trong PHP

Phương thức POST sẽ trái ngược với phương thức GET về tính bảo mật cũng như tốc độ.

Về phương thức GET, chúng ta có thể xem thông tin trên thanh địa chỉ URL, dữ liệu được gửi đi bằng GET sẽ thông qua các paramter trên URL. POST thì ngược lại, nó không gửi dữ liệu đi bằng paramter trên URL mà thông qua HTTP header, vì vậy việc bảo mật phụ thuộc vào giao thức HTTP mà website đó đang sử dụng.

Parameters được truyền trong request body nên có thể truyền dữ liệu lớn, hạn chế tùy thuộc vào cấu hình của Server. Không cache và bookmark được cũng như không được lưu lại trong browser history. POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi, có thể gửi dữ liệu nhị phân, hình ảnh.

Nội dung dữ liệu được gửi đi bằng phương thức POST sẽ luôn bị ẩn đi và chúng ta không thể thấy được.

Phương thức Post trong mô hình Client-Server

Các bạn hãy tìm hiểu và làm ví dụ bên dưới để hiểu cách phương thức POST truyền dữ liệu lên Server như thế nào nhé!

Phía Client gửi lên

Với phương thức GET, dữ liệu sẽ được thấy trên URL, nhưng phương thức POST thì hoàn toàn ngược lại, POST sẽ phải gửi dữ liệu qua form HTML và các giá trị sẽ được định nghĩa trong các thẻ input gồm các kiểu (textbox, radio, checkbox, password, textarea, hidden) và được nhận dang thông qua tên (name) của các thẻ input đó.

Bạn hãy tạo file demo.html trong thư mục WWW của WampServer hoặc tạo trong thư mục htdocs nếu bạn dùng Xampp và chèn đoạn code bên dưới vào.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div class="container">
        <form action="post_demo.php" method="POST"> <!--thêm thuộc tính action chuyển hướng đến file post_demo.php và sử dụng phương thức method = post-->
            <div class="form-group">
                <label for="">Title</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào title..." name="title"> <!--tạo một trường có tên (name) là title để truyền dữ liệu lên file post_demo.php-->
            </div>
            <div class="form-group">
                <label for="">Website</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào url website..." name="web"> <!--tạo một trường có tên (name) là web để truyền dữ liệu lên file post_demo.php-->
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>
</body>
</html>

Phần code trên mục đích dùng để nhập liệu từ phía Client để gửi lên Server. Giờ chúng ta sang phần Server.

Phía Server nhận dữ liệu và trả về

Tất cả các dữ liệu gửi bằng phương thức POST đều được lưu trong một biến toàn cục $_POST do PHP tự tạo ra, vì thế từ bây giờ bạn chỉ cần thao tác lấy hoặc gửi dữ liệu thông qua biến $_POST này là được.

Ở file demo.html mình có tạo 2 trường nhập liệu trong form có tên là title web để truyền dữ liệu nhập từ bàn phím vào file post_demo.php. Tiếp theo ta sẽ code trên file post_demo.php để lấy dữ liệu và xuất ra màn hình.

<?php
echo 'Kết quả nhập liệu của bạn là: <br>';
echo 'Title: ' . $_POST['title'] . '<br>';
echo 'Website: ' . $_POST['web'];

Hãy test thử bằng cách chạy file demo.html lên theo đường link http://localhost/demo.html sau đó nhập vào các trường dữ liệu và nhấn vào button Submit. Lập tức Server sẽ tự động chuyển link sang file post_demo.php và xuất ra thông tin bạn đã nhập liệu.

demo post php

Nhưng có một điều khác biệt ở đây bạn cần quan tâm đó là khi sử dụng GET, đường dẫn URL sẽ tiết lộ bất kỳ thông tin mà bạn đã nhập liệu, còn khi đã dùng POST thì bị ẩn.

Điều này chứng minh POST sẽ có tính bảo mật hơn GETPOST sẽ phù hợp với các chức năng về tạo dữ liệu, đăng ký, đăng nhập,…

Những lưu ý cần biết trong phương thức POST trong PHP

  • Phương thức POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi.
  • Phương thức POST có thể sử dụng để gửi ASCII cũng như dữ liệu nhị phân.
  • Dữ liệu gửi bởi phương thức POST thông qua HTTP header, vì vậy việc bảo mật phụ thuộc vào giao thức HTTP. Bằng việc sử dụng Secure HTTP, bạn có thể chắc chắn rằng thông tin của mình là an toàn.
  • PHP cung cấp mảng liên hợp $_POST để truy cập tất cả các thông tin được gửi bằng phương thức POST.

Kiểm tra isset với GET và POST trong PHP

Trước khi lấy một dữ liệu nào đó từ client bạn phải kiểm tra nó đã tồn tại không rồi mới lấy.Vì nếu không kiểm tra trước khi lấy, phía client chưa cung cấp đầy đủ dữ liệu mà server lại nhận thì sẽ có lỗi ngay. Vì thế ở những trường hợp mà ta không chắc chắn một biến luôn tồn tại hoặc một trường dữ liệu được nhập đầy đủ thì hãy kiểm tra nó trước khi gửi request.

Để kiểm tra ta sẽ dùng hàm isset(). Hàm isset() trong PHP có chức năng kiểm tra xem biến có tồn tại hay không. Nó sẽ trả về TRUE nếu biến đó có tồn tại và ngược lại FALSE nếu biến đó không tồn tại. Hàm isset() sẽ dùng cho cả 2 phương thức GET và POST.

Cú pháp: isset($bien);

Trong đó: $bien là biến mà bạn muốn kiểm tra sự tồn tại.

Từ ví dụ về phần POST trong PHP ở trên, nếu bạn trực tiếp truy cập vào http://localhost/post_demo.php mà chưa nhập đầy đủ thông tin ở http://localhost/demo.html thì sẽ xuất hiện lỗi ngay.

Vậy từ ví dụ trên ta chỉ cần thêm vào file file post_demo.php như sau:

<?php
echo 'Kết quả nhập liệu của bạn là: <br>';
if (isset($_POST['title']) && isset($_POST['web'])) {
    echo 'Title: ' . $_POST['title'] . '<br>';
    echo 'Website: ' . $_POST['web'];
}

Bây giờ bạn hãy thử truy cập lại http://localhost/post_demo.php , nếu chưa đươc nhập đủ dữ liệu ở http://localhost/demo.html thì nó sẽ không hiện gì cả, còn nhập đầy đủ các trường dữ liệu thì nó mới hiện lên cho ta xem.

Kết luận: Hàm isset() thật sự rất hữu ích đối với chúng ta trong việc ràng buộc dữ liệu nên các bạn hãy thường xuyên sử dụng để hiểu rõ và áp dụng dễ dàng hơn sau này nhé!

So sánh giống và khác nhau giữa GET và POST

GET và POST hầu như chẳng có gì giống nhau ngoài tác dụng là truyền tải dữ liệu lên Server.

Cho nên mình sẽ nói về những đặc điểm khác nhau của 2 phương thức này nhé!

  1. Giới hạn dữ liệu: GET giới hạn gửi tối đa chỉ 1024 ký tự. Còn POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi.
  2. Khả năng: Phương thức POST có thể sử dụng để gửi ASCII cũng như dữ liệu nhị phân, các loại tệp, hình ảnh còn GET thì không.
  3. Tốc độ: GET nhanh hơn rất nhiều so với POST về quá trình thực thi – vì dữ liệu gửi đi luôn được web browser lưu cached lại. Khi dùng phương thức POST thì server luôn thực thi và trả kết quả cho client, còn dùng GET thì web browser cached sẽ kiểm tra có kết quả tương ứng đó trong bộ nhớ cached chưa, nếu có thì trả về ngay mà không cần đưa tới server.
  4. Bảo mật: Phương thức POST bảo mật hơn GET vì dữ liệu được gửi ngầm, không xuất hiện trên URL, mắt thường không nhìn thấy được và dữ liệu cũng không được lưu lại. Trong khi đó với GET thì dữ liệu gửi đi được tường minh bạn có thể hiển thị lại được các dữ liệu này trên URL.

Link tham khảo: https://www.diffen.com/difference/GET-vs-POST-HTTP-Requests

Khi nào nên dùng GET và POST trong PHP

Cả 2 phương thức đều có những ưu và nhược điểm khác nhau, vậy khi nào chúng ta nên dùng GET và khi nào nên dùng POST.

Phương thức GET có tốc độ thực thi nhanh như độ bảo mật lại rất kém nên GET chỉ nên dùng cho các công việc lấy dữ liệu từ server về client, như vậy quá trình truy xuất sẽ nhanh hơn.

Đối với POST sẽ có độ bảo mật cao nên phù hợp với các công việc tạo dữ liệu, upload, truyền tải thông tin lên server, những công việc mang tính bảo mật cao.

Ví dụ:

  • Khi upload hình ảnh lên web thì ta sẽ dùng POST, còn khi muốn tải ảnh từ Web server về ta sẽ dùng GET.
  • Khi đăng ký, đăng nhập hoặc comment vào một website ta sẽ dùng POST, còn khi lấy tin bài viết từ web ra thì ta dùng GET.
  • Khi request sử dụng câu lệnh select thì dùng GET, khi request có sử dụng lệnh insert update, delete thì nên dùng POST.
  • Ngoài ra khi cần xử lý các thông tin nhạy cảm ví dụ như email, password thì bạn phải sử dụng POST.

Kết thúc

Qua bài viết trên mình đã nếu ra những nội dung liên quan đến 2 phương thức method truyền tải dữ liệu thông dụng trong PHP là GET và POST. Các bạn cần phải hiểu rõ những tính chất của mỗi phương thức này và khi nào nên dùng nó tùy vào từng trường hợp cụ thể.

Nhưng có một điều lưu ý rằng những nội dung, dữ liệu quan trọng hoặc cần truyền tải một loại thông tin gì đó lên server thì ta phải dùng POST để tăng tính bảo mật cho Website nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

via tanhongit.net

CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 13: Phương thức GET và POST trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/bai-13-phuong-thuc-get-va-post-trong-php/feed/ 0
Bài 9: Hàm (Function) Trong PHP https://tanhongit.com/bai-9-ham-function-trong-php/ https://tanhongit.com/bai-9-ham-function-trong-php/#respond Tue, 18 Feb 2020 05:25:08 +0000 https://tanhongit.com/?p=1947 Tiếp tục series học PHP căn bản thì trong bài học này mình sẽ giới thiệu cho các bạn về hàm (function) trong PHP là gì, cấu trúc của một hàm và cách sử dụng nó như thế nào nhé! Hàm là gì? Hàm (Hay còn gọi là function) là một hoặc nhiều đoạn code […]

The post Bài 9: Hàm (Function) Trong PHP appeared first on Tân Hồng IT.

]]>
Tiếp tục series học PHP căn bản thì trong bài học này mình sẽ giới thiệu cho các bạn về hàm (function) trong PHP là gì, cấu trúc của một hàm và cách sử dụng nó như thế nào nhé!

function ham trong php
Bài 9 Hàm (Function) Trong PHP

Hàm là gì?

Hàm (Hay còn gọi là function) là một hoặc nhiều đoạn code được viết ra để thực thi một hoặc nhiều hành động mỗi khi gọi nó, hàm có khả năng gọi đi gọi lại để sử dụng nhiều lần trong chương trình.

Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP đã hỗ trợ người lập trình việc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong website. Việc này cũng giúp cho người lập trình kiểm soát mã nguồn một cách mạch lạc. Đồng thời có thể tùy biến ở mọi trang mà không cần phải khởi tạo hay viết lại mã lệnh như HTML thuần.

PHP hiện nay có hơn 700 Function được xây dựng sẵn để thực hiện các nhiệm vụ khác nhau.

Vì sao nên sử dụng hàm

Hàm giúp tổ code tốt hơn: Hàm giúp nhóm các block code thực hiện chức năng liên quan đến nhiệm vụ cụ thể lại.

Tái sử dụng Code – Một khi đã được sử dụng, Hàm có thể sử dụng mà không cần định nghĩa lại. Việc này giúp tiết kiệm thời gian lập trình, giảm trùng lặp code, giảm kích thước chương trình.

Dễ dàng bảo trì (Easy Maintenance) – Hàm giúp chúng ta có sửa 1 chỗ và cập nhật cả chương trình.

Quy tắc khi tạo hàm

  • Tên hàm phải bắt đầu với một ký tự hoặc dấu gạch dưới.
  • Tên hàm không được bắt đầu bằng số.
  • Đặt tên của hàm phải là duy nhất.
  • Tên của hàm không chứa dấu cách.
  • Tên của hàm phải mô tả được công việc của nó
  • Hàm chấp nhận tham số và có thể trả về giá trị

Cấu trúc của một hàm

Hàm tự định nghĩa

<?php
function functionName() {
    //code được thực thi;
}
// Gọi function
functionName(); 
?>

Trong đó functionName là tên cùa hàm, cách đặt tên hàm cũng phải tuân thủ theo các ràng buộc tương tự như đặt tên biến.

Ví dụ: Xuất thứ tự chữ cái từ một tới 5 có sử dụng duyệt mảng.

<?php
    function xuatchucai(){
        $name= array("one", "two", "three", "four", "five");
        foreach ($name as $value){ 
            echo "$value <br>"; 
        }
    }
    //gọi hàm
    xuatchucai();
?>

Hàm tự định nghĩa với các tham số

Trong PHP chúng ta có thể khai báo hàm có tham số hoặc không có tham số. Các tham số đóng vai trò là các biến sử dụng bên trong hàm và chúng ta có thể truyền dữ liệu đầu cho các biến này khi gọi hàm.

<?php
function functionName($giatri1, $giatri2) {
    //code được thực thi;
}
?>

Trong đó, các biến $giatri1, $giatri2 là các tham số mà bạn muốn truyền vào. Các tham số này la các biến truyền vào thuộc một kiểu dữ liệu bất kỳ nào đó ( và Không giới hạn số lượng tham số truyền vào.)

Ví dụ:

<?php
    function output($string){
        echo "$string <br>";
    }
    //gọi hàm
    output("Chào Mừng");
    output("Đến với");
    output("Series Học PHP căn bản");
?>

Hàm tự định nghĩa với giá trị trả về

Hàm có thể trả về một giá trị khi được gọi. Để khai báo một hàm với giá trị trả về chúng ta sử dụng từ khoá return.

<?php
function functionName(có hoặc không có đối số) {
    //code được thực thi;
    return giatri;
}
?>

Lệnh return dùng để trả về cho hàm một giá trị. (Sau khi thực thi xong, hàm sẽ có một giá trị, lúc đó nó có thể được sử dụng giống như một biến)

Lưu ý: Trong một hàm, sau khi thực thi xong lệnh return thì hàm sẽ kết thúc (tức là những câu lệnh nằm phía sau lệnh return sẽ không được thực thi). Cho nên trong một hàm, lệnh return cần phải được đặt ở vị trí cuối cùng.

Ví dụ: tính tích của 2 số đơn giản.

<?php
    function tich($a, $b){
        $ketqua = $a * $b;
        return $ketqua;
    }
    //gọi hàm
    echo tich(15,20);
    //ket qua xuat ra man hinh se la 300
?>
Lưu ý: Khi đặt tên hàm, tên hàm có thể là một tổ hợp bất kỳ những chữ cái, con số và dấu gạch dưới, nhưng không được bắt đầu bằng số mà phải bắt đầu từ chữ cái và dấu gạch dưới.

Cách gọi hàm

Nếu các bạn để ý các ví dụ bên trên thì bạn sẽ thấy ở mỗi ví dụ mình đều cho lại 1 comment gọi hàm trong chương trình. Cách gọi một function rất đơn giản, sau khi bạn đã xây dựng hàm xong thì bạn chỉ cần code theo cú pháp tương tự mãu bên dưới.

functionName();
//hoặc
functionName($param);

Trong đó:

  • functionName: là tên của hàm các bạn muốn gọi.
  • $param: là tham số các bạn muốn truyền vào hàm (nếu lúc khai báo hàm có yêu cầu truyền tham số).

Bạn hãy xem lại ví dụ bên dưới

<?php
    function xuatchucai(){
        $name= array("one", "two", "three", "four", "five");
        foreach ($name as $value){ 
            echo "$value <br>"; 
        }
    }
    //sau khi xây dựng xong 1 hàm bạn hãy đóng làm lại bằng dấu } và sau đó gọi hàm bằng cách viết lại têm của hàm đó và thêm () phía sau.
    xuatchucai();
    //Không được code dòng gọi hàm khi vẫn đang trong hàm mà bạn đang xây dựng
?>
Lưu ý: Bạn không được gọi hàm khi bạn vẫn chưa xây dựng xong hàm đó hoặc chưa thực hiện đóng hàm lại nhé!

Thiết lập giá trị mặc định cho tham số hàm trong PHP

Bạn có thể thiết lập một tham số có một giá trị mặc định nếu người gọi hàm không truyền cho nó.

Nếu một hàm trong php bạn khai báo có biến truyền vào nhưng đến lúc gọi hàm để sử dụng bạn lại không truyền biến vào thì hệ thống sẽ báo lỗi ngay. Vì thế, để không bị ràng buộc khi sử dụng hàm có tham số truyền vào, ta sẽ thiết lập giá trị mặc định cho tham số đó ngay từ bước đầu xây dựng hàm.

<?php
function functionName($giatri = "gia tri mac dinh") {
    //code được thực thi;
}
?>

Ví dụ 1:

<?php
    function printMessage($param = "Giá trị mặc định")
    {
    echo $param;
    }
    //gọi hàm có truyền tham số là một chuỗi
    printMessage("Tham số này là một chuỗi được truyền vào!!!<br />");
    //gọi hàm khi không truyền tham số nào cả
    printMessage();
?>

Kết quả:

Tham số này là một chuỗi được truyền vào!!!
Giá trị mặc định

Ví dụ 2:

<?php
    function printMessage($a, $b, $c = 5)//$c sẽ có gia trị mặc định là 5
    {
    echo $a + $b + $c;
    }
    //gọi hàm có truyền tất cả tham số vào
    printMessage(2,3,6); // khi này hàm sẽ tự hiểu $a =4, $b =7, $c = 6
    echo " - ";
    //gọi hàm khi không truyền tham số $c vào 
    printMessage(4,7); // khi này hàm sẽ tự hiểu $a =4, $b =7 và $c mặc định sẽ bằng 5
?>

Kết quả xuất ra màn hình: 11 – 16

Truyền tham số bằng tham chiếu trong PHP

Tương tự như phần giới thiệu về cách thay đổi phần tử hiện tại bằng cách thay đổi tham chiếu mà mình đã nói qua trong bài 7 Vòng lặp Foreach ở phần thay đổi phần tử bằng tham chiếu

Ở trong function, PHP cũng tạo ra một bản sao chép giá trị của biến đó khi nạp tham số vào hàm, cho nên khi thay đổi giá trị của tham số này trong hàm thì giá trị của biến gốc sẽ vẫn như cũ mà không bị thay đổi theo.

Đôi lúc ta cần phải thay đổi luôn cả gái trị của biến gốc đang được gọi tham số trong hàm đó vì một số lý do của chương trình. Chính vì thế khi này ta sẽ phải sử dụng tham số bởi dạng tham chiếu.

Để dễ hiểu các bạn hãy xem ví dụ dưới đây:

<?php
    // Tạo 1 biến
    $bien = 0;

    // Hàm tăng giá trị tham số truyền vào lên 1
    function tinh_cong(&$bien) //gọi tham chiếu bằng cách thêm dấu &
    {
        $bien = $bien + 1;
        return $bien;
    }

    // Xuất giá trị trả về của hàm cộng
    echo tinh_cong($bien); //kết quả màn hình: 1

    // Xuất giá trị của biến gốc
    echo $bien; //kết quả màn hình: 1
    //bạn sẽ thấy biến gốc bây giờ đã thay đổi
?>

==> Bạn có thể truyền một tham số bởi tham chiếu thông qua việc thêm một ký hiệu & trước tên biến trong lời gọi hàm hoặc định nghĩa hàm.

Kiểm tra hàm đã tồn tại

Trong thực tế khi xây dựng các dự án với PHP hướng thủ tục thì số lượng các hàm sẽ không dừng ở con số 5,10,20,… mà nó sẽ lớn hơn rất là nhiều, như vậy thì chuyện trùng lặp hàm là điều không thể tránh khỏi đối với một lập trình viên không chuyên nghiệp hoặc một lý do nào khác khiến việc trùng lặp hàm xảy ra. Chính vì đều đó trong PHP đã cung cấp cho chúng ta một hàm function_exists() để giải quyết vấn đề đó.

Cú Pháp

function_exists('functionName');

Trong đó: functionName là tên của hàm các bạn kiểm tra và hàm này sẽ trả về giá trị TRUE nếu hàm đã tồn tại và  ngược lại FALSE nếu chưa tồn tại.

<?php
if (!function_exists('loopNumber')) {
    function loopNumber($number = 0)
    {
        for ($i = 0; $i <= $number; $i++) {
            echo $i;
        }
    }
}
//theo toidicode

Built in Function trong PHP

Built in Functions là các Functions có sẵn khi cài đặt PHP. Nó thực hiện công việc thường gặp giúp PHP làm việc hiệu quả.

Built in Functions được chia thành nhiều loại khác nhau như: String Functions, Numeric Functions

Trong rất rất nhiều trường hợp nhằm giúp rút gọn code và tăng hiệu xuất cho code mà ta sẽ sử dụng hàm có sẵn trong PHP thay vì sử dụng các hàm tự tạo làm tốn thời gian biên dịch cho chương trình.

Kết thúc

Qua bài trên mình đã giới thiệu và hướng dẫn các bạn cách khai báo và sử dụng hàm (function) trong PHP, đây là kiến thức quan trọng trong lập trình hướng đội tượng và các bạn sẽ phải tận dụng hàm rất nhiều trong các trương trình, dự án sau này, cho nên các bạn hãy nắm vững khái niệm về hàm nhé! Nếu có thắc mắc gì các bạn hãy để lại comment bên dưới bài viết đê mọi người cùng thảo luận nhé!

Ở bài tiếp theo mình sẽ giới thiệu cho các bạn khái niệm về mảng ( Array) trong PHP.

Hãy tiếp tục trong series học PHP căn bản ở các bài viết tiếp theo các bạn nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 9: Hàm (Function) Trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/bai-9-ham-function-trong-php/feed/ 0
Bài 14: Cookie là gì? Cookie trong PHP https://tanhongit.com/cookie-la-gi-cookie-trong-php/ https://tanhongit.com/cookie-la-gi-cookie-trong-php/#respond Mon, 17 Feb 2020 08:22:52 +0000 https://tanhongit.com/?p=1888 Cookie, hay HTTP cookie, web cookie, browser cookie, cookie trong PHP là một đoạn dữ liệu nhỏ được gửi từ phía website và lưu trữ ở trình duyệt của người dùng client khi họ duyệt website này. Mỗi lần người dùng load website, trình duyệt sẽ tự động gửi cookie về web server để thông báo […]

The post Bài 14: Cookie là gì? Cookie trong PHP appeared first on Tân Hồng IT.

]]>
Cookie, hay HTTP cookie, web cookie, browser cookie, cookie trong PHP là một đoạn dữ liệu nhỏ được gửi từ phía website và lưu trữ ở trình duyệt của người dùng client khi họ duyệt website này. Mỗi lần người dùng load website, trình duyệt sẽ tự động gửi cookie về web server để thông báo cho website biết các hành động trước đó của người dùng.

cookie trong php
Cookie là gì? Cookie trong PHP

Cookie thường được sử dụng để xác định người dùng. Cookie được thiết kế để trở thành một cơ chế đáng tin cậy, giúp website ghi nhớ các thông tin trạng thái hoặc lưu trữ các hoạt động của người dùng.

3 bước để xác định người dùng trả về

  1. Script phía Server gửi một tập các Cookie cho trình duyệt. Ví dụ: tên, tuổi, địa chỉ …
  2. Trình duyệt sẽ lưu trữ thông tin này trên máy local để sử dụng trong tương lại.
  3. Lần tiếp theo khi trình duyệt gửi bất cứ yêu cầu nào cho Web Server, nó sẽ gửi các thông tin Cookie đó cho Server và Server sẽ sử dụng thông tin đó để xác định người dùng này.

Một số thông tin về Cookie

  • Cookie được lưu trữ theo cặp thông tin key/value
  • Cookie được lưu ở trình duyệt người dùng và có thể truy xuất từ server khi người dùng truy cập trang
  • Thời gian sống của cookie được quy định tối đa ba năm
  • Cookie có tầm ảnh hưởng đến các vùng trên server cho chúng ta quy định

Cookie sẽ không bị mất khi bạn đóng ứng dụng, nó phụ thuộc vào thời gian sống mà bạn thiết lập cho nó.

Cookie được tạo ra bởi website và gởi tới trình duyệt, do vậy 2 website khác nhau (cho dù có cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới trình duyệt.

Ngoài ra, mỗi trình duyệt quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 trình duyệt cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau.

Mỗi trình duyệt web có thể lưu trữ ít nhất 300 cookie trong một file 4KB, và ít nhất 20 cookie trên mỗi server hay domain.

Thiết lập Cookie trong PHP

Để thiết lập cookie trong PHP ta sử dụng cú pháp setcookie().

setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);

Các thuộc tính thành phần của Cookie

  • $name: Tên cookie
  • $value: Giá trị cookie (mặc định chuổi rỗng)
  • $expire: Thời gian sống cookie, nếu được thiết lập 0 thì sau khi tắt trình duyệt cookie tự mất. Thời gian sống tối đa là 3 năm. Thời gian được thiết lập sử dụng PHP function time() để cộng trừ một số giây lớn hơn 0 tức là time() + 3600 là set thời hạn cookie trong 1 giờ.
  • $path: Đường dẫn trên server mà cookie có hiệu lực. Nếu được thiết lập là / thì cookie có hiệu lực với tất cả các file trên server.
  • $domain: Tên miền cookie có hiệu lực. ( Bạn có thể set tối đa 253 ký tự.)
  • $secure: là một thuộc tính bảo mật được enabled khi sử dụng HTTPS, đảm bảo việc cookie luôn được mã hóa khi chuyển từ client đến server, giúp nó tránh khỏi việc bị nghe trộm làm lộ thông tin. Nó có thể được thiết lập thành 1 để chỉ rằng Cookie này chỉ được gửi bằng truyền dẫn an toàn sử dụng HTTPS, ngược lại nếu thiết lập thành 0, nó có nghĩa rằng Cookie có thể gửi bằng HTTP thông thường.
  • $httpOnly: thuộc tính này của cookie được hỗ trở bởi hầu hết các trình duyệt. Một HttpOnly session cookie sẽ chỉ được sử dụng trong một HTTP (hoặc HTTPS) request, do đó hạn chế bị truy cập bởi các non-HTTP APIs chẳng hạn Javascript. Việc hạn chế này làm giảm nhẹ nhưng không loại trừ việc đánh cắp cookie thông qua lỗ hổng Cross-site scripting (XSS).

2 thành phần đầu tiên là $name và $valuebắt buộc phải có, các thành phần còn lại là tuỳ chọn.

Ví dụ: tạo 1 file cookie.php có cookie lưu thông tin tên và tuổi của 1 sinh viên:

<?php
   setcookie("name", "Larva Thuận", time()+3600, "/","", 0);
   setcookie("age", "20", time()+3600, "/", "",  0);
?>
<html>
   <head>
      <title>Thiết lập Cookie trong PHP</title>
   </head>
   <body>
      <?php echo "Thiết lập Cookie"?>
   </body>
</html>

Đọc – Truy cập – Sử dụng cookie trong PHP

Do tất cả Cookie được lưu trữ trong biến toàn cục $_COOKIE, nên để lấy giá trị của Cookie ta chỉ việc truy xuất vào biến này.

Ngoài ra ta cũng có thể lấy giá trị của cookie thông qua biến  $HTTP_COOKIE_VARS nhưng cách này không khuyên khích dùng.

Cú pháp: $_COOKIE['value'];

Từ ví dụ về file cookie.php trên ta sẽ tiếp tục tạo file index.php để lấy dữ liệu cookie đã được lưu trong trình duyệt.

<html>
   <head>
      <title>Thiết lập Cookie trong PHP</title>
   </head>
   <body>
      <?php
            echo $_COOKIE["name"]. "<br />";
            echo $_COOKIE["age"] . "<br />";
            ?>
   </body>
</html>

Các bạn hãy chạy file cookie.php trước rồi chạy file index.php sau, bạn sẽ thấy trình duyệt echo ra được thông tin tên và tuổi. Nếu như các bạn chạy file index.php trước mà chưa chạy file cookie.php thì trình duyệt sẽ báo lỗi không xác định dữ liệu trường giá trị. Vậy để không bị báo lỗi trên bạn chỉ cần sửa một chút trong file index.php bằng cách thêm hàm isset() để kiểm tra cookie đã được thiết lập hay chưa như sau:

<html>
   <head>
      <title>Thiết lập Cookie trong PHP</title>
   </head>
   <body>
      <?php
            if(isset($_COOKIE['name']) && isset($_COOKIE['age']))
            {
               echo $_COOKIE["name"]. "<br />";
               echo $_COOKIE["age"] . "<br />";
            }
            ?>
   </body>
</html>

Cách xoá Cookie

Để hủy (xoá) 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:

  1. Khởi tạo đè cookie name và không truyền các tham số khác vào.
  2. Thiết lập lại thời gian sống cho Cookie về số âm là thời điểm trong quá khứ.

Ở cách 1, bạn sẽ sử dụng lại hàm setcookie() chỉ truyền vào mỗi tham số của thuộc tính name và không truyền thêm bất  kỳ thuộc tính nào khác.

Cú pháp: setcookie(“cookie name”);

Nhưng đối với cách khởi tạo đè cookie name này không phải lúc nào cũng hoạt động tốt, cho nên cách tốt nhất là cách 2: thiết lập lại thời gian sống cho cookie tại thời điểm ở quá khứ.

//thiết lạp lại thời gian hết hạn 1 giờ trước
setcookie("age", "20", time() - 3600, "/", "",  0);

Kiểm tra Cookie có được bật hay không

Ví dụ sau kiểm tra xem cookie có được bật hay không. Trước tiên, hãy thử tạo một cookie bằng hàm setcookie() trong PHP, sau đó đếm số phần tử của mảng mảng $_COOKIE.

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
      <?php
      if (count($_COOKIE) > 0) {
            echo "Cookies đang được bật.";
      } else {
            echo "Cookies đang bị tắt.";
      }
      ?>
</body>
</html>

Như vậy mình đã giới thiệu qua cho các bạn về cookie và những vấn đề liên quan đến cookie mà bạn cần nắm, bài viết mình xin dừng tại đây. Nếu có những vấn đề trọng tâm liên quan đến cookie mình sẽ làm một bài riêng sau, các bạn thông cảm nhé!

Qua bài học tiếp theo chúng ta sẽ xem qua về Session và cách thao tác với Session, hãy tiếp tục series học PHP căn bản ở bài viết tiếp theo nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

The post Bài 14: Cookie là gì? Cookie trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/cookie-la-gi-cookie-trong-php/feed/ 0
Bài 4: Toán tử và biểu thức trong PHP https://tanhongit.com/toan-tu-va-bieu-thuc-trong-php/ https://tanhongit.com/toan-tu-va-bieu-thuc-trong-php/#respond Sun, 16 Feb 2020 23:00:52 +0000 https://tanhongit.com/?p=1870 Tiếp tục series học PHP căn bản, bài viết này mình sẽ nói về toán tử. Trong ngôn ngữ PHP nói riêng và các ngôn ngữ lập trình nói chung thường hỗ trợ một tập các toán tử (operator): nó có hành vi gần giống như hàm, nhưng có cú pháp và ngữ nghĩa khác […]

The post Bài 4: Toán tử và biểu thức trong PHP appeared first on Tân Hồng IT.

]]>
Tiếp tục series học PHP căn bản, bài viết này mình sẽ nói về toán tử. Trong ngôn ngữ PHP nói riêng và các ngôn ngữ lập trình nói chung thường hỗ trợ một tập các toán tử (operator): nó có hành vi gần giống như hàm, nhưng có cú pháp và ngữ nghĩa khác với hàm thông thường. Các ví dụ đơn giản thông dụng bao gồm toán tử số học (phép cộng với +), so sánh (với >), và logic (như AND hay &&).

toan tu va bieu thuc trong php
Toán tử và biểu thức trong PHP

Ngôn ngữ PHP hỗ trợ các kiểu toán tử sau

  • Toán tử số học
  • Toán tử so sánh (hay toán tử quan hệ)
  • Toán tử logic (hay toán tử luận lý)
  • Toán tử gán
  • Toán tử điều kiện (hoặc toán tử 3 ngôi)

Trước khi tham gia soi mó vào các toán tử trên, ta cần phải  biết thêm 1 khái niệm nữa đó là Biểu Thức.

Khái Niệm Về Biểu Thức

Biểu thức là sự kết hợp của một hay nhiều giá trị, hằng số, biến, toán tử, và hàm,… Mói một cách khác, Biểu Thức là một tập hợp bao gồm các toán hạng và toán tử.

Toán hạng là những giá trị, hằng số, biến,…được truyền vào trong phép toán. Toán tử (operator) là các phép tính + , – , * , / , % ,…

Toán tử số học trong PHP

Bảng dưới liệt kê các toán tử số học được hỗ trợ bởi ngôn ngữ PHP:

Giả sử biến $a giữ giá trị 10, biến $b giữ giá trị là 20 thì:

Toán tử Miêu tả Biểu Thức Ví dụ
+ $cộng hai toán hạng $a + $b kết quả là 30
Trừ toán hạng thứ hai từ toán hạng đầu $a – $b kết quả là -10
* Nhân hai toán hạng $a * $b kết quả là 200
/ Phép chia $b / $a kết quả là 2
% Phép lấy số dư $b % $a kết quả là 0
++ Toán tử tăng, tăng giá trị toán hạng thêm một đơn vị $a++ kết quả là 11
Toán tử giảm, giảm giá trị toán hạng đi một đơn vị $a– kết quả là 9

Toán tử quan hệ (so sánh) trong PHP

Bảng dưới liệt kê các toán tử so sánh được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến $a giữ giá trị 10, biến $b giữ giá trị 20, thì:

Toán tử Miêu tả Biểu Thức Ví dụ
== Kiểm tra nếu 2 toán hạng bằng nhau hay không. Nếu bằng thì điều kiện là true. ($a == $b) là false.
!= Kiểm tra 2 toán hạng có giá trị khác nhau hay không. Nếu không bằng thì điều kiện là true. ($a != $b) là true.
> Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn toán hạng bên phải hay không. Nếu lớn hơn thì điều kiện là true. ($a > $b) là false.
< Kiểm tra nếu toán hạng bên trái nhỏ hơn toán hạng bên phải hay không. Nếu nhỏ hơn thì là true. ($a < $b) là true.
>= Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không. Nếu đúng là true. ($a >= $b) là false.
<= Kiểm tra nếu toán hạng bên trái có giá trị nhỏ hơn hoặc bằng toán hạng bên phải hay không. Nếu đúng là true. ($a <= $b) là true.

Ngoài ra còn có toán tử quan hệ === dùng để so sánh giá trị giữa các biến và hằng đúng theo giá trị và kiểu dữ liệu của nó.

Ví dụ ta có $a = ’123′ là kiểu string, $b = 123 là kiểu int thì phép ($a == $b) cho kết quả là true, còn phép ($a === $b) sẽ cho kết quả là false vì 2 biến tuy giá trị bằng nhau nhưng không cùng kiểu dữ liệu.

=> Toán tử quan hệ ===mang tính chất tuyệt đối.

Toán tử luận lý logic trong PHP

Toán tử luận lý là ký hiệu dùng để kết hợp hay phủ định biểu thức có chứa các toán tử quan hệ, những biểu thức dùng toán tử luận lý trả về giá trị TRUE hoặc FALSE.

Bảng dưới đây chỉ rõ tất cả các toán tử logic được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến $a có giá trị 10 và biến $b có giá trị 20, thì:

Toán tử Miêu tả Biểu Thức Ví dụ
and Được gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì điều kiện trở thành true ($a and $b) là true.
or Được gọi là toán tử Logic OR. Nếu một trong hai toán hạng là đúng thì điều kiện trở thành true ($a or $b) là true.
&& Được gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì điều kiện trở thành true ($a && $b) là true.
|| Được gọi là toán tử Logic OR. Nếu một trong hai toán hạng là đúng thì điều kiện trở thành true ($a || $b) là true.
! Được gọi là toán tử Logic NOT. Sử dụng để đảo ngược trạng thái logic của toán hạng. Nếu điều kiện là true thì toán tử Logic NOT sẽ cho kết quả là false !($a && $b) là false.

Độ ưu tiên toán tử luận lý

Độ ưu tiên theo thứ tự như sau: NOT -> AND -> OR

Toán tử gán trong PHP

Dưới đây là những toán tử gán được hỗ trợ bởi ngôn ngữ PHP:

Toán tử Miêu tả Biểu Thức Ví dụ
= Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán hạng trái $c = $a + $b sẽ gán giá trị của $a + $b vào trong $c
+= Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó cho toán hạng trái $c += $a là tương đương với $c = $c + $a
-= Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này cho toán hạng trái $c -= $a là tương đương với $c = $c – $a
*= Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này cho toán hạng trái $c *= $a là tương đương với $c = $c * $a
/= Chia toán hạng trái cho toán hạng phải và gán giá trị này cho toán hạng trái $c /= $a là tương đương với $c = $c / $a
%= Lấy phần dư của phép chia toán hạng trái cho toán hạng phải và gán cho toán hạng trái $c %= $a là tương đương với $c = $c % $a
//ví dụ
$a = $b = $c =10; //gán các toán hạng bằng nhau

Toán tử điều kiện trong PHP

Có nhiều hơn một toán tử được gọi là toán tử điều kiện. Đầu tiên, nó ước lượng một biểu thức là true hoặc false và sau đó thực thi một trong hai lệnh đã cho tùy thuộc vào kết quả của việc ước lượng. Toán tử điều kiện có cú pháp như sau:

Toán tử Miêu tả Ví dụ
? : Biểu thức điều kiện Nếu điều kiện là true ? Thì giá trị X : Nếu không thì giá trị Y

Đặc biệt: Spaceship Operator

Toán tử Spaceship mới (<=>) được giới thiệu trong phiên bản PHP 7, có thể được sử dụng để so sánh hai biểu thức. Nó còn được gọi là toán tử so sánh kết hợp.

Toán tử Spaceship trả về giá trị sau

  • 0 nếu cả hai toán hạng đều bằng nhau
  • 1 nếu bên trái lớn hơn
  • -1 nếu bên phải lớn hơn
Toán tử <=> Tương đương
$x < $y ($x <=> $y) === -1
$x <= $y ($x <=> $y) === -1 || ($x <=> $y) === 0
$x == $y ($x <=> $y) === 0
$x != $y ($x <=> $y) !== 0
$x >= $y ($x <=> $y) === 1 || ($x <=> $y) === 0
$x > $y ($x <=> $y) === 1

Nếu sử dụng toán tử thông thường thì chỉ trả về True hoặc False. Nhưng khi cần để thực hiện tiếp một công việc đặc thù nào đó thì toán tử Spaceship sẽ nhanh hơn.

via laptrinhvienphp.com

Phân loại toán tử trong PHP

Tất cả toán tử ở trên có thể được phân thành các loại sau trong PHP:

  • Toán tử một ngôi (unary operator), mà đặt trước một toán hạng.
  • Toán tử nhị phân (binary operator), nhận hai toán hạng và thực hiện các hoạt động số học và logic đa dạng.
  • Toán tử điều kiện (ternary operator) hay là toán tử tam ngôi, nhận ba toán hạng và ước lượng hoặc biểu thức thứ hai hoặc biểu thức thứ ba, phụ thuộc vào kết quả ước lượng của biểu thức đầu tiên.
  • Toán tử gán, mà gán một giá trị cho một biến.

Độ ưu tiên của các toán tử trong PHP

Độ ưu tiên các toán tử trong PHP thiết lập thứ tự ưu tiên tính toán của một biểu thức. Hay nói cách khác, Thứ tự ưu tiên toán tử trong PHP xác định cách biểu thức được tính toán.

Ví dụ: toán tử nhân có quyền ưu tiên hơn toán tử cộng, và nó được thực hiện trước.

Loại Toán tử Thứ tự ưu tiên
Unary ! , ++ , — Phải sang trái
Tính nhân * , / , % Trái sang phải
Tính cộng + , Trái sang phải
Quan hệ < , <= , > , >= Trái sang phải
Tính bằng == , != Trái sang phải
Logic AND && Trái sang phải
Logic OR || Trái sang phải
Điều kiện ?: Phải sang trái
Gán = , += , -= , *= , /= , %= Phải sang trái

Lưu ý: Việc tính toán biểu thức số học sẽ được tính toán từ trái qua phải và ưu tiên trong ngoặc trước kết hợp với độ ưu tiên trong bảng.

Kết thúc

Bài viết trên mình đã giới thiệu cho các bạn các loại toán tử trong PHP và các biểu thức liên quan đến nó, các bạn thấy thắc mắc chỗ nào cứ để lại bình luận bên dưới bài viết để cùng thảo luận nhé! Sang bài học tiếp theo mình sẽ nói qua về các loại biểu thức điều kiện quan trọng trong PHP. Các bạn nhớ đón đọc nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

by tanhongit.net

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

The post Bài 4: Toán tử và biểu thức trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/toan-tu-va-bieu-thuc-trong-php/feed/ 0
Bài 3: Những kiểu dữ liệu trong PHP https://tanhongit.com/bai-3-nhung-kieu-du-lieu-trong-php/ https://tanhongit.com/bai-3-nhung-kieu-du-lieu-trong-php/#respond Sun, 16 Feb 2020 08:37:39 +0000 https://tanhongit.com/?p=1861 Ở Bài 2: Cú pháp PHP cơ bản, Khai báo hằng và biến trong PHP đã hướng dẫn cơ bản về cú pháp và khái kiệm về biến, hằng, tiếp tục series học php căn bản thì trong bài viết này mình sẽ giới thiệu những kiểu dữ liệu được sử dụng trong biến của […]

The post Bài 3: Những kiểu dữ liệu trong PHP appeared first on Tân Hồng IT.

]]>
Bài 2: Cú pháp PHP cơ bản, Khai báo hằng và biến trong PHP đã hướng dẫn cơ bản về cú pháp và khái kiệm về biến, hằng, tiếp tục series học php căn bản thì trong bài viết này mình sẽ giới thiệu những kiểu dữ liệu được sử dụng trong biến của ngôn ngữ PHP nhé!

kieu du lieu trong php
Những kiểu dữ liệu trong PHP

Cách chính để lưu trữ thông tin trong chương trình PHP là sử dụng một biến.

Dưới đây là những điều quan trọng nhất bạn nên biết về biến trong PHP.

  • Tất cả các biến trong PHP đều được kí hiệu với dấu $ ở đầu.
  • Giá trị của một biến là giá trị của phép gán gần đây nhất của nó.
  • Các biến được gán với toán tử =, biến ở bên trái còn biểu thức được ước lượng ở bên phải.
  • PHP làm rất tốt việc chuyển đổi tự động từ kiểu này sang kiểu khác khi cần thiết.
  • Biến trong PHP giống với Perl.

PHP có tổng tất cả 8 kiểu dữ liệu mà chúng ta sử dụng để xây dựng các biến.

  • Integer − Kiểu INT số nguyên. Ví dụ 1989
  • Double, Float− Kiểu số thực. Ví dụ 3.14159 hay 49.1.
  • Boolean − có 2 giá trị TRUE hoặc FALSE.
  • NULL − là một kiểu đặc biệt, nó chỉ có giá trị: NULL
  • String − là chuỗi các kí tự.
  • Array − là tập hợp được đặt tên và lập chỉ mục của các giá trị khác.
  • Object − là instance (sự thể hiện) của các lớp mà lập trình viên tự định nghĩa, nó có thể đóng gói các các loại giá trị và hàm khác nhau, nó dành riêng cho các lớp.
  • Resource − là một biến đặc biệt nó giữ tham chiếu tới các tài nguyên ngoại vi đến PHP (ví dụ: kết nối Database).

Kiểu dữ liệu Int (Integer)

Chúng là tất cả các số, bao gồm cả nguyên âm và nguyên dương, nhưng không bao gồm số thực. Nó là kiểu đơn giản nhất. Chúng có thể được gán cho một biến hoặc được sử dụng trong biểu thức

Phạm vi kiểu int nằm trong vùng từ -2147483648 đến 2147483648

Đặc biệt kiểu int có thể ở viết ở nhiều cơ số khác nhau. Kiểu số nguyên có thể trong hệ thập phân, hệ bát phân và hệ thập lục phân. Mặc định là hệ thập phân, hệ bát phân – số nguyên được chỉ định bắt đầu với số 0 và hệ thập lục phân bắt đầu với 0x.

<?php
$bien_int = 12345;
$bien_int_2 = -12345 + 12345;
echo $bien_int . $bien_int_2;
$thap_luc_phan = 0x1A; // số thập lục phân
?>

Ép dữ liệu sang kiểu INT

Cú Pháp(int)$ten_bien;

<?php
$bien1 = '123'; //đây là 1 biến chứa chuỗi ký tự $bien = (int)$bien; //biến khi giờ đã được ép kiểu sang int và nó có giá trị là số 123
$bien1 = (int)$bien1;
echo $bien1; //khi chạy lệnh echo thì kết quả xuất ra màn hình sẽ là số 123

$bien2 = '123a';
$bien2 = (int)$bien2;
echo $bien2; //khi chạy lệnh echo thì kết quả xuất ra màn hình sẽ là số 123, ký tự a sẽ không in được vì không thể chuyển sang số và nó sẽ xoá ký tự đó đi

$bien3 = 'a123';
$bien3 = (int)$bien3;
echo $bien3; //khi chạy lệnh echo thì kết quả xuất ra màn hình sẽ là số 0 , ký tự a sẽ không in được vì không thể chuyển sang số và nó sẽ xoá ký tự đó đi
?>

Trong đoạn code trên, các bạn chú ý vào $bien3, biến này có chứa lý tự ‘a’ đầu tiên nên nó sẽ không chuyển sang kiểu int được và tự động cắt bỏ tất cả mọi thứ đằng sau nó. Suy ra khi này nó sẽ thành biến rống, và khi nó là chuỗi rống thì sang kiểu INT nó sẽ là số 0

Để kiểm tra một biến nào đó có phải kiểu INT không bạn dùng 2 hàm is_int($bien) hoặc is_integer($bien) kết quả trả về giá trị True nếu là kiểu INT và False nếu không phải kiểu INT.

Kiểu số thực (Double, Float)

Số thực gồm hai phần, phần nguyên và phần thập phân, được ngăn cách nhau bằng dấu chấm. Kích cỡ của nó được xác định phụ thuộc vào từng platform , giá trị lớn nhất xấp xỉ 1.8e308

<?php
   $bien_double_1 = 2.2888800;
   $bien_double_2 = 2.2111200;
   $ket_qua = $bien_double_1 + $bien_double_2;
   print("$bien_double_1 + $bien_double_2 = $ket_qua <br>");
?>

Kết quả xuất ra màn hình sẽ là: 2.28888 + 2.21112 = 4.5

Ép dữ liệu sang kiểu số thực

Cũng như kiểu INT, đẻ ép 1 biến sang kiểu số thực bạn chỉ việc sử dụng (float) hoặc (double) trước biến đó. Ví dụ:

<?php
$bien = 12;
$bien = (float) $bien; // khi này biến bị ép sang kiểu float
$bien = (double) $bien; // khi này biến bị ép sang kiểu double
echo $bien;
?>

Cũng giống INT, nếu bạn muốn kiểm tra xem 1 biến có phải thuộc kiểu dữ liệu là số thực hay không thì bạn sử dụng 2 hàm này nhé: is_float($bien) hoặc is_double($bien)

Kiểu Boolean trong PHP

Kiểu dữ liệu đơn giản nhất trong PHP. Nó chỉ chứa 2 giá trị là đúng hoặc sai (TRUE hoặc FALSE). Để tạo biến kiểu boolean thì bạn gán giá trị cho nó là TRUE hoặc FALSE.

Đây là quy tắc để xác định tính đúng đắn của bất kì giá trị nào chưa phải là kiểu Boolean.

  • Nếu giá trị là một số, nó là false nếu nó bằng 0 và true nếu khác 0.
  • Nếu giá trị là một chuỗi, nó false nếu chuỗi là rỗng (không tồn tại kí tự nào) hoặc là chuỗi “0”, nếu không là true.
  • Giá trị của kiểu NULL luôn luôn là false.
  • Nếu giá trị là một array, nó false nếu nó không chứa các giá trị khác và nếu không là true. Với một object, chứa một giá trị nghĩa là có một biến thành viên đã được gán một giá trị.
  • Resource hợp lệ là true (mặc dù có một vài hàm trả về các resource khi chúng thành công, và trả về FALSE nếu thất bại).
  • Đừng sử dụng double như là Boolean.
<?php
$a = 123; // TRUE
$b = 0; // FALSE
$c = '0'; // FALSE
$d = 'a123b' // TRUE
$e = null; // FALSE
$f = ''; // FALSE
?>

Kiểu Chuỗi (String) trong PHP

Kiểu chuỗi trong PHP gồm string(chuỗi) và kiểu char(ký tự). Để khai báo chuỗi cho 1 biến, các bạn chỉ cần gán 1 chuỗi vào biến đó.

Chuỗi phải được bao quanh bằng dấu nháy đơn  hoặc dấu nháy kép . Chuỗi sử dụng nháy đơn là một chuỗi tĩnh, còn chuỗi sử dụng nháy kép là một chuỗi động, thay đổi tùy theo giá trị của biến.

Không có giới hạn về độ dài của chuỗi, có thể dài tùy ý nếu bộ nhớ cho phép.

Ví dụ:

$string_1 = "Chào mừng đến với tanhongit.net";
$string_2 = "abc 123 hello";

Các chuỗi được giới hạn bởi các dấu nháy kép được PHP xử lý bằng 2 cách sau đây:

  • Các chuỗi kí tự bắt đầu với (\) được thay thế với một kí tự đặc biệt
  • Các biến (bắt đầu với $) được thay thế bằng biểu diễn chuỗi của giá trị của nó.

Các quy tắc thay thế:

  • \n được thay thế bằng ký tự newline (dòng mới)
  • \r được thay thế bởi ký tự carriage-return, được hiểu là đưa con trỏ về đầu dòng nhưng không xuống dòng.
  • \t được thay thế bởi ký tự tab
  • $ được thay thế bằng một dấu $
  • \” được thay thế bằng một dấu nháy kép “
  • \\ được thay thế bằng một dấu nháy đơn \

Để kiểm tra một biến kiểu chuỗi (string) ta dùng hàm is_string($bien), kết quả hàm này trả về TRUE nếu đúng và FALSE nếu không đúng.

Kiểu Mảng (Array) trong PHP

Một mảng là một cấu trúc dữ liệu mà lưu giữ danh sách  các phần tử có cùng kiểu dữ liệu và nó là một trong các kiểu dữ liệu trong php có độ phức tạp tính toán cao. Riêng với PHP thì các phần tử của mảng có thể không cùng kiểu dữ liệu, và các phần tử của mảng được truy xuất thông qua các chỉ mục(vị trí) của nó nằm trong mảng.

Cú pháp

Để tạo mảng chúng ta sử dụng hàm array() trong PHP (Từ PHP 5.4 trở lên bạn chỉ cần viết giá trị trong cặp dấu [ ] cũng được)

Note: Các bạn dùng hàm var_dump($mang); để in ra các phần tử của mạng để test trong quá trình học nhé. Hàm này có thể sử dụng được tất cả các kiểu dữ liệu trong php. (Hàm var_dump chỉ dùng để test)

//cách tạo mảng 1
<?php
    $names=array("Tan","Binh","Minh");
    var_dump($names);
?>
//cách tạo mảng 2
<?php 
$names=array(
0 => 'Tan',
1 => 'Binh',
2 => 'Minh'
); 
var_dump($names); 
?>
//cách tạo mảng 3 
<?php 
$names=array(); 
$names[0] = 'Tan';
$names[1] = 'Binh';
$names[2] = 'Minh';
var_dump($names);
?>
//cách tạo mảng 4 
<?php 
$names=array(); 
$names[] = 'Tan'; 
$names[] = 'Binh'; 
$names[] = 'Minh'; 
var_dump($names); 
?>

Có 3 loại mảng trong PHP:

  •  Mảng indexed
  • Mảng associative
  • Mảng đa chiều

Các bạn sẽ xem chi tiết về mảng ở bài viết sau nhé!

Kiểu NULL trong PHP

NULL là một kiểu đặc biệt mà chỉ có một giá trị NULL. Để cung cấp cho biến giá trị NULL, đơn giản bạn gán nó như sau:

$a = null; // Khởi tạo biến $a và mang gán giá trị null
$b = (int)$a; // sau khi ép kiểu, biến $b có giá trị là ( 0 )
$c = (string)$a; // sau khi ép kiểu, biến $c có giá trị rỗng ( '' )
$d = (bool)$a; // sau khi ép kiểu, biến $d có giá trị FALSE

Giá trị của biến có thể được xóa bằng cách gán giá trị NULL cho biến đó.

Lúc bạn khởi tạo một biến và bạn gán = NULL thì sẽ hệ thông sẽ không tốn bộ nhớ để lưu trữ, nên việc sử dụng nó rất có lợi.

Theo qui ước, hằng đặc biệt NULL là viết hoa, nhưng thực sự nó là không phân biệt kiểu chữ, cho nên bạn vẫn có thể viết thường mà không bị lỗi.

Một biến mà đã được gán NULL sẽ có các thuộc tính sau:

  • Nó ước lượng là FALSE trong một ngữ cảnh Boolean.
  • Nó trả về FALSE khi được kiểm tra với hàm IsSet() trong PHP.

Kiểu Object (đối tượng)

Các bạn sẽ tìm hiểu và học về kiểu dữ liệu này ở phần lập trình hướng đối tượng OOP của PHP ở chương sau nhé!

Kiểu Resource

resource không phải là một kiểu dữ liệu thật sự. Nó được dùng để lưu trữ các tham chiếu đến các hàm hoặc cái tài nguyên bên ngoài.  Ví dụ dễ thấy nhất là kêt nối đến database.

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 3: Những kiểu dữ liệu trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/bai-3-nhung-kieu-du-lieu-trong-php/feed/ 0
Bài 2: Cú pháp trong PHP, Khai báo hằng và biến trong PHP https://tanhongit.com/bai-2-cu-phap-trong-php-khai-bao-hang-va-bien-trong-php/ https://tanhongit.com/bai-2-cu-phap-trong-php-khai-bao-hang-va-bien-trong-php/#respond Sat, 15 Feb 2020 04:50:25 +0000 https://tanhongit.com/?p=1816 Bất kì một ngôn ngữ lập trình nào đều có khái niệm về cú pháp căn bản, khái niệm về biến và hằng số và php cũng không ngoại lệ, đây là kiến thức nền tảng trong lập trình mà hầu như lập trình viên nào cũng phải học đầu tiên. Trong bài này mình […]

The post Bài 2: Cú pháp trong PHP, Khai báo hằng và biến trong PHP appeared first on Tân Hồng IT.

]]>
Bất kì một ngôn ngữ lập trình nào đều có khái niệm về cú pháp căn bản, khái niệm về biến và hằng số và php cũng không ngoại lệ, đây là kiến thức nền tảng trong lập trình mà hầu như lập trình viên nào cũng phải học đầu tiên. Trong bài này mình sẽ cùng các bạn tìm hiểu biến và hằng trong PHP nhé!

hang va bien trong php
Khai báo hằng và biến trong PHP

Cú pháp PHP cơ bản

Cú pháp PHP chính là cú pháp trong ngôn ngữ C, các bạn làm quen với ngôn ngữ C thì có lợi thế trong lập trình PHP.

  • Code PHP có thể được đặt ở bất kỳ nơi đâu trong file *.php
  • Một đoạn code PHP bắt đầu bằng <?php và kết thúc bằng ?> (short open tag <? không được khuyến khích dùng)
  • Nếu file *.php chỉ chứa thuần túy code PHP mà không có bất kỳ gì khác, chúng ta nên bỏ ?> đi, chỉ giữ lại <?php ở đầu file
  • Một câu lệnh PHP được kết thúc bằng dấu chấm phẩy (;)

Trong thư mục www, các bạn tạo một folder có tên là demo, trong folder demo đó bạn tạo 1 file là index.php và thêm đoạn code dưới vào.

<!DOCTYPE html>
<html>
<body>
    <h1>My first PHP page</h1>
    <?php
    echo "Hello World!";
    ?>
</body>
</html>

Chú ý 1: Một file .php có thể bao gồm cả HTML, CSS, JS và cả PHP. Vì vậy bắt buộc chúng ta phải có ký hiệu <?php ?> để xác định đâu là code PHP. Tuy nhiên, nếu file chỉ chứa thuần tuý code PHP mà không chứa bất kỳ ngôn ngữ nào khác thì ta nên bỏ ?> ở cuối code đi. Lợi ích của nó là giúp ngăn ngừa các khoảng trắng ngẫu nhiên hoặc các dòng trống được thêm vào phía sau ?>

Chú ý 2: Khi muốn xuất một chuỗi, bạn có thể dùng dấu nháy đơn hoặc dấu nháy kép bao quanh chuỗi đó. Nhưng có 1 lưu ý là dấu nháy đơn sẽ hiểu rằng tất cả những thành phần được bao bên trong nó sẽ luôn là chuỗi và chỉ xuất ra y hệt như vậy. Còn dấu nháy kép sẽ xem xép những thành phần bên trong nó còn có biến nào hay không, để xuất cả chuỗi lẫn biến ra trình duyệt.

Ví dụ:

Ở trường hợp 1, nếu sử dụng dấu ngoặc đơn để bao chuỗi có chứa 1 biến bên trong thì nó vẫn tính biến đó là chuỗi,

<?php 
$daylabien = "Mọi người"; //khai bao bien 
echo 'Xin chao $daylabien'; //su dung dau ngoac don
?>

Bạn sẽ thấy trình duyệt xuất ra dòng chuỗi như sau: Xin chao Mọi người

Còn về tốc độ thì dấu nháy đơn sẽ chạy nhanh hơn dấu nháy kép vì với dấu nháy kép trình biên dịch sẽ mất thêm một bước kiểm tra chuỗi bên trong có biến nào không, giống tựa như ví dụ bên trên vậy.

Comment trong PHP

Comment là đoạn văn bản bị bỏ qua bởi PHP Engine. Mục đích của các comment là giải thích đoạn mã đang làm gì. Giúp bạn có thể dễ dang edit lại code nếu sau này có kiểm tra lại

Có nhiều cách để tạo một comment trong php.

  • // Ghi chú một dòng đơn
  • # Ghi chú một dòng đơn
  • /* và */ Ghi chú một đoạn nhiều dòng. Để mở đầu đoạn ghi chú, ta dùng dấu /* và để kết thúc, ta dùng dấu */

Để lập trình bằng ngôn ngữ PHP cần chú ý những điểm sau

  • Cuối câu lệnh có dấu ;
  • Biến trong PHP có tiền tố là $
  • Mỗi phương thức đều bắt đầu { và đóng bằng dấu }
  • Khi khai báo biến thì không có kiễu dữ liệu
  • Nên có giá trị khởi đầu cho biến khai báo
  • Phải có chi chú (comment) cho mỗi feature mới
  • Sử dụng dấu // hoặc # để giải thích cho mỗi câu ghi chú
  • Sử dụng /* và */ cho mỗi đoạn ghi chú
  • Khai báo biến có phân biệt chữ hoa hay thường

Khai báo biến (VARIABLES)

Biến là một định danh, nó dùng để lưu trữ các giá trị và nó có thể dùng phép gán để thay đổi giá trị.

Khi thực hiện khai báo biến trong C, bạn cần phải biết tuân thủ quy định như: kiễu dữ liệu trước tên biến và có giá trị khởi đầu, tuy nhiên khi làm việc với PHP thì không cần khai báo kiểu dữ liệu nhưng sử dụng tiền tố $ trước biến. Cú pháp của biến bắt đầu bằng dấu đô la $ và tiếp theo là các chữ, số, dấu gạch dưới.

Các quy tắc cần lưu ý khi làm việc với biến:

  • Một biến bắt đầu bằng dấu $ và theo sau đó là tên biến
  • Tên biến bắt buộc phải bắt đầu bằng ký tự hoặc dấu _
  • Tên biến không được bắt đầu bằng ký số.
  • Tên biến chỉ có thể chứa ký tự (A-z), ký số (0-9) và dấu _
  • Tên biến có phân biệt chữ hoa và chữ thường
  • Thông thường tên biến được viết theo kiểu camelCase

Xuất phát từ những điều ở trên, khai báo biến trong PHP như sau:

<?php
$a = '';
$b = '';
?>

(Chúng ta hong cần phải xác định kiểu dữ liệu cho 1 biến trong PHP, kiểu dữ liệu sẽ tự động được xác định thông qua giá trị mà biến đó đang chứa.)

Gán giá trị cho biến

Để gán giá trị cho biến ta dùng toán tử phép gán =

$licount = 0;
$lsSQL = "Select * from tblusers where active=1";
$nameTypes = array("first", "last", "company");
$checkerror = false;

In giá trị của biến ra màn hình

Ta có thể dùng hàm echo để in giá trị của biến ra màn hình theo 2 cách:

//cách 1
$txt = "You";
echo "I love $txt!"; // phải dùng dấu ngoặc kép để xuất giá trị của biến chứa trong chuỗi
//cách 2
//Sử dụng dấu chấm để nối chuỗi lại với nhau (tương tự dấu cộng trong JS)
$txt = " You";
echo "I love " . $txt . "!";

Cả 2 cách trên đều sẽ cùng ra 1 kết quá: I love You

Phạm vi của biến

Phạm vi của biến là tầm hoạt động của biến nơi biến có thể được sử dụng sau khi đã khai báo. Có 2 loại phạm vi biến là globallocal.

Một biến toàn cục PHP có thể được truy cập ở bất kỳ đâu trong chương trình. Một biến cục bộ chỉ có thể được truy cập trong phạm vi nhất định.

Phạm vi global

Biến được khai báo ở bên ngoài một hàm và chỉ có thể được sử dụng ở bên ngoài hàm.

$x = 5; // global scope
function myTest() {
// Sử dụng biến x trong hàm sẽ gây ra lỗi
echo "<p>Giá trị biến x là: $x</p>"; //dòng này sẽ bị lỗi
}
myTest();
echo "<p>Giá trị biến x là: $x</p>";

Vậy, để có thể sử dụng được biến global bên trong một hàm, ta dùng từ khóa globaltrước tên biến khi sử dụng biến bên trong hàm.

$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // kết quả xuất ra sẽ là 15

Một hướng khác, PHP lưu trữ giá trị của tất cả các biến global trong một mảng là $GLOBALS[index], trong đó index là tên của biến. Mảng này có thể được truy xuất bên trong hàm và có thể được dùng để cập nhật lại giá trị cho biến global một cách trực tiếp.

$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15

Thông thường, khi 1 hàm đã chạy xong, tất cả các biến local sẽ bị huỷ. Từ ví dụ trên, nếu các bạn gọi hàm myTest() nhiều lần thì trên màn hình cũng chỉ xuất ra liên tục đáp án là số 5. Vì các biến local sẽ bị huỷ sau khi kết thúc hàm.

Khi muốn các biến local không bị hủy đi sau khi kết thúc hàm, ta dùng từ khóa “static” lúc khai báo biến.

function myTest() { 
static $x = 5; // local scope 
echo "<p>Giá trị biến x là: $x</p>"; 
$x++;
} 
myTest();
myTest();
myTest();
myTest();

Trong hàm trên mình gán static cho biến x và sau đó cho x tăng dần mỗi khi kết thúc hàm. Nhờ gán static vào biến mà sau khi kết thúc hàm myTest(), giá trị của nó vẫn được giữ lại để cộng dồn cho các lần chạy tiếp theo. Vì vậy kết quả trên màn hình lúc này sẽ tăng dần như sau:

giá trị biến trong php

Superglobals

PHP hỗ trợ thêm các biến superglobals được khai báo sẵn (có thể được sử dụng ở bất kỳ phạm vi nào):

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

Các biến superglobals có thể sử dụng ở bất kỳ phạm vi nào trong PHP.

Khai báo hằng (CONSTANTS)

Hằng cũng là một biến nhưng bạn không thể thay đổi giá trị của nó. Tuy nhiên cách khai báo biến và hằng số thì lại khác nhau.

Quy định khi đặt hằng:

  • Khi hằng được khai báo, giá trị của nó sẽ không để bị thay đổi hoặc hủy.
  • Mặc định, hằng sẽ có phạm vi global và có thể được sử dụng ở bất kỳ đâu sau khi khai báo.
  • Tên hằng phải bắt đầu bằng ký tự hoặc dấu _ và không có dấu $ như biến.
  • Thông thường, tên hằng sẽ được viết IN toàn bộ, các từ sẽ cách nhau bằng dấu _

define(name, value, case-insensitive)

  • name: tên hằng
  • value: giá trị của hằng
  • case-insensitive: mang giá trị true/false, dùng để xác định xem tên hằng có cần phân biệt chữ hoa hay thường hay không. Giá trị mặc định là false nghĩa là có phân biệt chữ hoa và chữ thường. Nếu giá trị là true nghĩa là không phân biệt chữ hoa và chữ thường.
define("GREETING", "Welcome to FIT-TDC HCM <3 !", true);
function myTest() {
echo GREETING; // xuất ra màn hình giá trị của hằng.
}
myTest();

Hằng số Magic trong PHP

PHP cung cấp một số lượng lớn các hằng số được định nghĩa trước để bất kỳ script nào cũng có thể sử dụng nó.

Có 5 hằng số magic, thay đổi tùy thuộc vào nơi chúng được sử dụng. Ví dụ, giá trị của __LINE__ phụ thuộc vào dòng mà nó được sử dụng trong script của bạn. Các hằng đặc biệt này là phân biệt kiểu chữ.

Bảng dưới liệt kê một số hằng magic trong PHP:

Tên Miêu tả
__LINE__ Dòng hiện tại của file
__FILE__ Đường dẫn đầy đủ và tên đầy đủ của file. Nếu sử dụng bên trong một include thì tên của file được include sẽ được trả về. Từ PHP 4.0.2, __FILE__ luôn luôn chưa một đường dẫn tuyệt đối, trong khi ở phiên bản cũ hơn chúng chứa đường dẫn tương đối trong một số trường hợp
__FUNCTION__ Tên của hàm. (Được thêm trong PHP 4.3.0) Như PHP 5, hằng số này trả về tên của hàm như nó đã khai báo trước đó (phân biệt kiểu chữ). Trong PHP 4, giá trị của nó luôn là chữ in thường
__CLASS__ Tên của lớp. (Được thêm trong PHP 4.3.0) Như PHP 5, hằng số này trả về tên của lớp như nó đã khai báo trước đó (phân biệt kiểu chữ). Trong PHP 4 giá trị của nó luôn là chữ in thường
__METHOD__ Tên phương thức lớp. (Được thêm trong PHP 5.0.0) Tên phương thức này được trả về như đã khai báo trước đó (phân biệt kiểu chữ).

Qua bài viết mình mong các bạn có thể biết được cách khai báo 1 biến, hằng trong php, nhớ những quy tắc khi đặt biến để không bị lỗi khi code.

Xem thêm:

CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 2: Cú pháp trong PHP, Khai báo hằng và biến trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.com/bai-2-cu-phap-trong-php-khai-bao-hang-va-bien-trong-php/feed/ 0