Sửa đổi lần cuối ngày 20 tháng 10 năm 2022
Trong bài viết này, chúng tôi bao gồm các chức năng PHP.
$ php -v php -v PHP 8.1.2 (cli) (built: Aug 8 2022 07:28:23) (NTS) ...Chúng tôi sử dụng Php phiên bản 8.1.2.
Hàm là một khối mã có thể tái sử dụng được sử dụng để thực hiện một hành động cụ thể. Hàm thực hiện một nhiệm vụ cụ thể. Ưu điểm của việc sử dụng các chức năng là:
- Giảm sự trùng lặp của mã
- Phân hủy các vấn đề phức tạp thành các mảnh đơn giản hơn
- Cải thiện sự rõ ràng của mã
- Tái sử dụng mã
- Ẩn thông tin
Có hai loại chức năng cơ bản. Chức năng tích hợp và các chức năng do người dùng xác định. Các chức năng tích hợp là một phần của ngôn ngữ PHP. Ví dụ là: <?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 7, <?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 8 hoặc <?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 9. Các chức năng do người dùng xác định được tạo bởi các lập trình viên ứng dụng để đáp ứng nhu cầu của họ. Chúng được tạo bằng từ khóa if ($x > $y) { return $x; } else { return $y; } 0.
PHP xác định chức năng
Một hàm được tạo với từ khóa if ($x > $y) { return $x; } else { return $y; } 0.
simple.php
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion();Từ khóa chức năng được theo sau bởi tên hàm với dấu ngoặc tròn. Cơ thể của chức năng nằm giữa dấu ngoặc xoăn. Chúng tôi nói rằng chúng tôi gọi là một chức năng. Nếu chúng ta gọi một hàm, các câu lệnh bên trong cơ thể chức năng sẽ được thực thi.
displayVersion();Dòng mã này gọi hàm.
$ php simple.php This is PHP 8.1.2Từ khóa trả lại PHP
Từ khóa if ($x > $y) { return $x; } else { return $y; } 2 được sử dụng để trả về một giá trị từ hàm. Một hàm có thể hoặc không thể trả về một giá trị.
returning.php
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n";Chúng tôi có chức năng if ($x > $y) { return $x; } else { return $y; } 3. Nó trả về tối đa cho hai số. Chúng tôi không thể đặt tên cho nó tối đa, vì đã có chức năng if ($x > $y) { return $x; } else { return $y; } 4 tích hợp. Ví dụ này được tạo ra cho mục đích học tập; Chúng tôi luôn thích các chức năng tích hợp trong các chương trình trong thế giới thực của chúng tôi.
if ($x > $y) { return $x; } else { return $y; }Nếu biến if ($x > $y) { return $x; } else { return $y; } 5 lớn hơn if ($x > $y) { return $x; } else { return $y; } 6, chúng tôi sẽ trả lại if ($x > $y) { return $x; } else { return $y; } 5. Nếu không, chúng tôi sẽ trở lại if ($x > $y) { return $x; } else { return $y; } 6.
$val = maximum($a, $b);Giá trị được trả về bởi hàm if ($x > $y) { return $x; } else { return $y; } 3 được gán cho biến $val = maximum($a, $b); 0.
echo "The max of $a and $b is $val \n";Chúng tôi in giá trị tối đa của hai số vào bảng điều khiển.
Đối số chức năng PHP
Hầu hết các chức năng chấp nhận đối số. Đối số là các giá trị được gửi đến hàm. Các chức năng xử lý các giá trị và có thể trả về một số kết quả.
fahrenheit.php
<?php function FTC($c) { return $c * 9/5 + 32; } echo FTC(100); echo "\n"; echo FTC(0); echo "\n"; echo FTC(30); echo "\n";Trong ví dụ của chúng tôi, chúng tôi chuyển đổi nhiệt độ Fahrenheit thành Celsius. Hàm $val = maximum($a, $b); 1 chấp nhận một đối số $val = maximum($a, $b); 2, đó là nhiệt độ Celsius.
$ php fahrenheit.php 212 32 86Các giá trị tiềm ẩn PHP
Các đối số trong các hàm PHP có thể có các giá trị ngầm. Một giá trị ngầm được sử dụng nếu không có giá trị được cung cấp.
implicit_value.php
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 0Ở đây chúng tôi đã tạo ra một chức năng quyền lực. Hàm có một đối số với một giá trị ngầm. Chúng ta có thể gọi chức năng với một hoặc hai đối số.
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 1Số biến của PHP số lượng đối số
Một chức năng có thể chấp nhận số lượng biến số của các đối số. Nói cách khác, đôi khi chúng ta không biết có bao nhiêu đối số sẽ được chuyển đến hàm. Hàm $val = maximum($a, $b); 3 trả về một mảng bao gồm danh sách đối số của hàm.
Toán tử $val = maximum($a, $b); 4 có sẵn để tạo các hàm variadic.
variable_arguments1.php
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 2Chúng tôi tạo một phương thức $val = maximum($a, $b); 5 có thể lấy số lượng đối số khác nhau. Phương thức tính toán tổng các giá trị được truyền vào phương thức.
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 3Chúng tôi tính toán và trả về tổng của các giá trị.
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 4Chúng tôi vượt qua ba, bốn và năm giá trị cho hàm $val = maximum($a, $b); 5.
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 5variable_arguments2.php
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 6Bây giờ ví dụ tương tự được tạo với hàm $val = maximum($a, $b); 3.
Hàm Php có tên tham số
Khi chúng tôi sử dụng các tham số được đặt tên, thì thứ tự của các tham số không liên quan.
named_parameters.php
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 7Trong ví dụ, chúng tôi gọi $val = maximum($a, $b); 8 hai lần, chuyển các tham số theo các đơn đặt hàng khác nhau. Đầu ra là chính xác vì chúng tôi sử dụng các tham số được đặt tên.
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 8Biến tĩnh PHP
Một biến tĩnh là một biến đã được phân bổ tĩnh, có tuổi thọ kéo dài trên toàn bộ hoạt động của chương trình. Các biến cục bộ mặc định không giữ lại giá trị của chúng trong các cuộc gọi liên tiếp của hàm.
non_static.php
<?php function displayVersion() { echo "This is PHP " . phpversion(); echo "\n"; } displayVersion(); 9Trong ví dụ trên, chúng tôi có một biến bình thường, không tĩnh. Chúng tôi tăng biến mỗi lần chức năng được gọi. Chúng tôi gọi hàm 5 lần. Tuy nhiên, các biến không tĩnh được bắt đầu cho mỗi cuộc gọi của hàm. Sau 5 chức năng gọi $val = maximum($a, $b); 9 bằng 1.
Các biến tĩnh chỉ được bắt đầu một lần, khi hàm được gọi đầu tiên. Họ giữ lại giá trị của họ sau đó.
static.php
displayVersion(); 0Sau 5 cuộc gọi liên tiếp, $val = maximum($a, $b); 9 bằng 5.
displayVersion(); 1Các chức năng ẩn danh PHP
Các chức năng ẩn danh không có tên.
anonymous.php
displayVersion(); 2Chúng tôi gán một cơ thể chức năng cho một biến. Có thể gọi chức năng chỉ thông qua biến này.
displayVersion(); 3Lưu ý dấu chấm phẩy sau khi đóng khung xoăn. Nó được yêu cầu vì cấu trúc là một nhiệm vụ.
displayVersion(); 4Các hàm ẩn danh thường được sử dụng với các hàm mảng.
filter_vals.php
displayVersion(); 5Trong ví dụ, chúng tôi lọc các giá trị của một mảng với echo "The max of $a and $b is $val \n"; 1. Hàm vị ngữ được xác định với hàm ẩn danh.
displayVersion(); 6Hàm mũi tên PHP
Các hàm mũi tên cung cấp một cú pháp ngắn gọn hơn cho các hàm ẩn danh. Một hàm mũi tên được tạo với từ khóa echo "The max of $a and $b is $val \n"; 2 và toán tử mũi tên chất béo (echo "The max of $a and $b is $val \n"; 3).
arrow.php
displayVersion(); 7Trong ví dụ, chúng tôi xác định hai hàm mũi tên.
displayVersion(); 8filter_vals2.php
displayVersion(); 9Với chức năng mũi tên, mã nhỏ gọn hơn.
Vượt qua các đối số theo giá trị và bằng cách tham khảo
PHP hỗ trợ hai cách truyền đối số cho các chức năng. Cách mặc định là truyền đối số theo giá trị. Khi chúng ta chuyển các đối số theo giá trị, hàm chỉ hoạt động với các bản sao của các giá trị. Điều này có thể dẫn đến chi phí hiệu suất khi chúng tôi làm việc với một lượng lớn dữ liệu.
Khi chúng ta vượt qua các giá trị bằng tham chiếu, hàm nhận được tham chiếu đến giá trị thực tế. Các giá trị ban đầu bị ảnh hưởng khi sửa đổi. Cách vượt qua giá trị này là nhiều thời gian và không gian hiệu quả. Mặt khác, nó dễ bị lỗi hơn.
Cách chúng ta nên sử dụng đối số cách nào? Nó phụ thuộc vào tình hình. Giả sử chúng tôi có một bộ dữ liệu, tiền lương của nhân viên. Nếu chúng tôi muốn tính toán một số số liệu thống kê về dữ liệu, chúng tôi không cần sửa đổi chúng. Chúng tôi vượt qua các giá trị. Nếu chúng tôi làm việc với một lượng lớn dữ liệu và tốc độ tính toán là rất quan trọng, chúng tôi sẽ vượt qua tham chiếu. Nếu chúng tôi muốn sửa đổi dữ liệu, ví dụ: Thực hiện một số mức giảm hoặc tăng lương, chúng tôi có thể vượt qua bằng cách tham khảo.
Hai ví dụ sau đây bao gồm cả hai khái niệm.
swap1.php
$ php simple.php This is PHP 8.1.2 0Hàm hoán đổi hoán đổi các số giữa các biến echo "The max of $a and $b is $val \n"; 4 và echo "The max of $a and $b is $val \n"; 5. Các biến ban đầu không bị ảnh hưởng.
$ php simple.php This is PHP 8.1.2 1Lúc đầu, hai biến này được bắt đầu.
$ php simple.php This is PHP 8.1.2 2Chúng tôi gọi hàm echo "The max of $a and $b is $val \n"; 6. Hàm lấy các biến echo "The max of $a and $b is $val \n"; 4 và echo "The max of $a and $b is $val \n"; 5 làm tham số.
$ php simple.php This is PHP 8.1.2 3Bên trong hàm echo "The max of $a and $b is $val \n"; 6, chúng tôi thay đổi các giá trị. Lưu ý rằng các biến echo "The max of $a and $b is $val \n"; 4 và echo "The max of $a and $b is $val \n"; 5 được xác định cục bộ. Chúng chỉ có giá trị bên trong hàm echo "The max of $a and $b is $val \n"; 6.
$ php simple.php This is PHP 8.1.2 4Đầu ra cho thấy các biến ban đầu không bị ảnh hưởng.
Ví dụ mã tiếp theo chuyển các giá trị đến hàm bằng tham chiếu. Các biến ban đầu được thay đổi bên trong hàm echo "The max of $a and $b is $val \n"; 6.
swap2.php
$ php simple.php This is PHP 8.1.2 5Chúng tôi sử dụng ký tự <?php function FTC($c) { return $c * 9/5 + 32; } echo FTC(100); echo "\n"; echo FTC(0); echo "\n"; echo FTC(30); echo "\n"; 4 để truyền các giá trị bằng tham chiếu.
$ php simple.php This is PHP 8.1.2 6Ví dụ gần như giống hệt với cái trước. Ngoại trừ các ký tự ampers và.
$ php simple.php This is PHP 8.1.2 7Ở đây chúng ta thấy rằng hàm echo "The max of $a and $b is $val \n"; 6 thực sự thay đổi các giá trị của các biến.
Php chức năng đệ quy
Đệ quy, trong toán học và khoa học máy tính, là một phương pháp xác định các chức năng trong đó chức năng được xác định được áp dụng trong định nghĩa riêng của nó. Nói cách khác, một chức năng đệ quy tự gọi mình sẽ thực hiện công việc của mình. Đệ quy là một thay thế cho lặp lại. Đệ quy là cách tiếp cận chính trong các ngôn ngữ chức năng.
Một ví dụ điển hình là tính toán của giai thừa.
recursion.php
$ php simple.php This is PHP 8.1.2 8Trong ví dụ mã này, chúng tôi tính toán giai thừa của hai số.
$ php simple.php This is PHP 8.1.2 9Bên trong phần thân của chức năng giai thừa, chúng tôi gọi chức năng giai thừa với một đối số được sửa đổi. Hàm gọi chính nó.
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 0Đây là những kết quả.
Các biến toàn cầu và địa phương PHP
Tiếp theo chúng ta nói về phạm vi của các biến trong PHP. Một phạm vi là phạm vi trong đó một biến có thể được tham chiếu. Khi chúng tôi làm việc với các chức năng, có hai phạm vi cơ bản: toàn cầu và phạm vi địa phương. Phạm vi cục bộ còn được gọi là phạm vi chức năng.
scope1.php
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 1Một biến được xác định bên ngoài một cơ thể hàm không thể được tham chiếu trong một hàm.
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 2Biến $val = maximum($a, $b); 9 là NULL trong hàm <?php function FTC($c) { return $c * 9/5 + 32; } echo FTC(100); echo "\n"; echo FTC(0); echo "\n"; echo FTC(30); echo "\n"; 7.
scope2.php
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 3Trong ví dụ này, chúng tôi có hai biến có cùng tên. Chúng không va chạm vì chúng tồn tại trong các phạm vi khác nhau.
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 4Giá trị là 3 bên trong hàm và 4 bên ngoài hàm.
Trong ví dụ tiếp theo, chúng tôi sửa đổi một giá trị bên trong hàm.
scope3.php
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 5Chúng tôi sử dụng từ khóa <?php function FTC($c) { return $c * 9/5 + 32; } echo FTC(100); echo "\n"; echo FTC(0); echo "\n"; echo FTC(30); echo "\n"; 8 để tham chiếu một biến được xác định bên ngoài phần thân của hàm.
<?php function maximum($x, $y) { if ($x > $y) { return $x; } else { return $y; } } $a = 23; $b = 32; $val = maximum($a, $b); echo "The max of $a and $b is $val \n"; 6$val = maximum($a, $b); 9 đã được sửa đổi thành công bên trong hàm <?php function FTC($c) { return $c * 9/5 + 32; } echo FTC(100); echo "\n"; echo FTC(0); echo "\n"; echo FTC(30); echo "\n"; 7.
Trong bài viết này, chúng tôi đã đề cập đến các chức năng PHP.
Liệt kê tất cả các hướng dẫn PHP.