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ụ
Khai báo kiểu vô hướng có hai loại. cưỡng chế [mặc định] và nghiêm ngặt. Các loại tham số sau đây hiện có thể được thực thi [cưỡng chế hoặc nghiêm ngặt]. chuỗi [string], số nguyên [
object[class@anonymous]#2 [0] { }5], số dấu phẩy động [float] và booleans [
object[class@anonymous]#2 [0] { }6]. Chúng tăng cường các loại khác được giới thiệu trong PHP 5. tên lớp, giao diện, mảng và có thể gọi được
object[class@anonymous]#2 [0] { }7
object[class@anonymous]#2 [0] { }8
Ví dụ trên sẽ xuất ra
Để bật chế độ nghiêm ngặt, phải đặt một lệnh
object[class@anonymous]#2 [0] { }9 duy nhất ở đầu tệp. Điều này có nghĩa là mức độ nghiêm ngặt của việc gõ cho vô hướng được định cấu hình trên cơ sở từng tệp. Lệnh này không chỉ ảnh hưởng đến khai báo kiểu của tham số mà còn ảnh hưởng đến kiểu trả về của hàm [xem khai báo kiểu trả về, hàm PHP tích hợp và hàm từ các phần mở rộng đã tải
Tài liệu đầy đủ và các ví dụ về khai báo kiểu vô hướng có thể được tìm thấy trong tài liệu tham khảo về khai báo kiểu
Khai báo kiểu trả về
PHP 7 thêm hỗ trợ cho khai báo kiểu trả về. Tương tự như khai báo kiểu đối số, khai báo kiểu trả về chỉ định loại giá trị sẽ được trả về từ một hàm. Các loại tương tự có sẵn cho các khai báo kiểu trả về cũng như có sẵn cho các khai báo kiểu đối số
object[class@anonymous]#2 [0] { }0
object[class@anonymous]#2 [0] { }1
Ví dụ trên sẽ xuất ra
Array [ [0] => 6 [1] => 15 [2] => 24 ]
Tài liệu đầy đủ và ví dụ về khai báo kiểu trả về có thể được tìm thấy trong phần khai báo kiểu trả về. tài liệu tham khảo
Toán tử kết hợp Null
Toán tử hợp nhất null [_______02] đã được thêm dưới dạng đường cú pháp cho trường hợp phổ biến cần sử dụng một bộ ba kết hợp với isset[]. Nó trả về toán hạng đầu tiên nếu nó tồn tại và không phải là
object[class@anonymous]#2 [0] { }3;
object[class@anonymous]#2 [0] { }4
object[class@anonymous]#2 [0] { }5
nhà điều hành tàu vũ trụ
Toán tử tàu vũ trụ được sử dụng để so sánh hai biểu thức. Nó trả về -1, 0 hoặc 1 khi $a tương ứng nhỏ hơn, bằng hoặc lớn hơn $b. Việc so sánh được thực hiện theo quy tắc so sánh kiểu thông thường của PHP
object[class@anonymous]#2 [0] { }6
object[class@anonymous]#2 [0] { }7
object[class@anonymous]#2 [0] { }8
Mảng không đổi sử dụng định nghĩa[]
Các hằng số mảng bây giờ có thể được xác định bằng định nghĩa []. Trong PHP5. 6, chúng chỉ có thể được định nghĩa bằng
object[class@anonymous]#2 [0] { }9
object[class@anonymous]#2 [0] { }10
object[class@anonymous]#2 [0] { }11
lớp ẩn danh
Hỗ trợ cho các lớp ẩn danh đã được thêm vào thông qua
object[class@anonymous]#2 [0] { }12. Chúng có thể được sử dụng thay cho các định nghĩa lớp đầy đủ cho các đối tượng vứt bỏ
object[class@anonymous]#2 [0] { }13
object[class@anonymous]#2 [0] { }14
object[class@anonymous]#2 [0] { }15
object[class@anonymous]#2 [0] { }16
object[class@anonymous]#2 [0] { }17
object[class@anonymous]#2 [0] { }18
Ví dụ trên sẽ xuất ra
object[class@anonymous]#2 [0] { }
Tài liệu đầy đủ có thể được tìm thấy trong tài liệu tham khảo lớp ẩn danh
Cú pháp thoát điểm mã hóa Unicode
Điều này lấy một điểm mã Unicode ở dạng thập lục phân và xuất điểm mã đó ở dạng UTF-8 thành một chuỗi trích dẫn kép hoặc một heredoc. Bất kỳ điểm mã hợp lệ nào đều được chấp nhận, với số 0 đứng đầu là tùy chọn
object[class@anonymous]#2 [0] { }19
Ví dụ trên sẽ xuất ra
object[class@anonymous]#2 [0] { }1
Khép kín. call[] là một cách tốc ký, hiệu quả hơn để tạm thời ràng buộc một phạm vi đối tượng với một bao đóng và gọi nó
Array [ [0] => 6 [1] => 15 [2] => 24 ]30
Array [ [0] => 6 [1] => 15 [2] => 24 ]31
Array [ [0] => 6 [1] => 15 [2] => 24 ]32
Ví dụ trên sẽ xuất ra
Tính năng này tìm cách cung cấp bảo mật tốt hơn khi hủy đánh dấu các đối tượng trên dữ liệu không đáng tin cậy. Nó ngăn chặn việc tiêm mã có thể xảy ra bằng cách cho phép nhà phát triển đưa các lớp vào danh sách trắng có thể được hủy xác thực
Array [ [0] => 6 [1] => 15 [2] => 24 ]33
Array [ [0] => 6 [1] => 15 [2] => 24 ]34
Array [ [0] => 6 [1] => 15 [2] => 24 ]35
Lớp IntlChar mới tìm cách hiển thị chức năng ICU bổ sung. Bản thân lớp này định nghĩa một số phương thức tĩnh và hằng số có thể được sử dụng để thao tác với các ký tự unicode
Array [ [0] => 6 [1] => 15 [2] => 24 ]36
Ví dụ trên sẽ xuất ra
Array [ [0] => 6 [1] => 15 [2] => 24 ]3
Để sử dụng lớp này, phần mở rộng Intl phải được cài đặt
kỳ vọng
Kỳ vọng là một cải tiến tương thích ngược với hàm assert[] cũ hơn. Chúng cho phép xác nhận chi phí bằng không trong mã sản xuất và cung cấp khả năng đưa ra các ngoại lệ tùy chỉnh khi xác nhận không thành công
Mặc dù API cũ tiếp tục được duy trì để tương thích, nhưng khẳng định [] hiện là cấu trúc ngôn ngữ, cho phép tham số đầu tiên là một biểu thức thay vì chỉ là một chuỗi được đánh giá hoặc giá trị bool được kiểm tra
Array [ [0] => 6 [1] => 15 [2] => 24 ]37
Array [ [0] => 6 [1] => 15 [2] => 24 ]38
Array [ [0] => 6 [1] => 15 [2] => 24 ]39
Ví dụ trên sẽ xuất ra
object[class@anonymous]#2 [0] { }4
Chi tiết đầy đủ về tính năng này, bao gồm cách định cấu hình tính năng này trong cả môi trường phát triển và sản xuất, có thể tìm thấy trong phần kỳ vọng của tham chiếu assert[]
Khai báo nhóm object[class@anonymous]#2 [0] {
}
40
Giờ đây, các lớp, hàm và hằng số được nhập từ cùng một
object[class@anonymous]#2 [0] { }41 có thể được nhóm lại với nhau trong một câu lệnh
object[class@anonymous]#2 [0] { }40 duy nhất
object[class@anonymous]#2 [0] { }43
object[class@anonymous]#2 [0] { }44
object[class@anonymous]#2 [0] { }45
object[class@anonymous]#2 [0] { }46
Biểu thức Trả về Trình tạo
Tính năng này được xây dựng dựa trên chức năng trình tạo được đưa vào PHP 5. 5. Nó cho phép sử dụng câu lệnh
object[class@anonymous]#2 [0] { }47 trong trình tạo để cho phép trả về biểu thức cuối cùng [không được phép trả về theo tham chiếu]. Giá trị này có thể được tìm nạp bằng phương thức
object[class@anonymous]#2 [0] { }48 mới, phương thức này chỉ có thể được sử dụng sau khi trình tạo kết thúc việc tạo giá trị
object[class@anonymous]#2 [0] { }49
object[class@anonymous]#2 [0] { }50
object[class@anonymous]#2 [0] { }51
object[class@anonymous]#2 [0] { }52
Ví dụ trên sẽ xuất ra
Có thể trả về giá trị cuối cùng một cách rõ ràng từ trình tạo là một khả năng hữu ích cần có. Điều này là do nó cho phép một giá trị cuối cùng được trả về bởi một trình tạo [có lẽ từ một số dạng tính toán coroutine] có thể được xử lý cụ thể bởi mã máy khách đang thực thi trình tạo. Điều này đơn giản hơn nhiều so với việc buộc mã máy khách trước tiên kiểm tra xem giá trị cuối cùng đã được đưa ra chưa và sau đó, nếu có, hãy xử lý giá trị đó một cách cụ thể
Ủy quyền máy phát điện
Giờ đây, các trình tạo có thể tự động ủy quyền cho một trình tạo khác, đối tượng Traversable hoặc mảng mà không cần viết bản mẫu trong trình tạo ngoài cùng bằng cách sử dụng cấu trúc
object[class@anonymous]#2 [0] { }53
object[class@anonymous]#2 [0] { }54
object[class@anonymous]#2 [0] { }55
object[class@anonymous]#2 [0] { }56
Ví dụ trên sẽ xuất ra
Phép chia số nguyên với intdiv[]
Hàm intdiv[] mới thực hiện phép chia số nguyên cho các toán hạng của nó và trả về
object[class@anonymous]#2 [0] { }57
Ví dụ trên sẽ xuất ra
tùy chọn phiên
session_start[] hiện chấp nhận một loạt các tùy chọn ghi đè các chỉ thị cấu hình phiên thường được đặt trong php. ban đầu
Các tùy chọn này cũng đã được mở rộng để hỗ trợ phiên. lazy_write, được bật theo mặc định và khiến PHP chỉ ghi đè lên bất kỳ tệp phiên nào nếu dữ liệu phiên đã thay đổi và
object[class@anonymous]#2 [0] { }58, là một tùy chọn chỉ có thể được chuyển đến session_start[] để cho biết rằng dữ liệu phiên sẽ được đọc và sau đó
Ví dụ, để thiết lập phiên. cache_limiter thành
object[class@anonymous]#2 [0] { }59 và đóng phiên ngay lập tức sau khi đọc nó
object[class@anonymous]#2 [0] { }60
Hàm preg_replace_callback_array[] mới cho phép mã được viết rõ ràng hơn khi sử dụng hàm preg_replace_callback[]. Trước PHP 7, các cuộc gọi lại cần được thực thi theo biểu thức chính quy yêu cầu hàm gọi lại phải bị ô nhiễm với nhiều nhánh
Bây giờ, các cuộc gọi lại có thể được đăng ký cho từng biểu thức chính quy bằng cách sử dụng một mảng kết hợp, trong đó khóa là một biểu thức chính quy và giá trị là một cuộc gọi lại
Chức năng CSPRNG
Hai chức năng mới đã được thêm vào để tạo ra các số nguyên và chuỗi bảo mật bằng mật mã theo cách đa nền tảng. Random_bytes[] và Random_int[]
list[] luôn có thể giải nén các đối tượng triển khai ArrayAccess
Trước đây, list[] không được đảm bảo hoạt động chính xác với các đối tượng triển khai ArrayAccess. Điều này đã được sửa