Câu trả lời. Sử dụng hàm PHP $invoice->paymentDate->timestamp;
7
$invoice->paymentDate->timestamp;
Bạn có thể sử dụng hàm PHP
$invoice->paymentDate->timestamp;
7 để kiểm tra xem một biến có phải là null hay khôngHãy xem một ví dụ để hiểu chức năng này hoạt động như thế nào
Hàm
$invoice->paymentDate->timestamp;
7 cũng trả về $invoice->paymentDate->timestamp;
0 cho biến không xác định. Đây là một ví dụCâu hỏi thường gặp liên quan
Dưới đây là một số câu hỏi thường gặp khác liên quan đến chủ đề này
Hãy thảo luận về
$invoice->paymentDate->timestamp;
0 trong giây lát. Một số người gọi khái niệm về $invoice->paymentDate->timestamp;
0 là "sai lầm tỷ đô", lập luận rằng nó cho phép một loạt các trường hợp khó khăn mà chúng ta phải tính đến khi viết mã. Có vẻ lạ khi làm việc trong một ngôn ngữ lập trình không hỗ trợ $invoice->paymentDate->timestamp;
0, nhưng thực tế có những mẫu hữu ích để thay thế nó và loại bỏ những nhược điểm của nóTrước tiên hãy minh họa những nhược điểm đó bằng một ví dụ. Ở đây chúng ta có một đối tượng giá trị
$invoice->paymentDate->timestamp;
3 với biến dấu thời gian, hàm định dạng và hàm tạo tĩnh có tên là $invoice->paymentDate->timestamp;
4. Tại sao chúng tôi không sử dụng $invoice->paymentDate->timestamp;
5 sẽ sớm trở nên rõ ràng________số 8Tiếp theo, chúng tôi có một hóa đơn với ngày thanh toán
class Invoice
{
public ?Date $paymentDate = null;
// …
}
Ngày thanh toán không thể thực hiện được vì hóa đơn có thể đang chờ xử lý và do đó chưa có ngày thanh toán
Như một lưu ý phụ. hãy xem ký hiệu nullable. chúng tôi đã đặt trước
$invoice->paymentDate->timestamp;
3 một dấu hỏi, cho biết rằng nó có thể là $invoice->paymentDate->timestamp;
3 hoặc $invoice->paymentDate->timestamp;
0. Chúng tôi cũng đã thêm một giá trị mặc định là $invoice->paymentDate->timestamp;
9 để đảm bảo rằng giá trị này không bao giờ bị hủy khởi tạo; Quay lại ví dụ của chúng tôi. điều gì sẽ xảy ra nếu chúng tôi muốn làm điều gì đó với dấu thời gian của ngày thanh toán
$invoice->paymentDate->timestamp;
Vì chúng tôi không chắc chắn
50 là$invoice->paymentDate->timestamp;
3 hay $invoice->paymentDate->timestamp;
0, nên chúng tôi có nguy cơ gặp phải lỗi thời gian chạy5Trước PHP 7. 0, bạn sẽ sử dụng
53 để ngăn các loại lỗi đó$invoice->paymentDate->timestamp;
0Điều đó khá dài dòng và đó là lý do tại sao một toán tử mới được giới thiệu. toán tử hợp nhất null
$invoice->paymentDate->timestamp;
1Toán tử này sẽ tự động thực hiện kiểm tra
54 trên toán hạng bên trái của nó. Nếu điều đó trả về 55, nó sẽ trả về dự phòng được cung cấp bởi toán hạng bên tay phải của nó. Trong trường hợp này. dấu thời gian của ngày thanh toán hoặc$invoice->paymentDate->timestamp;
0. Một bổ sung tuyệt vời giúp giảm độ phức tạp của mã của chúng tôiPHP7. 4 đã thêm một tốc ký kết hợp null khác. toán tử gán hợp nhất null. Cái này không chỉ hỗ trợ dự phòng giá trị mặc định mà còn ghi nó trực tiếp vào toán hạng bên trái. Nó trông như thế này
$invoice->paymentDate->timestamp;
5Vì vậy, nếu ngày thanh toán đã được đặt, chúng tôi sẽ sử dụng ngày đó trong
57, nếu không, chúng tôi sẽ sử dụng 58 làm phương án dự phòng cho 57 và cũng ghi nó vào 50 ngay lập tứcMột trường hợp sử dụng phổ biến hơn cho toán tử gán hợp nhất null là hàm ghi nhớ. một chức năng lưu trữ kết quả sau khi nó được tính toán
$invoice->paymentDate->timestamp;
0Hàm này sẽ thực hiện đối sánh biểu thức chính quy trên một chuỗi có mẫu, nhưng nếu cung cấp cùng một chuỗi và cùng một mẫu, nó sẽ chỉ trả về kết quả được lưu trong bộ nhớ cache. Trước khi chúng tôi có phép gán toán tử hợp nhất null, chúng tôi cần viết nó như vậy
$invoice->paymentDate->timestamp;
1Có thêm một tính năng hướng null trong PHP được thêm vào PHP 8. toán tử nullsafe. Hãy xem ví dụ này
$invoice->paymentDate->timestamp;
2Điều gì xảy ra nếu ngày thanh toán của chúng tôi là ngày ___20?
class Invoice
{
public ?Date $paymentDate = null;
// …
}
0Suy nghĩ đầu tiên của bạn có thể là sử dụng toán tử hợp nhất null, nhưng điều đó sẽ không hiệu quả
class Invoice
{
public ?Date $paymentDate = null;
// …
}
1Bạn thấy đấy, toán tử hợp nhất null không hoạt động với các lệnh gọi phương thức trên
$invoice->paymentDate->timestamp;
0. Vì vậy, trước PHP 8, bạn cần làm điều nàyclass Invoice
{
public ?Date $paymentDate = null;
// …
}
2May mắn thay, có toán tử nullsafe. nó sẽ chỉ thực hiện các cuộc gọi phương thức khi có thể và thay vào đó trả về
$invoice->paymentDate->timestamp;
0class Invoice
{
public ?Date $paymentDate = null;
// …
}
3# Xử lý null — còn một cách khác
Tôi đã bắt đầu phần này bằng cách nói rằng
$invoice->paymentDate->timestamp;
0 được gọi là "sai lầm hàng tỷ đô la" nhưng tiếp theo tôi sẽ chỉ cho bạn ba cách PHP sử dụng $invoice->paymentDate->timestamp;
0 với cú pháp lạ mắt. Thực tế là $invoice->paymentDate->timestamp;
0 thường xuyên xuất hiện trong PHP. Thật tốt khi chúng ta có cú pháp để xử lý nó một cách lành mạnh. Tuy nhiên, bạn cũng nên xem xét các lựa chọn thay thế cho việc sử dụng hoàn toàn $invoice->paymentDate->timestamp;
0. Một thay thế như vậy là mẫu đối tượng nullThay vì một lớp
$invoice->paymentDate->timestamp;
08 quản lý trạng thái nội bộ về việc nó có được trả tiền hay không; . $invoice->paymentDate->timestamp;
09 và $invoice->paymentDate->timestamp;
10. Việc thực hiện $invoice->paymentDate->timestamp;
09 trông như thế nàyclass Invoice
{
public ?Date $paymentDate = null;
// …
}
4$invoice->paymentDate->timestamp;
10 trông như thế nàyclass Invoice
{
public ?Date $paymentDate = null;
// …
}
5Tiếp theo, có một giao diện
$invoice->paymentDate->timestamp;
08class Invoice
{
public ?Date $paymentDate = null;
// …
}
6Cuối cùng, đây là hai lớp ngày
class Invoice
{
public ?Date $paymentDate = null;
// …
}
7class Invoice
{
public ?Date $paymentDate = null;
// …
}
8Mẫu đối tượng rỗng nhằm mục đích thay thế
$invoice->paymentDate->timestamp;
0 bằng các đối tượng thực tế; . Một lợi ích khác của việc sử dụng mẫu này là các lớp trở nên đại diện hơn cho thế giới thực. thay vì "ngày hoặc null", đó là "ngày hoặc ngày không xác định", thay vì "hóa đơn có trạng thái" thì đó là "hóa đơn đã thanh toán hoặc hóa đơn đang chờ xử lý". Bạn sẽ không cần phải lo lắng về $invoice->paymentDate->timestamp;
0 nữa