Search…

Hàm trong PHP

08/09/20203 min read
Tìm hiểu về hàm trong PHP.

Hàm trong PHP

Hàm do người dùng định nghĩa

Cú pháp cơ bản của một hàm:

<?php
    function NameFunction($parameter_1, parameter_2, /* ..., */ $parameter_n)
    {
         function_body
    }
?>

Lưu ý:

  • Trong PHP để khai báo một hàm ta luôn có từ function đi trước tên hàm.
  • Một hàm hợp lệ là tên hàm phải được bắt đầu bằng các chữ cái hoặc dấu gạch dưới _.
  • Hàm không cần được định nghĩa trước khi gọi, trừ khi một hàm định nghĩa có điều kiện thì phải xử lý điều kiện trước khi gọi hàm. Xem tiếp nội dung ở hai ví dụ dưới đây.

Ví dụ hàm định nghĩa có điều kiện:

<?php

    $condition = true;

    /* Không thể gọi hàm Hello ở đây 
    Nhưng có thể gọi hàm Welcome */
    Welcome();

    if ($condition) 
    {
      function Hello()
      {
         echo "Hello ...";
      }
    }

    /* Tại đây có thể gọi hàm Hello */

    if ($condition) Hello();

    function Welcom() 
    {
        echo "Welcome to ...";
    }
?>

Ví dụ hàm được định nghĩa trong một hàm khác:

<?php
    function Hello() 
    {
        function Welcome() 
        {
            echo "Welcome to ...";
        }
    }

    // Không thể gọi hàm Welcome vì nó được định nghĩa ở trong hàm Hello.
    Hello ();

    // Tại đây có thể gọi hàm Welcome.
    Welcome();
?>

Hàm với tham số

  • Hàm trong PHP còn cho phép truyền một tham số.
  • Số lượng tham số tùy thuộc vào nhu cầu sử dụng của lập trình viên.
  • Những tham số được truyền vào làm việc như một biến ở trong hàm.
<?php
    function sum($numFirst, $numSecond)
    {
        $sum = $numFirst+ $numSecond;
        echo "Sum : "$sum;
    }
         
    sum(11, 21); // In ra màn hình giá trị: 32
?>

Ngoài ra, hàm trong PHP còn giúp lập trình viên có thể mặc định giá trị của tham số.

<?php
    function FunctionWithParameters($str = "Hello")
    {
        echo $str." .";
    }

    FunctionWithParameters();
    FunctionWithParameters(null);
    FunctionWithParameters("Welcome to ");
?>

Kết quả:

Hello .
 .
Welcome to .

Phân tích:

  • Dòng 6: Gọi hàm FunctionWithParameters: Lúc này giá trị của $str được mặc định là Hello nếu bạn không truyền tham số vào hàm.
  • Dòng 7-8: Gọi hàm FunctionWithParameters với giá trị của $str lần lượt là nullWelcome to  ... .

Hàm với tham số là một tham chiếu

Xét ví dụ hoán vị hai số dưới đây:

<?php
    $numberFirst = 10;
    $numberSecond = 20;

    function swap($numFirst, $numSecond)
    {
        $tmp       = $numberFirst;
        $numFirst  = $numSecond;
        $numSecond = $tmp;
    }

    swap($numberFirst, $numberSecond);

    echo $numberFirst;
    echo $numberSecond;
?>

Phân tích:

  • Ở ví dụ trên hiện thực một hàm có tác dụng đổi giá trị giữa hai biến. Nhưng vấn đề nảy sinh ở hàm trên là giá trị của $numberFirst = 10$numberSecond = 20.
  • Lý do là khi là hàm swap sẽ tự khởi tạo ra hai biến mới lần lượt là $numFirst$numSecond có cùng giá trị lần lượt với $numberFirst, $numberSecond. Vì vậy trong logic của hàm chỉ sẽ hoán đối giá trị của $numFirst$numSecond.

Vậy, muốn có thể hoán vị giá trị của hai biến $numberFirst$numberSecond thì cần truyền tham số là một tham trị.

<?php
    $numberFirst = 10;
    $numberSecond = 20;

    function swap(&$numFirst, &$numSecond)
    {
        $tmp       = $numberFirst;
        $numFirst  = $numSecond;
        $numSecond = $tmp;
    }

    swap($numberFirst, $numberSecond);

    echo $numberFirst;
    echo $numberSecond;
?>

Vậy muốn đổ giá trị của biến trong hàm bạn cần sử dụng toán tử tham chiếu &.

Tổng kết

Trong lập trình, việc sử dụng hàm là kiến thức cơ bản và rất quan trọng. Để cho code tối ưu và dễ hiểu thì tùy vào cách sử dụng hàm nhưng nên tránh lạm dụng dùng hàm.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024