PHP là ngôn ngữ kịch bản máy chủ và là công cụ mạnh mẽ để tạo các trang Web động và tương tác
PHP là một giải pháp thay thế được sử dụng rộng rãi, miễn phí và hiệu quả cho các đối thủ cạnh tranh như ASP của Microsoft
Bắt đầu học PHP ngay bây giờ »Học dễ dàng với "PHP Tryit"
Với trình chỉnh sửa "PHP Tryit" trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã PHP và nhấp vào nút để xem kết quả
Thí dụ
echo "Tập lệnh PHP đầu tiên của tôi. ";
?>
Nhấp vào nút "Tự dùng thử" để xem nó hoạt động như thế nào
Bài tập PHP
Kiểm tra bản thân với các bài tập
Tập thể dục
Chèn phần còn thiếu của mã bên dưới để xuất "Xin chào thế giới"
Cung cấp câu trả lời "
Ví dụ PHP
Tìm hiểu bằng các ví dụ. Hướng dẫn này bổ sung tất cả các giải thích với các ví dụ rõ ràng
Xem tất cả các ví dụ về PHP
Bài kiểm tra PHP
Học bằng cách làm bài kiểm tra. Bài kiểm tra này sẽ cung cấp cho bạn tín hiệu về mức độ bạn biết hoặc không biết về PHP
Bắt đầu bài kiểm tra PHP
Việc học của tôi
Theo dõi tiến trình của bạn với chương trình "Học tập của tôi" miễn phí tại W3Schools
Đăng nhập vào tài khoản của bạn và bắt đầu kiếm điểm
Đây là một tính năng tùy chọn. Bạn có thể học W3Schools mà không cần sử dụng My Learning
Tài liệu tham khảo PHP
Tài liệu tham khảo PHP của W3Schools chứa các danh mục khác nhau của tất cả các hàm, từ khóa và hằng số PHP, cùng với các ví dụ
Hàm trong PHP là một nhóm mã được đặt tên với mục đích thực hiện một nhiệm vụ được xác định. Thông thường hàm hoạt động dựa trên một số thông tin đầu vào, thường gọi là tham số và trả về một kết quả
Việc sử dụng chức năng trả lại rất nhiều lợi ích. Hàm có khả năng được tái sử dụng ở những vị trí khác nhau trong tập lệnh, qua đó tránh được việc viết mã lặp. Khi các thao tác cơ bản được chuyển thành hàm, mã sẽ có cấu trúc rõ ràng, dễ đọc, dễ theo dõi hơn
Trên thực tế, ngay từ những bài học đầu tiên về PHP bạn đã tiếp xúc với hàm. Đến giờ bạn đã làm quen và sử dụng rất nhiều hàm khác nhau được xây dựng sẵn trong PHP
Tuy nhiên, bạn mới chỉ dừng lại khi sử dụng các hàm đã xây dựng sẵn
PHP, cũng như các ngôn ngữ lập trình khác, cung cấp cho người lập trình khả năng tự xây dựng hàm của riêng mình. Không chỉ vậy, bạn còn có thể tập hợp các hàm tự xây dựng lại thành các hàm thư viện xây dựng của riêng mình để sử dụng lại qua nhiều dự án, giống như khi sử dụng các hàm xây dựng thư viện sẵn có
NỘI DUNG CỦA BẢNG
Định nghĩa hàm [hàm] trong PHP
Việc tạo ra các hàm của riêng bạn được gọi là định nghĩa hoặc khai báo hàm. Để định nghĩa [khai báo] một hàm mới, bạn sử dụng từ khóa hàm với cú pháp như sau
function tên_hàm[$tham_số_1, $tham_số_2, ...] { Lệnh 1; Lệnh 2; ... }
Trong đó, tên_hàm cần tuân thủ quy tắc đặt định danh chung của PHP
Tên hàm cần có để thực hiện hành động, do đó nên sử dụng động từ làm tên hàm. Tên hàm nên đặt theo một trong các kiểu sau
- all of bình thường viết và ghép bởi gạch chân. Ví dụ, get_name, set_age
- lạc đàCase – bắt đầu bằng chữ thường, viết hoa chữ cài đặt đầu mỗi từ tiếp theo. Ví dụ, getName, setAge
Nếu chọn bất kỳ kiểu nào thì sử dụng hệ thống tốt nhất trong toàn bộ mã
Cặp dấu {} là bắt buộc. Cặp dấu {} và các lệnh nằm giữa việc tạo ra khối mã thân hàm
Trong đó, [$tham_số_1, $tham_số_2, …] được gọi là danh sách tham số. Danh sách tham số không quy định kiểu của các tham số. Do vậy khi sử dụng tham số nên kiểm tra kỹ loại cẩn thận
Trong định nghĩa hàm, $tham_số_1, $tham_số_2 như vậy được gọi là tham số hình thức do ở giai đoạn định nghĩa hàm mà bạn không biết giá trị cụ thể của các tham số này. Bạn có thể sử dụng các tham số này trong hàm thân như các biến định nghĩa có sẵn [nhưng giá trị chưa được xác định]
Danh sách tham số không bắt buộc. Nếu hàm không có tham số nào, lệnh khai báo hàm chỉ đơn giản như sau [phần danh sách tham số để trống]
function tên_hàm[]{ Lệnh 1; Lệnh 2; ... }
Sau đây là một số ví dụ về khai báo hàm đơn giản
// đây là định nghĩa một hàm không tham số function hello[] { echo "Hello world from PHP"; } // hàm này có 1 tham số function greeting[$name] { echo "Hello world, $name!"; // sử dụng tham số $name như một biến bình thường } // hàm có 2 tham số function welcome[$fname, $lname] { echo "Hello, $fname $lname. Welcome to heaven!"; }
Lệnh khai báo hàm trong PHP có thể nằm trong lệnh khác, hoặc thậm chí chí nằm trong hàm khác [hàm lồng nhau]
Hàm trả về kết quả
Hàm cũng có thể trả lại giá trị [thông qua lời gọi hàm]. Nếu hàm yêu cầu trả lại giá trị, bạn sử dụng từ khóa trả về trước giá trị trả về
Sau đây là định nghĩa một hàm trả về kết quả
// hàm tính tổng các số từ 0 đến $n function sum[$n] { $s = 0; for[$i = 0; $i [-$b - sqrt[$d]]/[2*$a] ]; }
Đây là một hàm giải phương trình bậc 2. Do the method could have 2 experience, they ta save the this two experience into a an an array [coi như là 1 giá trị duy nhất] và trả lại an toàn cho kết quả này.
Sử dụng hàm trong PHP
Một chức năng sau khi định nghĩa sẽ có thể được sử dụng. You only can use function after đã định nghĩa nó. Nếu sử dụng hàm trước định nghĩa sẽ báo lỗi
Use function [lời gọi hàm] thực hiện theo cú pháp chung sau
// nếu hàm có tính toán ra kết quả $kết_quả = tên_hàm[$tham_số_1, $tham_số_2, ...]; // nếu hàm không tính ra kết quả tên_hàm[$tham_số_1, $tham_số_2, ...]; // nếu hàm không yêu cầu tham số [$kết_quả =]tên_hàm[];
Thực hiện việc sử dụng chức năng đã rất quen thuộc với bạn
Với các chức năng hello, welcome và hello khai báo ở trên bạn có thể gọi như sau
hello[]; // lời gọi đơn giản nhất không tham số greeting['Donald']; // truyền giá trị cho tham số $name $n= 'Donald'; greeting[$n]; // truyền một biến làm tham số cho greeting welcome['Donald', 'Trump']; // truyền hai giá trị cho hai tham số tương ứng
Đối với hai hàm tổng và giai thừa, lời gọi hàm như sau
________số 8Dĩ nhiên bạn cũng có thể viết
sum[100]; factorial[4];
Tuy nhiên, kết quả của hàm tính toán sẽ không được lưu trữ hoặc sử dụng [tức là công cụ sử dụng hàm. ]
Ở giai đoạn gọi [sử dụng] hàm, bạn cung cấp giá trị cụ thể để tương ứng với các tham số có trong khai báo [xác định hàm]. Khi gọi hàm, các giá trị truyền cho tham số được gọi là tham số thực
Thông thường, khi định nghĩa hàm với bao nhiêu tham số hình thức, khi gọi bạn truyền phần trăm giá trị, theo đúng thứ tự. Tuy nhiên những điều này đều không bắt buộc. Chúng ta sẽ nói chi tiết hơn về cách khai báo và truyền tham số cho hàm trong một bài học riêng
Khi định nghĩa và sử dụng hàm cần lưu ý, đặc biệt là đối với các bạn xuất phát từ C
[1] trong PHP tên hàm không phân biệt hoa thường. Ví dụ, tên chức năng Lời chào và lời chào giống như nhau. Đoạn mã sau sẽ báo lỗi vì bạn định nghĩa hàm lời chào [hay Lời chào] hai lần
function tên_hàm[]{ Lệnh 1; Lệnh 2; ... }0
[2] trong khai báo hàm PHP không giới hạn kiểu của tham số, và trong lời gọi hàm PHP cũng không thực hiện kiểu kiểm tra giám sát, do đó cần phải chú ý kiểm tra kiểu của tham số trước khi sử dụng
[3] trong khai báo hàm không giới hạn kiểu kết quả, điều này dẫn đến một hàm có thể trả về kết quả thuộc nhiều kiểu khác nhau. Điều này bạn đã gặp khá nhiều lần khi một hàm có thể trả về kết quả vừa kiểu số vừa kiểu logic, vừa kiểu chuỗi vừa kiểu logic
Trong bài học sau bạn sẽ làm quen với kiểu chỉ báo [kiểu gợi ý] trong khai báo hàm – một tính năng hỗ trợ chỉ báo kiểu tham số và kiểu kết quả của hàm trong PHP 7. 4
Một số trường hợp khai báo hàm đặc biệt trong PHP
Trong PHP việc khai báo và sử dụng hàm có nhiều điểm đặc biệt mà các bạn xuất phát từ C/C#/Java/C++ có thể cảm thấy tương đối bất thường
Khai báo hàm trong lệnh
Đầu tiên, PHP cho phép khai báo hàm bên trong một lệnh khác. Ví dụ
function tên_hàm[]{ Lệnh 1; Lệnh 2; ... }1
Trong ví dụ này, lệnh khai báo giai thừa hàm nằm bên trong lệnh if. Nó có nghĩa là chúng ta chỉ thực hiện khai báo [và sử dụng] giai thừa hàm khi biến $n chắc chắn nguyên dương. Trong các trường hợp khác, giai thừa hàm không được khai báo
Khai báo hàm trong hàm
Rắc rối thứ hai là khả năng khai báo hàm bên trong một hàm khác. Hàm khai báo bên trong một hàm khác được gọi là hàm lồng nhau [nested function]
Please view ví dụ sau
function tên_hàm[]{ Lệnh 1; Lệnh 2; ... }2
Trong ví dụ này chúng ta khai báo và sử dụng hai hàm check và prod bên trong hàm giai thừa
Hàm lồng nhau trong PHP có một điểm đặc biệt
- Mặc dù gọi là hàm lồng nhưng bạn vẫn có thể gọi nó từ bên ngoài hàm cha, giống như hàm cha
- Hàm lồng chỉ tồn tại [bên ngoài hàm cha] sau khi gọi hàm cha. Nếu bạn sử dụng hai hàm này bên ngoài hàm giai thừa trước khi gọi hàm thừa [] thì sẽ gặp lỗi 'Gọi hàm không xác định'
- Hàm lồng sau khi gọi hàm cha sẽ có phạm vi giống như toàn cầu giống như hàm cha
Những điểm đặc biệt này làm cho hàm lồng tiếng trong PHP khá rắc rối. Nhìn chung nếu đã có nhu cầu sử dụng làm lồng, bạn nên chuyển sang lớp xây dựng
Một số trường hợp sử dụng hàm đặc biệt trong PHP
Hàm tự gọi chính nó – đệ quy trong PHP
Đệ quy là hiện một hàm tự gọi chính nó
Vui lòng xem ví dụ về định nghĩa giai cấp thừa của một số nguyên n
Theo định nghĩa này, giá trị của n. bằng 1 nếu n = 0, và bằng n * [n-1]. nếu n > 0. Đây là cách định nghĩa giai cấp thừa theo kiểu đệ quy – định nghĩa một khái niệm qua chính nó
Với định nghĩa giai thừa như trên chúng ta có thể viết lại hàm tính giai thừa trong PHP như sau
function tên_hàm[]{ Lệnh 1; Lệnh 2; ... }3
Để ý rằng bên trong thân hàm giai thừa có lời gọi đến chính nó
Có thể thấy, công việc gọi đệ quy cho phép viết chương trình rất ngắn gọn và tuân theo định nghĩa toán học của hàm
Tuy nhiên, việc sử dụng đệ quy không được khuyến khích vì nó phức tạp quá trình gọi hàm. Trừ khi bắt buộc hoặc không còn lựa chọn nào khác, bạn nên sử dụng vòng lặp thay cho kiểu hàm đệ quy
gọi hàm
Hàm trong PHP rất linh hoạt cả trong khai báo và sử dụng. Một trong những đặc điểm của hàm trong PHP là khả năng gọi hàm từ chuỗi ký tự hoặc tên biến. Để dễ hiểu, hãy cùng xem ví dụ sau đây
function tên_hàm[]{ Lệnh 1; Lệnh 2; ... }4
Đoạn script này cho phép thực hiện chức năng theo chuỗi người dùng nhập vào
function tên_hàm[]{ Lệnh 1; Lệnh 2; ... }5
Trong ví dụ trên chúng ta định nghĩa ba hàm thông thường xin chào, tạm biệt và chào mừng
Trong vòng lặp chúng tôi yêu cầu người dùng nhập một chuỗi lệnh. Lưu chuỗi giá trị này vào biến $command
Please for the special point of the $command variable. bạn có thể biến $command thành lời gọi hàm nếu thêm cặp dấu ngoặc tròn [] vào sau tên biến $command[]. Tính năng này trong PHP được gọi là tên hàm động/gọi hàm động/hàm biến
PHP sẽ tìm và thực thi hàm trùng tên với giá trị của biến
Tính năng này khiến chức năng gọi theo yêu cầu của người dùng trở nên vô cùng đơn giản. Một chuỗi người dùng nhập vào có thể chuyển thẳng thành lời gọi hàm. Nếu không có tính năng này, bạn phải xây dựng các cơ chế ánh xạ yêu cầu với lời gọi hàm, ví dụ, sử dụng lệnh switch-case