PHP - Chức năng
Các hàm PHP tương tự như các ngôn ngữ lập trình khác. Hàm là một đoạn mã nhận thêm một đầu vào dưới dạng tham số và thực hiện một số xử lý và trả về một giá trị.
Bạn đã thấy nhiều chức năng như fopen() và fread() vv Chúng là các hàm tích hợp sẵn nhưng PHP cũng cung cấp cho bạn tùy chọn để tạo các hàm của riêng mình.
Có hai phần mà bạn phải rõ ràng -
- Tạo một hàm PHP
- Gọi một hàm PHP
Trên thực tế, bạn hầu như không cần phải tạo hàm PHP của riêng mình vì đã có hơn 1000 hàm thư viện tích hợp được tạo cho các khu vực khác nhau và bạn chỉ cần gọi chúng theo yêu cầu của mình.
Vui lòng tham khảo Tài liệu tham khảo về hàm PHP để có một bộ đầy đủ các hàm hữu ích.
Tạo hàm PHP
Rất dễ dàng để tạo hàm PHP của riêng bạn. Giả sử bạn muốn tạo một hàm PHP sẽ chỉ viết một thông báo đơn giản trên trình duyệt của bạn khi bạn gọi nó. Ví dụ sau tạo một hàm có tên writeMessage () và sau đó gọi hàm này ngay sau khi tạo.
Lưu ý rằng trong khi tạo một hàm, tên của nó phải bắt đầu bằng từ khóa function và tất cả mã PHP phải được đặt bên trong dấu ngoặc nhọn {và} như thể hiện trong ví dụ sau:
<html>
<head>
<title>Writing PHP Function</title>
</head>
<body>
<?php
/* Defining a PHP Function */
function writeMessage() {
echo "You are really a nice person, Have a nice time!";
}
/* Calling a PHP Function */
writeMessage();
?>
</body>
</html>
Điều này sẽ hiển thị kết quả sau:
You are really a nice person, Have a nice time!
Các hàm PHP với các tham số
PHP cung cấp cho bạn tùy chọn để chuyển các tham số của bạn vào bên trong một hàm. Bạn có thể chuyển bao nhiêu tham số tùy thích. Các tham số này hoạt động giống như các biến bên trong hàm của bạn. Ví dụ sau lấy hai tham số số nguyên và cộng chúng lại với nhau rồi in ra.
<html>
<head>
<title>Writing PHP Function with Parameters</title>
</head>
<body>
<?php
function addFunction($num1, $num2) {
$sum = $num1 + $num2;
echo "Sum of the two numbers is : $sum";
}
addFunction(10, 20);
?>
</body>
</html>
Điều này sẽ hiển thị kết quả sau:
Sum of the two numbers is : 30
Chuyển đối số theo tham chiếu
Có thể truyền các đối số cho các hàm bằng cách tham chiếu. Điều này có nghĩa là một tham chiếu đến biến được thao tác bởi hàm chứ không phải là một bản sao giá trị của biến.
Bất kỳ thay đổi nào được thực hiện đối với một đối số trong những trường hợp này sẽ thay đổi giá trị của biến ban đầu. Bạn có thể truyền đối số bằng tham chiếu bằng cách thêm dấu và vào tên biến trong lệnh gọi hàm hoặc định nghĩa hàm.
Ví dụ sau mô tả cả hai trường hợp.
<html>
<head>
<title>Passing Argument by Reference</title>
</head>
<body>
<?php
function addFive($num) {
$num += 5;
}
function addSix(&$num) {
$num += 6;
}
$orignum = 10;
addFive( $orignum );
echo "Original Value is $orignum<br />";
addSix( $orignum );
echo "Original Value is $orignum<br />";
?>
</body>
</html>
Điều này sẽ hiển thị kết quả sau:
Original Value is 10
Original Value is 16
Các hàm PHP trả về giá trị
Một hàm có thể trả về giá trị bằng cách sử dụng returncâu lệnh kết hợp với một giá trị hoặc đối tượng. return dừng việc thực thi hàm và gửi giá trị trở lại mã gọi.
Bạn có thể trả về nhiều giá trị từ một hàm bằng cách sử dụng return array(1,2,3,4).
Ví dụ sau lấy hai tham số số nguyên và cộng chúng lại với nhau rồi trả về tổng của chúng cho chương trình đang gọi. Lưu ý rằngreturn từ khóa được sử dụng để trả về một giá trị từ một hàm.
<html>
<head>
<title>Writing PHP Function which returns value</title>
</head>
<body>
<?php
function addFunction($num1, $num2) {
$sum = $num1 + $num2;
return $sum;
}
$return_value = addFunction(10, 20);
echo "Returned value from the function : $return_value";
?>
</body>
</html>
Điều này sẽ hiển thị kết quả sau:
Returned value from the function : 30
Đặt giá trị mặc định cho các tham số chức năng
Bạn có thể đặt một tham số có giá trị mặc định nếu người gọi hàm không chuyển nó.
Hàm sau in NULL trong trường hợp sử dụng không chuyển bất kỳ giá trị nào cho hàm này.
<html>
<head>
<title>Writing PHP Function which returns value</title>
</head>
<body>
<?php
function printMe($param = NULL) {
print $param;
}
printMe("This is test");
printMe();
?>
</body>
</html>
Điều này sẽ tạo ra kết quả sau:
This is test
Cuộc gọi chức năng động
Có thể gán tên hàm dưới dạng chuỗi cho các biến và sau đó xử lý các biến này chính xác như cách bạn làm với chính tên hàm. Ví dụ sau mô tả hành vi này.
<html>
<head>
<title>Dynamic Function Calls</title>
</head>
<body>
<?php
function sayHello() {
echo "Hello<br />";
}
$function_holder = "sayHello";
$function_holder();
?>
</body>
</html>
Điều này sẽ hiển thị kết quả sau:
Hello