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 chấm độ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 Show
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ề. thẩm quyền giải quyết Toán tử kết hợp NullToá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 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 danhHỗ 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ọnglà 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 tài liệu tham khảo assert() Khai báo nhóm object(class@anonymous)#2 (0) { } 40Giờ đâ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ạoTí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ệnGiờ đâ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 soạn sẵn 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) { }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ênsession_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 thành support , đượ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, đây là một tùy chọn chỉ có thể được chuyển đến session_start() để cho biết rằng Ví dụ: để đặt thành object(class@anonymous)#2 (0) { }59 và ngay lập tức đóng phiên 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 CSPRNGHai 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 ArrayAccessTrướ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 Làm cách nào để sử dụng Isset với toán tử bậc ba trong PHP?PHP Ternary Operator với Isset() Ví dụ
. Hàm isset() trả về true nếu các biến (được gửi tới hàm trong các tham số) được đặt và không phải là null. Việc bao các biểu thức trong toán tử bậc ba bằng dấu ngoặc đơn là tùy chọn .
isset ($_ GET trong PHP là gì?Hàm PHP isset()
. Hàm này trả về true nếu biến tồn tại và không phải là NULL, ngược lại trả về false. checks whether a variable is set, which means that it has to be declared and is not NULL. This function returns true if the variable exists and is not NULL, otherwise it returns false.
Tôi có thể sử dụng cái gì thay vì isset trong PHP?Giá trị tương đương của isset($var) đối với giá trị trả về của hàm là func() === null . isset về cơ bản làm một. == so sánh null, không gây ra lỗi nếu biến được kiểm tra không tồn tại.
PHP có toán tử bậc ba không?Thuật ngữ "toán tử bậc ba" dùng để chỉ một toán tử hoạt động trên ba toán hạng. Toán hạng là một khái niệm đề cập đến các phần của một biểu thức mà nó cần. Toán tử bậc ba trong PHP là toán tử duy nhất cần ba toán hạng. điều kiện, kết quả đúng và kết quả sai . |