PHP hỗ trợ các hàm hạng nhất, nghĩa là một hàm có thể được gán cho một biến. Cả hàm do người dùng định nghĩa và hàm tích hợp đều có thể được tham chiếu bởi một biến và được gọi động. Các hàm có thể được truyền dưới dạng đối số cho các hàm khác và một hàm có thể trả về các hàm khác (một tính năng được gọi là hàm bậc cao hơn)
Đệ quy, một tính năng cho phép một hàm gọi chính nó, được ngôn ngữ hỗ trợ, nhưng hầu hết mã PHP tập trung vào phép lặp
Các hàm ẩn danh (có hỗ trợ đóng) đã có mặt từ PHP 5. 3 (2009)
PHP5. 4 đã thêm khả năng liên kết các bao đóng với phạm vi của đối tượng và cũng cải thiện hỗ trợ cho các hàm có thể gọi được để chúng có thể được sử dụng thay thế cho nhau với các hàm ẩn danh trong hầu hết các trường hợp
Cách sử dụng phổ biến nhất của các hàm bậc cao là khi triển khai một mẫu chiến lược. Hàm
Bao đóng là một hàm ẩn danh có thể truy cập các biến được nhập từ phạm vi bên ngoài mà không cần sử dụng bất kỳ biến toàn cục nào. Về mặt lý thuyết, bao đóng là một hàm có một số đối số đóng (e. g. cố định) bởi môi trường khi nó được xác định. Các bao đóng có thể hoạt động xung quanh các hạn chế phạm vi thay đổi theo cách rõ ràng
Trong ví dụ tiếp theo, chúng ta sử dụng bao đóng để xác định một hàm trả về một hàm lọc duy nhất cho
$min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
1, nằm ngoài một nhóm các hàm lọc $min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
Mỗi chức năng bộ lọc trong họ chỉ chấp nhận các phần tử lớn hơn một số giá trị tối thiểu. Bộ lọc duy nhất được trả về bởi
$min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
3 là một bao đóng với đối số $min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
4 được đóng bởi giá trị trong phạm vi (được cung cấp dưới dạng đối số khi $min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
3 được gọi)Liên kết sớm được sử dụng theo mặc định để nhập biến
$min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
4 vào hàm đã tạo. Đối với các lần đóng đúng với ràng buộc muộn, người ta nên sử dụng tham chiếu khi nhập. Hãy tưởng tượng một thư viện xác thực đầu vào hoặc tạo khuôn mẫu, trong đó một bao đóng được xác định để nắm bắt các biến trong phạm vi và truy cập chúng sau này khi hàm ẩn danh được đánh giá PHP có chức năng mở và đọc tệp, xác thực dữ liệu và thực hiện các hành động khác. Ngôn ngữ bao gồm nhiều phương thức dựng sẵn có sẵn để sử dụng
Cũng có thể tạo các hàm PHP độc đáo. Bằng cách khai báo các hàm do người dùng định nghĩa mà bạn sẽ sử dụng nhiều lần trong mã của mình, bạn sẽ tiết kiệm thời gian và tăng năng suất
nội dung
Hàm PHP. Mẹo chính
- Tổng cộng có hơn 1 000 hàm PHP. Bạn cũng có thể tự do tạo các phương thức mới
- Các chức năng thực thi sau khi chúng được gọi bằng cách viết tên của chúng cùng với các giá trị bạn muốn gán. Các giá trị này được viết giữa các dấu ngoặc đơn bên cạnh tên hàm
Chức năng sẵn có
PHP đi kèm với một danh sách các chức năng được xác định trước. Điều quan trọng là phải hiểu cách định nghĩa các hàm PHP, cách chúng xử lý các giá trị được gán và những gì chúng trả về
Các phương thức có thể trả về các kết quả khác nhau tùy thuộc vào việc hàm bị lỗi hay thực hiện quy trình thành công
Chúng tôi phân chia các hàm PHP nội bộ theo mục đích của chúng. hàm chuỗi, hàm mảng, hàm xử lý lỗi, hàm thư mục, hàm libxml và các hàm linh tinh
Hàm do người dùng định nghĩa
Để xác định các hàm PHP của riêng bạn, bạn phải tuân theo cú pháp này
$min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
7Sao chép ví dụ
<?php
function write_message() {
echo "BitDegree Learn!";
}
write_message(); // calls the function
?>
Dùng thử trực tiếp Tìm hiểu trên Udacity
Ví dụ trên cho thấy cách xác định hàm
$min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
8. Bằng cách xác định chức năng mã PHP sẽ phải thực thi, chúng tôi đặt nó thành văn bản đầu ra có nội dung Tìm hiểu BitDegree. sau khi được gọiĐể chức năng do người dùng xác định hoạt động, hãy bao gồm tất cả thông tin này
- Sử dụng từ khóa
$min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
9 để chỉ ra một phương pháp mới - Xác định tên của chức năng. Hãy chắc chắn rằng nó đại diện cho mục đích của nó
- Bao gồm các tham số của hàm trong ngoặc đơn. Nhiều tham số phải được phân tách bằng dấu phẩy
- Dấu ngoặc nhọn bao gồm các câu lệnh xác định cách thức hoạt động của hàm
Ghi chú. tất cả các tên hàm PHP hợp lệ đều bắt đầu bằng dấu gạch dưới (_) hoặc một chữ cái. Chúng không phân biệt chữ hoa chữ thường
Đối số chức năng PHP
Bạn có thể truyền dữ liệu vào một hàm bằng cách sử dụng các đối số. Chúng sẽ hoạt động rất giống với các biến
Ghi chú. bạn khai báo các đối số giữa các dấu ngoặc đơn (). Để nhập nhiều đối số, bạn phải phân tách chúng bằng dấu phẩy. Không có giới hạn về số lượng bạn có thể nhập
Trong ví dụ mã bên dưới, chúng tôi chuyển một đối số có tên là
<?php
function write_message() {
echo "BitDegree Learn!";
}
write_message(); // calls the function
?>
0. Sau khi gọi hàm, giá trị chúng ta nhập vào giữa các dấu ngoặc đơn được gán cho biến đối số, được gọi là <?php
function write_message() {
echo "BitDegree Learn!";
}
write_message(); // calls the function
?>
0Sao chép ví dụ
<?php
function getFamilyName($name) {
echo "$name Jones.<br>";
}
getFamilyName('Jani');
getFamilyName('Hege');
getFamilyName('Stale');
getFamilyName('Kai Jim');
getFamilyName('Borge');
?>
Dùng thử trực tiếp Tìm hiểu trên Udacity
Bây giờ, trong ví dụ này, chúng ta định nghĩa một hàm có hai đối số được truyền cho nó (
<?php
function write_message() {
echo "BitDegree Learn!";
}
write_message(); // calls the function
?>
0 và <?php
function getFamilyName($name) {
echo "$name Jones.<br>";
}
getFamilyName('Jani');
getFamilyName('Hege');
getFamilyName('Stale');
getFamilyName('Kai Jim');
getFamilyName('Borge');
?>
2)Sao chép ví dụ
<?php
function getFamilyName($name, $birthYear) {
echo "$name Refsnes. Born in $birthYear <br>";
}
getFamilyName('Hege', 1975);
getFamilyName('Stale', 1978);
getFamilyName('Kai Jim', 1983);
?>
Dùng thử trực tiếp Tìm hiểu trên Udacity
ưu
- Thiết kế đơn giản (không có thông tin không cần thiết)
- Các khóa học chất lượng cao (ngay cả những khóa học miễn phí)
- Tính năng đa dạng
Những đặc điểm chính- chương trình cấp bằng nano
- Thích hợp cho doanh nghiệp
- Giấy chứng nhận hoàn thành trả tiền
LOẠI TRỪ. GIẢM GIÁ 75%
ưu
- Dễ điều hướng
- Không có vấn đề kỹ thuật
- Có vẻ quan tâm đến người dùng của nó
Những đặc điểm chính- Rất nhiều khóa học đa dạng
- chính sách hoàn tiền trong 30 ngày
- Giấy chứng nhận hoàn thành miễn phí
THẤP NHƯ 12. 99$
ưu
- Trải nghiệm người dùng tuyệt vời
- Cung cấp nội dung chất lượng
- Rất minh bạch với giá cả của họ
Những đặc điểm chính- Giấy chứng nhận hoàn thành miễn phí
- Tập trung vào các kỹ năng khoa học dữ liệu
- Lịch học linh hoạt
GIẢM GIÁ 75%
Giá trị đối số mặc định
Ví dụ mã bên dưới xem xét việc đưa ra các giá trị mặc định của đối số. Khi chúng ta gọi hàm
<?php
function getFamilyName($name) {
echo "$name Jones.<br>";
}
getFamilyName('Jani');
getFamilyName('Hege');
getFamilyName('Stale');
getFamilyName('Kai Jim');
getFamilyName('Borge');
?>
3 mà không có đối số cụ thể, nó sẽ lấy giá trị mà chúng ta đã gán cho đối số khi xác định hàm PHPSao chép ví dụ
<?php
function setHeight($minHeight = 10) {
echo "The height is : $minHeight <br>";
}
setHeight(350);
setHeight(); // using the default value of 10
setHeight(135);
setHeight(80);
?>
Dùng thử trực tiếp Tìm hiểu trên Udacity
Giá trị trả về
Cuối cùng, ví dụ mã này sử dụng câu lệnh
<?php
function getFamilyName($name) {
echo "$name Jones.<br>";
}
getFamilyName('Jani');
getFamilyName('Hege');
getFamilyName('Stale');
getFamilyName('Kai Jim');
getFamilyName('Borge');
?>
4 để làm cho hàm trong PHP trả về giá trị sau khi thực hiện thành côngSao chép ví dụ
<?php
function sum($x, $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);
?>
Dùng thử trực tiếp Tìm hiểu trên Udacity
Sử dụng biến làm tên hàm
Trong PHP, có thể sử dụng các hàm biến. Điều đó có nghĩa là khi các biến có dấu ngoặc đơn, PHP sẽ cố gắng tìm một phương thức có cùng tên và thực thi nó. Các hàm biến hữu ích để hoàn thành các cuộc gọi lại và các bảng chức năng
Sao chép ví dụ
$min
*
* Returns a single filter out of a family of "greater than n" filters
*/
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = array(1, 2, 3, 4, 5, 6);
// Use array_filter on a input with a selected filter function
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // items > 3
0Dùng thử trực tiếp Tìm hiểu trên Udacity
Ví dụ mã ở trên sử dụng isset() làm hàm biến và kiểm tra xem một câu hỏi có được hỏi hay không. Xóa dòng thứ hai để có kết quả khác
Ghi chú. bạn không thể sử dụng các hàm biến với các cấu trúc ngôn ngữ như echo và print. Để sử dụng chúng như các hàm biến, bạn nên áp dụng các phương thức bao bọc
Chức năng sử dụng PHP là gì?
Hàm là một đoạn mã nhận một đầu vào khác ở dạng tham số, xử lý nó và sau đó trả về một giá trị . Tính năng Hàm PHP là một đoạn mã có thể được sử dụng nhiều lần và chấp nhận các danh sách đối số làm đầu vào và trả về một giá trị. PHP đi kèm với hàng ngàn tính năng tích hợp.
Tôi có thể sử dụng hàm trong hàm PHP không?
Lưu ý rằng PHP không thực sự hỗ trợ "các hàm lồng nhau" , như chỉ được định nghĩa trong phạm vi của hàm cha. Tất cả các chức năng được xác định trên toàn cầu.
Làm cách nào để chạy một hàm trong PHP?
Có hai phương pháp để thực hiện việc này. Một là trực tiếp gọi hàm theo tên biến bằng cách sử dụng dấu ngoặc và tham số và cách còn lại là sử dụng hàm call_user_func() nhưng trong cả hai phương thức đều sử dụng tên biến. call_user_func( $var );
Làm cách nào để truyền một hàm trong PHP?