Bài 14: Xây dựng hàm trong php

Trong các ngôn ngữ lập trình hàm được chia làm nhiều loại. I. Hàm hệ thống(hàm có sẵn) : Là các hàm được xây dựng sẵn và người lập trình chỉ việc sử dụng mà không cần phải xây dựng hoặc quan tâm tác hàm này sẽ làm như thế nào để có kết quả. Ví dụ : Hàm die(), explode(), implode()... ...

Trong các ngôn ngữ lập trình hàm được chia làm nhiều loại.

I. Hàm hệ thống(hàm có sẵn):

Là các hàm được xây dựng sẵn và người lập trình chỉ việc sử dụng mà không cần phải xây dựng hoặc quan tâm tác hàm này sẽ làm như thế nào để có kết quả.

Ví dụ: Hàm die(), explode(), implode()...

II. Hàm tự định nghĩa.

Là các hàm mà người lập trình phải tự xây dựng nên hay là các hàm không có trong danh sách các hàm có sẵn của ngôn ngữ lập trình nói chung và PHP nói riêng. Mặc định nếu chúng ta gọi các hàm này trong khi chúng ta không định nghĩa hàm thì chương trình sẽ gặp lỗi.

Ví dụ:

// Định dạng số
function formatNumber($number){
    return number_format($number,2);
}

Nhưng dù là hàm có sẵn hay hàm do chúng ta tự định nghĩa thì hàm cũng được phân ra một số các loại hàm như sau.

  • Hàm có tham số.
  • Hàm không có tham số.
  • Hàm có giá trị trả về.
  • Hàm không có giá trị trả về.

Tiếp tục chúng ta sẽ làm rõ tham số khái niệm trong hàm.

Tham số là gì: Thì hiểu một cách đơn giản thì tham số là các biến được chúng ta truyền vào hàm.

Có hai lại tham số là:

  • Tham số hình thức:
  • Tham số thực

Tham số hình thức: Là tham số được khai báo trong phần danh sách các tham số trong khai báo Hàm.Kiểu dữ liệu của tham số hình thức sẽ quyết định kiểu giá trị cho tham số thực tương tứng.

Ví dụ: $number được gọi là tham số hình thức .

function formatNumber($number){
    return number_format($number,2);
}

Tham số thực: Chỉ đến các biến được truyền cho hàm trong các lời gọi hàm tương ứng. Mỗi tham số thực tương ứng với một tham số hình thức.

Ví dụ: $totalGrand được gọi là tham số thực

$totalGrand = 1000000;
echo formatNumber($totalGrand);

Chú ý: Bạn cần phân biệt biến được truyền theo tham trị và truyền theo tham biến.

1. Cú pháp khai báo hàm

Để khai báo hàm các bạn làm như sau.

function myFunction($param){
    // Xử lý chức năng trong Hàm
}

Trong đó:

  • function  là từ khóa định nghĩa hàm
  • myFunction  là tên hàm của bạn
  • $param  là tham số đầu vào của hàm. Có thể có một hoặc nhiều hoặc không có tham số nào
  • Phần nội dung của Hàm được nằm trong cặp dấu {…}

2. Hàm có tham số.

Tham số hàm được khai báo ở sau tên hàm và bên trong dấu ngoặc đơn.

Cú pháp:

function function_name($tham_so_1, $tham_so_2[, $tham_so_n])
{
    //Khối lệnh thực thi;
}

Ví dụ: Xây dựng hàm kiểm tra một số nguyên là số chẵn hay số lẻ.

// Định dạng số
function kiem_tra_so_chan($number){
    if($number % 2 == 0)
        echo 'Số chẵn';
    else
        echo 'Số lẻ';
}

$number = 12;
kiem_tra_so_chan($number); // return số chẵn

$number = 11;
kiem_tra_so_chan($number); // return số lẻ

3. Hàm không có tham số.

Là các hàm bên trong dấu () khồng có tham số nào được truyền vào.

function function_name()
{
    //khối lệnh cần thực thi;
}

Ví dụ: Xây dựng hàm hiển thị thời gian.

function hien_thi_thoi_gian(){
    return date('d/m/Y h:i', time());
}

echo hien_thi_thoi_gian();
//Kết quả : 05/02/2017 02:06

4. Hàm có giá trị trả về.

Sau khi thực hiện xong hàm thì hàm sẽ trả về một giá trị nào đấy thông qua câu lệnh return được đặt ở trong hàm.

Cú pháp:

function function_name($param){
    // Xử lý chức năng trong Hàm
    return $value;
}

Ví dụ:

function formatNumber($number){
    return number_format($number,2);
}

$totalGrand = 1000000;
$ret = formatNumber($totalGrand);
echo $ret;

5. Hàm không có giá trị trả về.

Kết quả thực thi được hiển thị ngay trong hàm(Thông qua câu lệnh hiển thị)

Cú pháp:

function function_name($param){
    // Xử lý chức năng trong Hàm
    echo $value;
}

Ví dụ:

function hien_thi_thong_bao($message){
    echo 'Thông báo. '.$message.' !';
}

$message = 'Bây giờ là 12h';
hien_thi_thong_bao($message);
//Kết quả : Thông báo. Bây giờ là 12h;

6. Quy tắc và phạm vi của hàm

Trong khuôn khổ bài viết này mình chỉ xét ở hai khía cạnh.

  • Hàm không thuộc về một đối tượng cụ thể.
  • Hàm thuộc về một đối tượng cụ thể.

Quy tắc chung: Một hàm có thể gọi tới một hàm khác hoặc chính nó, tức là trong phần thân của hàm A có thể gọi đến hàm B, và trong thân hàm B có thể gọi đến hàm C. Đây chính là hàm gọi hàm.

Ví dụ:

function A(){
    B();
} 
function B(){
    C();
}
function C(){
    echo 'C';
}

A();
// Kết quả xuất ra màn hình là 'C'

Nếu hàm thuộc về một đối tượng cụ thể thì khi ta muốn bắt đầu một lời gọi tới các hàm/ thì ta phải khai khởi tạo đối tượng đó.

  • Bước 1. Khởi tạo đối tượng
  • Bước 2. Truy xuất tới hàm thông qua đối tượng chúng ta khởi tạo. 

P/s: Trong nội dung bài viết này mình không để cập tới mức truy cập của một hàm, thuộc tính trong một đối tượng. Mức truy cập thuộc tính và phương thức trong PHP

Ví dụ:

class Number{
		
    // Phương thức định dạng
    function format($number){
        return number_format($number,2);
    }
    // Phương thức tính tổng hai số
    function Sum($a, $b){
        return $a+$b;
    }
}

// Khởi tạo đối tượng Number
$N = new Number();

$a = 10;
$b = 10;
echo $N->Sum($a, $b);

III. Tổng kết

Việc xây dựng hàm là một phần không thể thiếu trong các ngôn nghữ lập trình hiện đại. Nó có rất nhiều ưu điểm.

  • Mã nguồn sáng hơn do không phải viết đi viết lại một đoạn code giống nhau.
  • Có thể dùng lại ở nhiều nơi.
  • Rễ ràng debug và nâng cấp khi gặp lỗi.
  • Bảo mật hệ thống tránh rủi ro & an toàn dữ liệu.
0