func_get_arg, func_get_args và func_num_args là hàm gì?

Chào các bạn, hôm nay NgocTan’s blog sẽ giới thiệu với các bạn các hàm func_get_arg() – func_get_args() – func_num_args()
Với các bạn đang học các PHP cơ bản, khi chưa được tiếp cận với các framework thì các bạn sẽ chưa thấy hết được công dụng của các hàm được kể ở trên.
Tuy nhiên, khi bạn đã hiểu được các công dụng cực kỳ thú vị của các hàm này thì mình đảm bảo các bạn sẽ rất là thích các hàm trên.
Ok, giới thiệu sơ qua vậy được rồi, chúng ta cùng đi vào chi tiết nha. Trước hết, có khi nào bạn tự hỏi bản thân là có cách nào khai báo một hàm với các biến truyền vào là vô hạn không? Ví dụ. Bạn viết hàm đăng ký với tên, tuổi, khóa học là 3 biến truyền vào. Tí nữa, lại được yêu cầu truyền thêm vào biến số chứng minh thứ. Một lát nữa, lại thêm biến ngày sinh, rồi địa chỉ…
Như vậy sẽ rất vất vả cho bạn quy định cũng như tính được sử dụng lại của hàm bạn viết ra là không tốt. Vì vậy, các nhà phát triển PHP đã cung cấp cho các bạn một loạt 3 hàm trên. Với tính năng, không cần khai báo các biến truyền vào mà vẫn có thể lấy tất cả các biến bạn truyền vào và đẩy các biến truyền vào thành một mảng.
1. func_get_arg() là hàm có chức năng lấy một biến trong danh sách các biến truyền vào trong hàm. Hàm này thường được sử dụng kết hợp với hàm func_num_args().
Ví dụ cách sử dụng hàm func_get_arg():
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function hello_test()
{
 $numargs = func_num_args();
 echo "Số lượng tham số truyền vào: $numargs<br />";
 if ($numargs >= 3) {
 echo "Tham số thứ 3 có giá trị là: " . func_get_arg(1) . "<br />n";
 }
}

hello_test(1, 2, 3, 4, 5, 6, 7);
?>

2. func_num_arg() như các bạn thấy trong ví dụ trên, có chức năng là lấy số lượng tham số truyền vào. Không cần một biến quy định nào, nó cứ thế mà lấy thôi. 🙂

Hàm func_num_arg() thường được dùng kết hợp với 2 hàm còn lại là func_get_arg() và func_get_args().

3. func_get_args() là hàm dùng để lấy tất cả biến được truyền vào trong hàm thành một mảng.

Ví dụ 1: cách sử dụng func_get_args()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
class hello_test2{
 public function testFunction(){
   //Lấy tất cả giá trị được truyền vào hàm
   $all_var = func_get_args();
   //Hiển thị các giá trị đó ra màn hình
   foreach($all_var as $temp){
    echo $temp."<br/>";
   }
 }
}
$a = new hello_test2();
$a->testFunction(1, 2, 3, 4, 5);
?>

Ví dụ 2: cách sử dụng kết hợp giữa 3 hàm kể trên

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function test_ti()
{
    $soluong_thamso = func_num_args();
    echo "Số lượng tham số truyền vào là: $numargs<br />";
    if ($numargs >= 3) {
        echo "Tham số thứ 3 có giá trị: " . func_get_arg(1) . "<br />";
    }
    $danhsach_thamso = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Tham số thứ $i có giá trị là: " . $arg_list[$i] . "<br />";
    }
}

test_ti(1, 2, 3, 4, 5, 6);
?>

Copy ra file trên localhost, chạy và kiểm tra nha các bạn.

Hy vọng sẽ giúp các bạn tiết kiệm thời gian hơn trong việc tìm hiểu một số hàm trong PHP.

Chúc các bạn thành công
Phạm Ngọc Tân   

Related Posts

Comments (2)

  1. Tân Phạm Ngọc
    March 30, 2014

    Uh, không có gì đâu bạn.

    Reply

Leave a Comment!

Your email address will not be published. Required fields are marked *