[PHP căn bản] Bài 18 – Xây dựng một hàm do người dùng định nghĩa (custom function) trong PHP (phần 2)

Trong bài này, chúng ta sẽ tiếp tục tìm hiểu sâu hơn về hàm do người dùng định nghĩa.
B1: Tạo file bai18.php trong \wamp\www.

Phạm vi biến

Theo mặc định, các biến được sử dụng bên trông một hàm thì có phạm vi cục bộ(local) – sự thay đổi của chúng chỉ có giá trị bên trong thân hàm.
Tuy nhiên PHP cũng hỗ trợ người lập trình bằng cách đưa ra từ khóa global khi được áp dụng với một biến bên trong hàm nhằm biến chúng thành các biến toàn cục(global), có giá trị ở bên trong lẫn bên ngoài hàm.
B2: Nhập đoạn code sau
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<html>
<head>
<title>Bài 18 - Hàm</title>
</head>
 
<body>
<?php
     
    //Hàm changePointValue1
    //Hàm này sử dụng biến point nhưng không có từ khóa global đứng trước
    function changePointValue1()
    {
        $point = 50.12;
    }
     
    //Hàm changePointValue2
    //Hàm này sử dụng biến point nhưng có từ khóa global đứng trước
    function changePointValue2()
    {
        global $point;
        $point = 1975;
    }
     
    //Khai báo biến point bên trong thân chương trình chính
    $point = 2013;
     
    //in ra biến point mặc định ban đầu
    echo "Biến point được khai báo ban đầu có giá trị: ".$point;
 
    echo "<br />";
         
    //gọi hàm changePointValue1
    changePointValue1();
     
    //in ra biến point sau khi gọi hàm changePointValue1
    echo "Biến point sau khi gọi hàm changePointValue1 có giá trị: ".$point;
 
    echo "<br />";
     
    //gọi hàm changePointValue2
    changePointValue2();
     
    //in ra biến point sau khi gọi hàm changePointValue2
    echo "Biến point sau khi gọi hàm changePointValue2 có giá trị: ".$point;
 
     
?>
</body>
</html>
B3: Mở trình duyệt với đường dẫn http://localhost/bai18.php
1

Hàm đệ quy

Hàm đệ quy là một hàm liên tục gọi chính nó cho đến khi một điều kiện được thỏa mãn. Nói một cách nôm na, nó cũng có chức năng tương tự như vòng lặp vậy.
B4: Nhập đoạn code sau
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
<title>Bài 18 - Hàm</title>
</head>
 
<body>
<?php
    //Xây dựng hàm đệ quy tinhTong
    function tinhTong($number)
    {
        //Nếu tham số truyền vào bằng 0 thì đưa luôn ra kết quả bằng 0;
        if($number == 0)
            return $number;
        //Ngược lại thì tính tổng
        else
            return $number + tinhTong($number-1);
    }
     
    //Tính tổng từ 0-9
    echo tinhTong(9);
?>
</body>
</html>
B5: Refresh lại trình duyệt
1