Các hàm PHP
Sức mạnh thực sự của PHP đến từ các chức năng của nó.
PHP có hơn 1000 hàm tích hợp và ngoài ra bạn có thể tạo các hàm tùy chỉnh của riêng mình.
Các hàm tích hợp trong PHP
PHP có hơn 1000 hàm tích hợp có thể được gọi trực tiếp, từ trong tập lệnh, để thực hiện một tác vụ cụ thể.
Vui lòng xem tài liệu tham khảo PHP của chúng tôi để có cái nhìn tổng quan đầy đủ về các hàm tích hợp sẵn trong PHP .
Các hàm do người dùng xác định trong PHP
Bên cạnh các hàm PHP có sẵn, bạn có thể tạo các hàm của riêng mình.
- Hàm là một khối các câu lệnh có thể được sử dụng lặp lại trong một chương trình.
- Một chức năng sẽ không tự động thực thi khi tải trang.
- Một hàm sẽ được thực thi bởi một lệnh gọi đến hàm.
Tạo một hàm do người dùng xác định trong PHP
Khai báo hàm do người dùng xác định bắt đầu bằng từ function
:
Cú pháp
function functionName()
{
code to be executed;
}
Lưu ý: Tên hàm phải bắt đầu bằng chữ cái hoặc dấu gạch dưới. Tên hàm KHÔNG phân biệt chữ hoa chữ thường.
Mẹo: Đặt tên cho hàm phản ánh chức năng của nó!
Trong ví dụ dưới đây, chúng tôi tạo một hàm có tên "writeMsg ()". Dấu ngoặc nhọn mở ({) cho biết phần đầu của mã hàm và dấu ngoặc nhọn đóng (}) cho biết phần cuối của hàm. Hàm xuất ra "Hello world!". Để gọi hàm, chỉ cần viết tên của nó theo sau bởi dấu ngoặc ():
Thí dụ
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
Đối số hàm trong PHP
Thông tin có thể được chuyển đến các hàm thông qua các đối số. Một đối số giống như một biến.
Các đối số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm bao nhiêu đối số tùy thích, chỉ cần phân tách chúng bằng dấu phẩy.
Ví dụ sau có một hàm với một đối số ($ fname). Khi hàm familyName () được gọi, chúng ta cũng truyền một tên (ví dụ: Jani) và tên được sử dụng bên trong hàm, xuất ra một số tên khác nhau, nhưng là một họ bằng nhau:
Thí dụ
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
Ví dụ sau có một hàm với hai đối số ($ fname và $ year):
Thí dụ
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
PHP là một ngôn ngữ được đánh máy lỏng lẻo
Trong ví dụ trên, hãy lưu ý rằng chúng ta không phải cho PHP biết kiểu dữ liệu nào của biến.
PHP tự động liên kết kiểu dữ liệu với biến, tùy thuộc vào giá trị của nó. Vì các kiểu dữ liệu không được đặt theo nghĩa chặt chẽ, bạn có thể làm những việc như thêm một chuỗi vào một số nguyên mà không gây ra lỗi.
Trong PHP 7, khai báo kiểu đã được thêm vào. Điều này cung cấp cho chúng tôi một tùy chọn để chỉ định kiểu dữ liệu mong đợi khi khai báo một hàm và bằng cách thêm strict
khai báo, nó sẽ tạo ra "Lỗi nghiêm trọng" nếu kiểu dữ liệu không khớp.
Trong ví dụ sau, chúng tôi cố gắng gửi cả một số và một chuỗi đến hàm mà không sử dụng strict
:
Thí dụ
<?php
function addNumbers(int $a, int $b) {
return $a
+ $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is
changed to int(5), and it will return 10
?>
Để chỉ định strict
, chúng ta cần thiết lập declare(strict_types=1);
. Điều này phải nằm trên dòng đầu tiên của tệp PHP.
Trong ví dụ sau, chúng tôi cố gắng gửi cả một số và một chuỗi đến hàm, nhưng ở đây chúng tôi đã thêm strict
khai báo:
Thí dụ
<?php declare(strict_types=1); // strict requirement
function
addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5
days");
// since strict is enabled and "5 days" is not an integer, an
error will be thrown
?>
Tuyên bố buộc mọi thứ strict
phải được sử dụng theo cách đã định.
Giá trị đối số mặc định trong PHP
Ví dụ sau đây cho thấy cách sử dụng một tham số mặc định. Nếu chúng ta gọi hàm setHeight () mà không có đối số, nó sẽ nhận giá trị mặc định làm đối số:
Thí dụ
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
Các hàm PHP - Trả về giá trị
Để cho phép một hàm trả về một giá trị, hãy sử dụng return
câu lệnh:
Thí dụ
<?php declare(strict_types=1); // strict requirement
function sum(int $x,
int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
Khai báo loại trả lại PHP
PHP 7 cũng hỗ trợ khai báo kiểu cho return
câu lệnh. Giống như với khai báo kiểu cho các đối số hàm, bằng cách kích hoạt yêu cầu nghiêm ngặt, nó sẽ tạo ra "Lỗi nghiêm trọng" trên một kiểu không khớp.
Để khai báo kiểu cho hàm trả về, hãy thêm dấu hai chấm (
:
) và kiểu ngay trước dấu {
ngoặc nhọn mở () khi khai báo hàm.
Trong ví dụ sau, chúng tôi chỉ định kiểu trả về cho hàm:
Thí dụ
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
Bạn có thể chỉ định kiểu trả về khác với kiểu đối số, nhưng hãy đảm bảo rằng trả về là kiểu chính xác:
Thí dụ
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
Chuyển đối số theo tham chiếu
Trong PHP, các đối số thường được truyền theo giá trị, có nghĩa là một bản sao của giá trị được sử dụng trong hàm và biến được truyền vào hàm không thể thay đổi được.
Khi đối số hàm được truyền bằng tham chiếu, các thay đổi đối với đối số cũng thay đổi biến được truyền vào. Để biến đối số hàm thành tham chiếu, &
toán tử được sử dụng:
Thí dụ
Sử dụng đối số chuyển qua tham chiếu để cập nhật một biến:
<?php
function add_five(&$value) {
$value += 5;
}
$num
= 2;
add_five($num);
echo $num;
?>