post-image

PHP | Hàm (phần 1)

Cơ bản

Điểm mạnh thực sự của PHP đến từ các hàm của nó. PHP có hơn 1000 hàm có sẵn và người dùng vẫn có thể tạo các hàm/chương trình con tuỳ ý.

Hàm do người dùng cài đặt trong PHP

Ngoài những hàm có sẵn, người dùng có thể tự tạo hàm và chương trình con như rất nhiều các ngôn ngữ lập trình khác.

  • Hàm một khối lệnh có thể được dùng nhiều lần trong 1 chương trình.
  • Hàm sẽ không cần chạy ngay lập tức khi mà trang web được tải.
  • Hàm sẽ được chạy khi gọi đến nó.

Tạo hàm trong PHP

Tạo hàm thì cần khai báo với từ khoá function:

Cú pháp:

function tên_hàm() 
{
    // Khối lệnh cần được thực hiện
} Code language: JavaScript (javascript)

Chú ý: Tên của hàm thì phải bắt đầu bằng 1 chữ cái hoặc 1 dấu gạch dưới “_”. Tên của hàm không phân biệt hoa thường.

Mẹo: Nên đặt tên hàm miêu tả công việc nó sẽ thực hiện.

Ở ví dụ dưới đây, ta tạo hàm tên là “print_To_Screen()”. Dấu mở ngoặc nhọn { là để bắt đầu của hàm, và dấu đóng ngoặc nhọn } là để kết thúc hàm. Hàm sẽ in ra chữ “Hello PHP!”. Để gọi hàm, viết tên nó ra kèm với dấu đóng mở ngoặc tròn ():

Ví dụ:

 <?php
 
function print_To_Screen() 
{
  echo "Hello PHP!";
}

print_To_Screen(); // lời gọi hàm

?> Code language: HTML, XML (xml)

Tham số của hàm trong PHP

Thông tin có thể được truyền vào hàm thông qua tham số, tham số hoạt động như các biến.

Tham số được khai báo ngay sau tên của hàm, ở trong cặp ngoặc nhọn (). Ta có thể thêm bao nhiêu tham số cũng được, miễn là ngăn cách chúng bằng 1 dấu phẩy.

Ví dụ tiếp theo sẽ miêu tả cách 1 tham số được truyền vào và kết quả của nó. Ta sẽ thấy rằng output sẽ thay đổi đúng như tham số ta truyền vào.

Ví dụ:

 <?php
 
function count_sheep($num) 
{
  echo "$num con cuu\n";
}

count_sheep("1");
count_sheep("2");
count_sheep("3");
count_sheep("4");

?> Code language: HTML, XML (xml)

Ví dụ tiếp theo sẽ có hàm với 2 tham số:

 <?php
 
function count_sheep($num, $age) 
{
  echo "$num con cuu $age tuoi\n";
}

count_sheep("1", "3");
count_sheep("2", "1");
count_sheep("3", "2");

?> Code language: HTML, XML (xml)

PHP là một ngôn ngữ khá thoáng

Ở ví dụ trên, ta không cần phải báo cho PHP biết kiểu dữ liệu của các biến.

PHP sẽ tự cho kiểu dữ liệu phù hợp cho biến, tuỳ theo giá trị của nó. Vì kiểu dữ liệu không xác định như này, bạn có thể thêm 1 xâu và 1 số nguyên mà không tạo ra một lỗi nào cả.

Trong PHP 7, báo kiểu dữ liệu được thêm vào. Nó cho chúng ta thêm 1 lựa chọn để có thể xác định trước kiểu dữ liệu khi khai báo hàm, bằng cách thêm từ strict, nếu kiểu dữ liệu không phù hợp thì chương trình sẽ trả lại lỗi “Fatal Error”.

Ở ví dụ dưới đây, chúng ta sẽ thử gửi cả 1 số và 1 xâu vào hàm mà không dùng strict:

 <?php
 
function addNumbers(int $a, int $b) 
{
  return $a + $b;
}

echo addNumbers(5, "5 ngay");
// vì ở đây không dùng strict nên "5 ngay" 
// được tự sửa thành int(5), và nó sẽ trả
// lại tổng của 2 số là 10

?> Code language: HTML, XML (xml)

Để đặt strict, ta cần viết declare(strict_types=1);, Câu lệnh này phải được viết ở ngay dòng đầu tiên của file PHP.

Ở ví dụ dưới đây, ta vẫn thử truyền 1 số và 1 xâu vào hàm, nhưng ta đã dùng strict:

 <?php declare(strict_types=1);
 
function addNumbers(int $a, int $b) 
{
  return $a + $b;
}

echo addNumbers(5, "5 ngay");
// ở đây đã dùng strict nên "5 ngay"
// là kiểu xâu chứ không phải 1 số 
// nên chương trình sẽ báo lỗi khi chạy

?> Code language: HTML, XML (xml)

Tóm lại, strict ép buộc các biến phải được đưa vào một cách chính xác như người lập trình mong đợi.

Phần 2 của bài viết: https://hocphp.net/co-ban/php_ham_part2/

Tham khảo thêm:

https://www.php.net/manual/en/functions.user-defined.php

Leave a Reply

Your email address will not be published.