Ngu ngơ học làm web (57) - Hàm trong PHP

Tiếp theo của: Ngu ngơ học làm web (56) - Bài tập “Mô phỏng máy ATM”
------

Phần 57.       Hàm trong PHP

Đây là clip số 17: hàm trong PHP


Hàm là tập hợp các câu lệnh được xây dựng để thực hiện một chức năng cụ thể. Khối lệnh này chỉ cần viết một lần, và có thể sử dụng lại nhiều lần trong chương trình.

Có hai loại hàm trong PHP: hàm do PHP cung cấp sẵn và hàm do người lập trình tự định nghĩa. Ở phần này sẽ học về hàm tự định nghĩa.

Ví dụ sau đây là định nghĩa và gọi hàm createBox(),

<?php
                        function createBox () { //định nghĩa hàm
                                    echo '<div style="width: 200px; height: 300px; border: 1px solid #0DD;">';
                                    echo '<h1>Hàm trong PHP</h1>';
                                    echo '</div>';
                        }
                        createBox(); //gọi hàm
                        createBox(); //gọi hàm
            ?>

Để ý, hàm createBox ở trên không có tham số, và cũng không trả về giá trị.

Giờ sẽ thay đổi hàm createBox() để cho nó trả về một giá trị, ví dụ,

<?php
            function createBox () {
                        $value = '<div style="width: 200px; height: 300px; border: 1px solid #0DD;">';
                        $value .= '<h1>Hàm trong PHP</h1>';
                        $value .= '</div>';

                        return $value; //trả về giá trị
            }
            $result = createBox();
            echo $result;
?>

Sau đây là ví dụ hàm trả về giá trị kiểu true/false,

function checkNumber() {
                                    $value = 14;
                                    if($value % 2 == 0) { return true; }
                                    else { return false; }
                        }
                        $result = checkNumber();
                        if($result == true) {
                                    echo 'Số chẵn';
                        }else {echo 'Số lẻ'; }

Đây là clip số 18: hàm trong PHP (tiếp theo)


Truyền một tham số cho hàm, ví dụ:

function checkNumber($value){
                                    if($value % 2 == 0) { return true; }
                                    else { return false; }
                        }

Truyền nhiều tham số cho hàm, ví dụ:

function checkNumber($value1, $value2){}

Để tránh lỗi khi tham số không có giá trị, nên gán giá trị mặc định cho tham số, ví dụ:

function checkNumber($value1 = 0, $value2 = 0){}

Biến cục bộ (local): là biến được khai báo ở trong hàm, và chỉ có thể được truy cập ở trong hàm đó. Biến cục bộ sẽ bị xóa sau khi hàm đó thực thi xong.

Biến toàn cục (global): là biến được khai báo bên ngoài tất cả các hàm. Được sử dụng tại mọi vị trí trong chương trình. Tuy nhiên, nếu muốn truy cập biến toàn cục trong một hàm, thì cần phải khai báo lại bằng từ khóa global. Ví dụ,

<?php
                        $globalVar = 10;
                        function testFunction(){
                                    global $globalVar;
                                    echo $globalVar;
                        }
                        testFunction();
            ?>

Hoặc để truy cập biến global trong một hàm, có cách khác là sử dụng biến $GLOBALS của PHP. Ví dụ,

            <?php
                        $globalVar = 10;
                        function testFunction(){
                                    echo $GLOBALS['globalVar'];
                        }
                        testFunction();
            ?>

Phân biệt truyền tham biến và truyền tham trị,

- Truyền tham biến: sau khi kết thúc hàm, giá trị của biến không bị thay đổi. Hiểu nôm na là làm việc trên bản sao của biến.

- Truyền tham trị: việc thay đổi giá trị của biến ở trong hàm sẽ làm thay đổi đến giá trị của biến. Hiểu nôm na là làm việc trên chính biến đó.

Ví dụ cú pháp của truyền tham trị: function testFunction($n1){}

Ví dụ cú pháp của truyền tham biến: function testFunction(&$n1){}

Ví dụ minh họa về truyền tham biến, tham trị,

<?php
                        $n1 = 2;
                        $n2 = 3;
                        function testFunction($n1, &$n2){
                                    $n1 = $n1*2;
                                    $n2 = $n2*2;
                        }
                        testFunction($n1, $n2);
                        echo '$n1 = ' . $n1 . '<br>';
                        echo '$n2 = ' . $n2;
            ?>

Đây là clip số 19: hàm trong PHP (tiếp theo)


Lệnh include và require cùng có chức năng là triệu gọi mã nguồn từ một tập tin khác vào tập tin hiện tại. Tuy nhiên, điểm khác nhau giữa hai lệnh này là, trong quá trình triệu gọi, nếu gặp lỗi thì:

- Lệnh include: sẽ tiếp tục thực hiện chương trình hiện tại.

- Lệnh require: sẽ ngừng thực hiện chương trình hiện tại.

Lệnh include_once: nếu đã có lệnh triệu gọi, với tên tập tin trùng với tên tập tin trong lệnh này, thì lệnh này sẽ được bỏ qua.

Lệnh require_once: nếu đã có lệnh triệu gọi, với tên tập tin trùng với tên tập tin trong lệnh này, thì lệnh này sẽ được bỏ qua.


Ví dụ về lệnh include và require: include (“fileName.php”); require(“fileName.php”); hoặc include “fileName.php”; require “fileName.php”;
-----------
Cập nhật [8/9/2020]
-----------
Xem thêm: