Tìm hiểu về hàm và xây dựng hàm trong php
Hàm là một phương pháp lập trình hướng thủ tục trong ngôn ngữ PHP và các ngôn ngữ bậc cao khác, hiểu được nó các bạn mới có thể tiếp tục học những kiến thức như lập trình đối tượng, vì thế tôi hy vọng các bạn cố nắm vững nó nhé. Trong bài này chúng ta sẽ tìm hiểu các nội dung sau:
- Cách sử dụng hàm (xem thêm tại php.net)
- Cấu trúc của một hàm
- Các cách gọi hàm (gọi bằng giá trị và tham chiếu)
- Các quy tắc và phạm vi của hàm
1. Cách Sử Dụng Hàm Trong PHP
Hàm trong PHP dùng để thực hiện một khối lệnh liên tiếp có điểm đầu và điểm cuối. Một hàm được xác định thực hiện một công việc cụ thể nào đó, giả sử tôi viết một hàm kiểm tra số chẵn hay số lẻ thì mục đích của hàm đó là kiểm tra một số là số chẵn hay lẻ. Đặc biệt hàm có thể gọi ở nhiều nơi khác nhau.
2. Cấu trúc của một hàm Trong PHP
Cú pháp tổng quát khai báo hàm trong PHP là:
Dạng 1:
1
2
3
4
5
| function func_name( $vars ) { // các đoạn code return $val ; } |
func_name là tên của hàm,
$vars
là các biến sẽ truyền vào trong hàm, return $val
là hàm sẽ trả về giá trị $val
. Nếu hàm không có trả về giá trị nào thì ta không có dòng return này.Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| // Số cần kiểm tra $number = 12; // gọi đến hàm kiem_tra_so_chan và truyền biến cần kiểm tra vào // vì hàm kiem_tra_so_chan trả về true/false nên ta có thể đặt nó trong câu điều // kiện if như thế này if (kiem_tra_so_chan( $number )){ echo 'Số chẵn' ; } else { echo 'Số lẽ' ; } // Hàm kiểm tra số chẵn sẽ trả về true nếu $number là số chẵn và ngược lại. // biến $number gọi là biến truyền vào hàm, đó chính là biến cần kiểm tra function kiem_tra_so_chan( $number ) { if ( $number % 2 == 0) return true; else return false; } |
$number
. Trong chương trình chính sẽ gọi đến hàm kiem_tra_so_chan và kiểm tra hàm này trả về true hay false, nếu true thì xuất ra màn hình Số chẵn, ngược lại xuất ra màn hình số lẽ. Hàm kiem_tra_so_chan gọi là hàm có kết quả trả về vì trong thân hàm có return. Nếu bạn muốn hàm kiem_tra_so_chan không trả về giá trị mà xuất ra màn hình luôn, tức là trong chương trình chính chỉ cần gọi tới và truyền biến vào là xong. Ta làm như sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| // Số cần kiểm tra $number = 12; // gọi đến hàm kiem_tra_so_chan và truyền biến cần kiểm tra vào kiem_tra_so_chan( $number ); // Hàm này có nhiệm vụ xuất ra màn hinh số chẵn nếu biến truyền vào ($number) // là Số chẵn, và ngược lại sẽ xuất ra màn hình là Số lẽ function kiem_tra_so_chan( $number ) { if ( $number % 2 == 0) { echo 'Số chẵn' ; } else { echo 'Số lẽ' ; } } |
Truyền nhiều biến vào hàm trong php
Các biến truyền vào hàm trong php có thể là các kiểu bất kỳ (tham khảo trong bài các kiểu dữ liệu trong php). Và số biến truyền vào là không giới hạn, như ví dụ trên thì chỉ có 1 biến truyền vào là number, nhưng thực tế bạn có thể truyền nhiều biến vào bằng cách mỗi biến cách nhau bởi dấu phẩy.
Ví dụ:
1
2
3
4
| function tinhtong( $a , $b ) { return $a + $b ; } |
1
2
3
4
5
6
7
8
9
| $so1 = 12; $so2 = 13; echo tinhtong( $so1 , $so2 ); function tinhtong( $a , $b ) { return $a + $b ; } |
Gán giá trị mặc định cho biến truyền vào
Nếu một hàm trong php bạn khai báo có 2 biến truyền vào mà lúc sử dụng bạn chỉ truyền có 1 biến vào thì hệ thống sẽ báo lỗi ngay. Trong thực tế bạn muốn có những hàm không ràng buộc phải bắt buộc truyền đủ biến vào, vì thế nó cũng cấp cho chúng ta một chức năng là truyền giá trị mặc định cho biến trong các hàm, mời các bạn tham khảo ví dụ sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $so1 = 12; $so2 = 13; // chỉ truyền 2 đối số vào echo tinhtong( $so1 , $so2 ); // $c có một giá trị mặc định // hàm này tính tổng của 3 số function tinhtong( $a , $b , $c = false) { $tong = $a + b; if ( $c != false){ // nếu $c được truyền vào (vì false là giá trị mặc định) $tong = $tong + $c ; // thì thực hiện cộng thêm $c } return $tong ; } |
Hàm tinhtong có nhiệm vụ tính tổng cả 3 số, nếu $c không truyền vào thì chỉ tính tổng của 2 số thôi
Tham số thực và tham số hình thức
Các biến ta định nghĩa trong hàm gọi là tham số hình thức, còn biến mà ta truyền vào ở chương trình chính gọi là tham số thực.
1
2
3
4
5
6
7
8
9
| // Chuong trinh chinh $so = 12; $flag = kiem_tra_so_nguyen_to( $so ); // ham kiem tra so nguyen to function kiem_tra_so_nguyen_to( $number ) { // code } |
$number
trong hàm kiem_tra_so_nguyen_to gọi là tham số hình thức, biến $so trong chương trình chính gọi là tham số thực.Biến toàn cục và biến cục bộ
Định nghĩa này không có gì lạ đối với các ngôn ngữ như c, c++, đối với PHP thì cách dùng nó hơi khác so với các ngôn ngữ này. Biến toàn cục chính là các biến ta khai báo ở chương trình chính, còn biến cục bộ là biến ta khai báo ở các hàm.
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| // Biến toàn cục $bien_toan_cuc = 12; function kiem_tra() { // Biến cục bộ $bien_cuc_bo = 13; // Lấy biến toàn cục global $bien_toan_cuc ; // Lấy số dư biến cục bộ chia cho biến toàn cục và // kiểm trả về true nếu số dư = 0, ngược lại trả về false if ( $bien_cuc_bo % $bien_toan_cuc ){ return true; } else { return false; } } |
Biến Tĩnh
Biến tĩnh là các biến cố định bên trong các hàm, không giống như các biến toàn cục chúng không được biết đến bên ngoài hàm tức là chỉ biết đến bên trong hàm nhưng giá trị của chúng sẽ lưu lại sau mỗi lần gọi hàm. Để khai báo là một biến tĩnh ta dùng từ khóa static $tenbien;
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
| // ham kiem tra function kiem_tra() { // bien tinh static $a = 0; $a ++; echo $a ; } kiem_tra(); kiem_tra(); |
3. Các Cách Gọi Hàm Trong PHP
Truyền bằng giá trị:
Mặc định tất cả các đối số truyền vào hàm đều là truyền bằng giá trị. Điều này có nghĩa là khi các đối số được truyền đến hàm được gọi, giá trị được truyền thông qua các biến tạm (tham số hình thức). mọi thao tác chỉ thực hiện trên biến tạm này nên nó không hề tác động đến biến chính của mình. Điều này có nghĩa là nếu truyền bằng giá trị thì trong hàm nếu ta tác động đến giá trị biến truyền vào thì sau khi thoát khỏi hàm giá trị đó không thay đổi.
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // Biến $a = 1; // Hàm tăng giá trị tham số truyền vào lên 1 function tang_len_1( $a ) { return $a + 1; } // Xuất giá trị trả về của hàm echo tang_len_1( $a ); // Xuất giá trị của biến echo $a ; |
Truyền bằng tham chiếu:
Khi các đối số được truyền bằng giá trị thì giá trị của các đối số của hàm đang gọi không bị thay đổi. Tuy nhiên đôi khi bạn muốn những giá trị đó thay đổi theo thì lúc này bạn phải truyền biến vào hàm dạng tham chiếu.
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| // Biến $a = 1; // Hàm tăng giá trị tham số truyền vào lên 1 function tang_len_1(& $a ) { $a = $a + 1; return $a ; } // Xuất giá trị trả về của hàm echo tang_len_1( $a ); // Xuất giá trị của biến echo $a ; |
$a
đã bị thay đổi.
Sự khác biệt ở đoạn code này so với đoạn code trên là biến $a ở hàm tng_len_1 có dấu &, đây chính là cú pháp trong PHP báo cho trình biên dịch biết đó là một biến ở dạng tham chiếu.
4. Các Quy Tắc Và Phạm Vi Của Hàm
Một hàm có thể gọi tới một hàm, 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ụ:
Ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| // Danh sách các hàm function A() { B(); } function B() { C(); } function C() { echo 'C' ; } // Chương trình chính gọi đến hàm A A(); // Kết quả xuất ra màn hình là 'C' |
Thường thì người ta viết các hàm vào một file php riêng, và chương trình chính vào một file PHP riêng. Trong chương trình chính muốn sử dụng hàm nào thì gọi hàm đó vào. Vấn đề này tôi sẽ nói đến trong một bài khác nhé.
Kết Thúc Bài Học
Trong bài học này các bạn đã được thao tác với Hàm trong php, một định nghĩa trong lập trình cấu trúc và cũng là một bước ngoặc để các bạn có thể học sang lập trình hướng đối tượng, vì thế hãy nắm vững nó trước khi qua các bài sau nhé.
Tìm hiểu về hàm và xây dựng hàm trong php
Reviewed by Unknown
on
05:20
Rating:
Không có nhận xét nào: