Hướng dẫn dùng null 0 trong PHP
answer 226 Đó là ngôn ngữ cụ thể, nhưng trong PHP:
Bây giờ, điều khó khăn là trong các ngôn ngữ động như PHP, tất cả chúng đều có giá trị trong ngữ cảnh boolean , (trong PHP) là như vậy Nếu bạn kiểm tra nó với Vậy tại sao chúng lại hữu ích?Vâng, hãy nhìn vào
Và tất nhiên, nếu bạn đối phó với các trạng thái: Bạn muốn tạo sự khác biệt giữa 226 hữu ích 5 bình luận chia sẻ answer 46
không có nhiều tính nhất quán trong PHP (mặc dù nó đang được cải thiện trên các bản phát hành mới nhất, nhưng có quá nhiều khả năng tương thích ngược). Mặc dù thiết kế
mong muốn một số nhất quán (được nêu trong câu trả lời đã chọn ở đây), tất cả đều trở nên khó hiểu khi bạn xem xét phương thức trả về việc sử dụng Bạn sẽ thường thấy null được sử dụng khi họ đã sử dụng false cho một thứ gì đó. ví dụ: filter_input (). Chúng trả về false nếu biến không thành công bộ lọc và null nếu biến không tồn tại (không tồn tại có nghĩa là nó cũng không thành công bộ lọc?) Các phương thức trả về false / null /
string / etc thay thế cho nhau là một sự tấn công khi tác giả quan tâm đến loại lỗi, ví dụ: Cuối cùng, đây là một số thú vị với kiểu tung hứng. thậm chí không bao gồm mảng hoặc đối tượng.
46 hữu ích 5 bình luận chia sẻ answer 26 Dưới đây là một ví dụ:
Vui lòng xem phần này để tham khảo thêm về các so sánh kiểu trong PHP. Nó sẽ cung cấp cho bạn một sự hiểu biết rõ ràng. 26 hữu ích 0 bình luận chia sẻ answer 5 Trong PHP, bạn có thể sử dụng các toán tử === và! == để kiểm tra không chỉ các giá trị có bằng nhau hay không mà còn xem các kiểu của chúng có khớp nhau hay không. Vì vậy, ví dụ: Bây giờ trong PHP, chất lượng giá trị này thường được sử dụng khi trả về một giá trị mà đôi khi có thể là Nếu bạn sẽ sử dụng kỹ thuật tương tự trong các hàm của mình, bất kỳ ai quen thuộc với thư viện PHP chuẩn sẽ hiểu điều gì đang xảy ra và cách kiểm tra xem giá trị trả về có phải là điều mong muốn hay có một số lỗi xảy ra trong quá trình xử lý hay không. Thực tế cũng vậy đối với các tham số hàm, bạn có thể xử lý chúng theo cách khác nhau tùy thuộc vào việc chúng là mảng hay chuỗi hay không, và kỹ thuật này cũng được sử dụng rất nhiều trong PHP, vì vậy mọi người sẽ dễ dàng hiểu được. Vì vậy, tôi đoán đó là sức mạnh. 5 hữu ích 0 bình luận chia sẻ answer 5 Sai, Không có, Không có gì, 0, Không xác định , v.v., v.v. Mỗi điều này có ý nghĩa cụ thể tương quan với các khái niệm thực tế. Đôi khi, nhiều nghĩa được nạp chồng vào một từ khóa hoặc giá trị duy nhất. Trong
C và C ++ ,
Sai chỉ ra không phải sự thật. Và
nó được sử dụng trong các giá trị nhị phân . Nó không có nghĩa là không được đặt, cũng không có nghĩa là Không có gì có thể chỉ ra rằng giá trị được đặt cụ thể là không có gì chỉ ra điều tương tự như null, nhưng có ý định. Không xác định trong một số ngôn ngữ cho biết rằng giá trị vẫn chưa được đặt vì không có mã nào chỉ định giá trị thực. 5 hữu ích 1 bình luận chia sẻ answer 4 Tôi vừa lãng phí 1/2 một ngày cố gắng để có được hoặc là một Đây là tất cả những gì tôi đang cố gắng làm, trước khi tôi phát hiện ra rằng logic không đi đúng hướng, dường như có một lỗ hổng trong mã hóa php: Khái niệm lấy một tên miền được lưu trữ trên một máy chủ và đảm bảo rằng nó không phải là cấp root, OK một số cách khác nhau để thực hiện việc này, nhưng tôi đã chọn khác do các hàm / cấu trúc php khác mà tôi đã thực hiện. Dù sao đây cũng là cơ sở của việc luyện tập:
CUỐI CÙNG sau khi đọc Chủ đề này, tôi thấy rằng điều này đã hiệu quả !!!
Cảm ơn vì bài viết này, bây giờ tôi hiểu rằng mặc dù đó là Giáng sinh, nó có thể không phải là Giáng
sinh Sau khi lãng phí một ngày để gỡ lỗi một số mã đơn giản, ước gì tôi đã biết điều này trước đây, vì tôi sẽ có thể xác định được vấn đề, thay vì đi khắp nơi để cố gắng làm cho nó hoạt động. Nó không hoạt động, như 4 hữu ích 0 bình luận chia sẻ answer 2 Từ tài liệu trực tuyến PHP :
Vì vậy, trong hầu hết các trường hợp, nó đều giống nhau. Mặt khác, cái
Để biết thêm thông tin, hãy kiểm tra trang " Toán tử so sánh " trong tài liệu trực tuyến PHP. Hi vọng điêu nay co ich. 2 hữu ích 0 bình luận chia sẻ answer 1 Sự khác biệt giữa các giá trị này luôn phụ thuộc vào các quy tắc chi tiết về ngôn ngữ cụ thể. Những gì bạn học được đối với PHP không nhất thiết phải đúng với Python, Perl hoặc C, v.v. Mặc dù việc học các quy tắc cho (các) ngôn ngữ bạn đang làm việc là rất có giá trị, nhưng dựa vào chúng quá nhiều sẽ gây ra rắc rối . Rắc rối xảy ra khi lập trình viên tiếp theo cần duy trì mã của bạn và bạn đã sử dụng một số cấu trúc tận dụng một số chi tiết nhỏ của Null so với False (ví dụ). Mã của bạn phải trông đúng (và ngược lại, mã sai sẽ trông sai ). 1 hữu ích 0 bình luận chia sẻ answer 1 Null được sử dụng trong cơ sở dữ liệu để biểu thị "không có bản ghi" hoặc "không có thông tin". Vì vậy, bạn có thể có một trường bit mô tả "người dùng này có muốn được chúng tôi gửi e-mail không", trong đó True có nghĩa là họ làm, False có nghĩa là họ không muốn được gửi bất kỳ thứ gì, nhưng Null có nghĩa là bạn không t biết. Họ có thể xuất hiện thông qua các liên kết bên ngoài và tương tự như vậy. Hàm ý logic của Null thường khác nhau - trong một số ngôn ngữ, NULL không bằng bất kỳ thứ gì, vì vậy if (a == NULL) sẽ luôn là false. Vì vậy, cá nhân tôi luôn khởi tạo boolean thành FALSE, và việc khởi tạo một boolean thành NULL sẽ trông hơi khó hiểu (ngay cả trong C, nơi cả hai đều chỉ là 0 ... chỉ là một thứ kiểu dáng). 1 hữu ích 0 bình luận chia sẻ answer 1 Tôi nghĩ rằng các nhà phát triển tồi tìm thấy tất cả các cách sử dụng khác nhau của null / 0 / false trong mã đó. Ví dụ, một trong những sai lầm phổ biến nhất mà các nhà phát triển mắc phải là trả về mã lỗi dưới dạng dữ liệu với một hàm.
Đây là một ví dụ về giao diện đường. Điều này được giải thích trong cuốn sách "Gỡ lỗi quy trình phát triển phần mềm" và cũng trong một cuốn sách khác "viết mã chính xác". Vấn đề với điều này, là hàm ý hoặc các giả định được thực hiện trên kiểu char. Trên một số trình biên dịch, kiểu ký tự có thể không được ký. Vì vậy, mặc dù bạn trả về -1, trình biên dịch có thể trả về 1 thay thế. Khó có thể phát hiện ra những giả định về trình biên dịch này trong C ++ hoặc C. Thay vào đó, cách tốt nhất là không trộn mã lỗi với dữ liệu của bạn. Vì vậy, các chức năng sau đây.
bây giờ trở thành
Điều này có nghĩa là bất kể nhà phát triển trẻ tuổi đến đâu trong cửa hàng phát triển của bạn, họ sẽ không bao giờ làm sai điều này. Mặc dù điều này không nói về thừa kế hoặc phụ thuộc vào mã. Vì vậy, nói chung, việc hoán đổi bool làm loại ngôn ngữ đầu tiên là ổn và tôi nghĩ joel đã nói về nó với bài đăng gần đây của anh ấy. Nhưng cố gắng không sử dụng các bools trộn và kết hợp với dữ liệu của bạn trong quy trình của bạn và bạn sẽ hoàn toàn ổn. 1 hữu ích 0 bình luận chia sẻ answer 1 Trong PHP, nó phụ thuộc vào việc bạn có đang xác thực các kiểu:
Về mặt kỹ thuật là null
1 hữu ích 0 bình luận chia sẻ answer 1 Một sự thật thú vị về
1 hữu ích 0 bình luận chia sẻ answer 0 Null không là gì, False là một bit, và 0 là (có thể là) 32 bit. Không phải là một chuyên gia PHP, nhưng trong một số ngôn ngữ hiện đại hơn, chúng không thể hoán đổi cho nhau. Tôi hơi nhớ việc 0 và false có thể hoán đổi cho nhau, nhưng với boolean là một kiểu thực tế, bạn có thể có các phương thức và đối tượng liên kết với nó nên đó chỉ là sự cân bằng. Null là null mặc dù, sự vắng mặt của bất cứ điều gì về cơ bản. 0 hữu ích 0 bình luận chia sẻ answer 0 Chà, tôi không thể nhớ đủ từ những ngày PHP của mình để trả lời phần "===", nhưng đối với hầu hết các ngôn ngữ kiểu C, NULL nên được sử dụng trong ngữ cảnh của các giá trị con trỏ, false dưới dạng boolean và 0 là một giá trị số chẳng hạn như int. '\ 0' là giá trị tùy chỉnh cho ngữ cảnh ký tự. Tôi cũng thường thích sử dụng 0.0 cho phao và đôi. Vì vậy .. câu trả lời nhanh là: ngữ cảnh. 0 hữu ích 0 bình luận chia sẻ answer 0 Trong hầu hết các ngôn ngữ hiện đại, null về mặt logic đề cập đến các con trỏ (hoặc tham chiếu) không có giá trị hoặc một biến không được khởi tạo. 0 là giá trị nguyên của 0 và false là giá trị boolean của, tốt, false. Để làm cho mọi thứ trở nên phức tạp, trong C, ví dụ, null, 0 và false đều được biểu diễn theo cùng một cách chính xác. Tôi không biết nó hoạt động như thế nào trong PHP. Sau đó, để làm phức tạp hơn mọi thứ, cơ sở dữ liệu có khái niệm null, có nghĩa là thiếu hoặc không áp dụng được và hầu hết các ngôn ngữ không có cách trực tiếp để ánh xạ DBNull sang null. Cho đến gần đây, ví dụ, không có sự phân biệt giữa int là null và là 0, nhưng điều đó đã được thay đổi với int nullable. Xin lỗi để làm cho âm thanh này phức tạp. Chỉ là đây đã là một điểm mấu chốt trong các ngôn ngữ trong nhiều năm và cho đến gần đây, nó vẫn chưa có bất kỳ giải pháp rõ ràng nào ở bất kỳ đâu. Mọi người thường chỉ kết hợp mọi thứ lại với nhau hoặc để trống hoặc 0 đại diện cho giá trị rỗng trong cơ sở dữ liệu, điều này không phải lúc nào cũng hoạt động tốt. 0 hữu ích 0 bình luận chia sẻ answer 0 Sai và 0 giống nhau về mặt khái niệm, tức là chúng là đẳng cấu. 0 là giá trị ban đầu cho đại số các số tự nhiên và False là giá trị ban đầu cho đại số Boolean. Nói cách khác, 0 có thể được định nghĩa là số, khi được thêm vào một số tự nhiên nào đó, sẽ sinh ra cùng một số:
Tương tự, False là một giá trị sao cho sự tách biệt của nó và bất kỳ giá trị nào khác là cùng một giá trị:
Null về mặt khái niệm là một cái gì đó hoàn toàn khác. Tùy thuộc vào ngôn ngữ, có các ngữ nghĩa khác nhau cho nó, nhưng không có ngữ nghĩa nào trong số đó mô tả "giá trị ban đầu" là False và 0 là như vậy. Không có đại số cho Null. Nó liên quan đến các biến, thường để biểu thị rằng biến không có giá trị cụ thể trong ngữ cảnh hiện tại. Trong hầu hết các ngôn ngữ, không có phép toán nào được định nghĩa trên Null và việc sử dụng Null làm toán hạng là một lỗi. Trong một số ngôn ngữ, có một giá trị đặc biệt được gọi là "bottom" chứ không phải "null", là một trình giữ chỗ cho giá trị của một phép tính không kết thúc. Tôi đã viết nhiều hơn về ý nghĩa của NULL ở những nơi khác. 0 hữu ích 1 bình luận chia sẻ answer 0 Ai đó có thể giải thích cho tôi tại sao 'NULL' không chỉ là một chuỗi trong một trường hợp so sánh?
0 hữu ích 1 bình luận chia sẻ answer -1 Các vấn đề với sự giả dối bắt nguồn từ lịch sử PHP. Vấn đề nhắm mục tiêu vào kiểu vô hướng không được xác định rõ.
Tính nghiêm ngặt của PHP7 là một bước tiến, nhưng có lẽ là chưa đủ. https://web-techno.net/typing-with-php-7-what-you-shouldnt-do/ -1 hữu ích 0 bình luận chia sẻ |