sách gpt4 ăn đã đi

Giải thích chi tiết về sự khác biệt giữa các hằng số định nghĩa() và const trong PHP

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 26 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này cung cấp giải thích chi tiết về sự khác biệt giữa các hằng số định nghĩa () và const trong PHP, được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

Các ví dụ trong bài viết này mô tả sự khác biệt giữa các hằng số định nghĩa() và const trong PHP. Share cho mọi người tham khảo nhé, chi tiết như sau:

Lời nói đầu.

Hôm nay tôi thấy một bài viết rất thú vị khác trên Stackoverflow nên tôi đã dịch nó và nhặt nó lên. Bài viết được viết bởi NikiC, một trong những thành viên phát triển PHP và độ tin cậy của nó là không thể nghi ngờ.

chữ.

Trong PHP5.3, có hai cách để xác định hằng số:

  1. sử dụnghằng sốTừ khóa
  2. sử dụngđịnh nghĩa()phương pháp
?
1
2
hằng số ĐỒ ĂN = 'THANH' ;
định nghĩa( 'ĂN' , 'THANH' );

Sự khác biệt cơ bản giữa hai phương thức là const xác định hằng số khi mã được biên dịch, trong khi định nghĩa xác định hằng số khi mã được chạy. Điều này khiến const có những nhược điểm sau:

  • hằng sốKhông thể được sử dụng trong các câu lệnh có điều kiện. Nếu bạn muốn xác định một biến toàn cục,hằng sốNó phải ở cấp độ ngoài cùng của toàn bộ mã:
?
1
2
3
4
5
6
7
nếu như (...) {
   hằng số ĐỒ ĂN = 'THANH' // không hợp lệ
}
// Nhưng
nếu như (...) {
   định nghĩa( 'ĂN' , 'THANH' ); // có hiệu lực
}

Bạn có thể hỏi tại sao tôi làm điều này? Một trong những ví dụ phổ biến nhất là khi bạn kiểm tra xem một hằng số đã được xác định chưa:

?
1
2
3
nếu như (!đã định nghĩa( 'ĂN' )) {
   định nghĩa( 'ĂN' , 'THANH' );
}
  • hằng sốchỉ có thể được sử dụng để khai báo các biến (chẳng hạn như số, chuỗi hoặc true, false, null, _FILE_) vàđịnh nghĩa()Biểu thức cũng được chấp nhận. Tuy nhiên, sau PHP5.6 const cũng có thể chấp nhận các biểu thức không đổi:
?
1
2
hằng số BIT_5 = 1 << 5;  // Hợp lệ sau PHP5.6, không hợp lệ trước PHP5.6
định nghĩa( 'BIT_5' , 1 << 5); // Luôn hợp lệ
  • hằng sốViệc đặt tên liên tục chỉ có thể sử dụng văn bản đơn giản vàđịnh nghĩa()Cho phép bạn đặt tên hằng bằng cách sử dụng bất kỳ biểu thức nào. Bằng cách này chúng ta có thể làm như sau:
?
1
2
3
( $tôi = 0; $tôi < 32; ++ $tôi ) {
   định nghĩa( 'CHÚT_' . $tôi , 1 << $tôi );
}
  • hằng sốCác hằng số được xác định có phân biệt chữ hoa chữ thường, nhưngđịnh nghĩacho phép bạn đặt tham số thứ ba của nó thànhĐÚNG VẬYĐể tắt phân biệt chữ hoa chữ thường:
?
1
2
3
định nghĩa( 'ĂN' , 'THANH' , ĐÚNG VẬY);
tiếng vọng ĐỒ ĂN; // THANH
tiếng vọng đồ ăn; // THANH

Đây là những điểm bạn cần chú ý. Vì vậy, bây giờ tôi sẽ giải thích những điều sau đây, tại sao cá nhân tôi luôn sử dụng const khi không liên quan đến các tình huống trên:

  • hằng sốDễ đọc và đẹp hơn.
  • hằng sốMặc định cho hiện tạikhông gian tênĐể xác định các hằng số bên dưới, hãy sử dụngđịnh nghĩabạn cần phải viết ra toàn bộkhông gian tênĐường dẫn đầy đủ đến:
?
1
2
3
4
không gian tên A\B\C;
// Nếu bạn muốn định nghĩa hằng số A\B\C\FOO:
hằng số ĐỒ ĂN = 'THANH' ;
định nghĩa( 'A\B\C\FOO' , 'THANH' );
  • Kể từ PHP5.6, hãy sử dụnghằng sốMảng cũng có thể được định nghĩa là hằng số. Vàđịnh nghĩaTính năng này hiện không được hỗ trợ nhưng nó sẽ được triển khai trong PHP7:
?
1
2
hằng số FOO = [1, 2, 3];  // Hợp lệ trong PHP 5.6
định nghĩa( 'ĂN' , [1, 2, 3]); // Không hợp lệ trong PHP 5.6, hợp lệ trong PHP 7.0
  • bởi vìhằng sốNó được thực thi tại thời điểm biên dịch, vì vậy nó nhanh hơnđịnh nghĩaNhanh lên.

Đặc biệt khi sử dụng định nghĩa để định nghĩa một số lượng lớn các hằng số, PHP sẽ chạy rất chậm. Mọi người thậm chí còn phát minh ra những thứ như apc_load_constantshide để tránh vấn đề này.

So với định nghĩa, const có thể tăng gấp đôi hiệu quả của việc xác định hằng số (trên máy phát triển được định cấu hình bằng XDebug, sự khác biệt này sẽ còn lớn hơn). Nhưng xét về thời gian truy vấn thì không có sự khác biệt giữa cả hai (vì cả hai đều sử dụng cùng một bảng truy vấn).

Điều cuối cùng cần lưu ý là const có thể được sử dụng trong các lớp và giao diện, nhưng định nghĩa không thể làm điều này:

?
1
2
3
4
5
6
lớp học Đồ ăn {
   hằng số THANH = 2; // có hiệu quả
}
lớp học Căn cứ {
   định nghĩa( 'CÁI MÀ' , 2); // không hợp lệ
}

Tóm tắt.

Trừ khi bạn cần sử dụng biểu thức hoặc xác định hằng số trong các câu lệnh có điều kiện, tốt hơn là chỉ sử dụng const để mã dễ đọc! .

Tôi hy vọng bài viết này sẽ hữu ích cho mọi người trong việc lập trình PHP.

Liên kết gốc: https://www.jianshu.com/p/a38b81433183.

Cuối cùng, bài viết này về giải thích chi tiết về sự khác biệt giữa các hằng số định nghĩa() và const trong PHP kết thúc ở đây. Nếu bạn muốn biết thêm về giải thích chi tiết về sự khác biệt giữa các hằng số định nghĩa() và const trong PHP, vui lòng tìm kiếm. bài viết của CFSDN Hoặc tiếp tục duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress