Hướng dẫn is integer a string php? - số nguyên có phải là một chuỗi php không?

Nếu bạn muốn thực sự biết liệu một chuỗi có phải là biểu diễn hợp lệ của loại số nguyên PHP thực sự không ...

in_array[$string, array_map['strval', range[PHP_INT_MIN, PHP_INT_MAX]], true]

Tuy nhiên, điều này là không thể chạy vì tập hợp quá lớn [sẽ không phù hợp với bộ nhớ trong trường hợp này, nếu bạn lặp thay vào đó sẽ mất quá nhiều chu kỳ CPU].

Bạn có thể thực hiện tìm kiếm nhị phân với so sánh chuỗi, tuy nhiên có những cách tốt hơn.

Đơn giản nhất:

strlen[$string]  null]][0]]

Bạn cũng có thể thực hiện so sánh chuỗi nhưng bạn vẫn cần phải làm những việc như ctype_digit, kiểm tra độ dài là hợp lý [đừng lãng phí CPU trước khi làm những việc như ctype_digit] và có một số xử lý khó xử cho các số âm.

Lưu ý rằng Filter_VAR không khẳng định chính xác rằng một chuỗi thực sự là biểu diễn của số nguyên PHP. Nó sẽ cho phép một phần tử + và xung quanh khoảng trắng.

Bên trong PHP sử dụng hàm "_zend_handle_numeric_str" để so sánh nghiêm ngặt nhưng nó không trực tiếp phơi bày điều này ở bất cứ đâu, do đó, thủ thuật sử dụng các phím mảng [sử dụng nó để chuyển đổi bất kỳ chuỗi nào là biểu diễn của số nguyên PHP thành số nguyên PHP].

Nếu bạn muốn chuyển đổi an toàn nhị phân đến và từ PHP thì đây là cách tiếp cận.

Không phải ai cũng có thể muốn điều đó và nó có thể là một trường hợp xử lý đầu vào của người dùng. Filter_var không quá tệ cho điều đó và sẽ khá an toàn trong hầu hết các trường hợp đối với những người mới sử dụng PHP.

Kiểm tra độ dài, ctype_digit và sau đó kiểm tra giá trị được chuyển đổi mà nó nằm trong phạm vi cũng khá chắc chắn cho đầu vào của người dùng. Các sơ đồ phức tạp hơn có thể muốn cắt hoặc regex.

Vấn đề với rất nhiều câu trả lời ở đây về khía cạnh đó là trong khi câu hỏi mơ hồ, nhưng câu trả lời không nên có. Nếu bạn sẽ đề xuất một giải pháp, bạn sẽ có thể giải thích chính xác những gì nó sẽ và sẽ không mong đợi. Không có điều đó, không có câu trả lời nào phù hợp với một câu hỏi hoặc an toàn. Hướng dẫn sử dụng PHP không phải lúc nào cũng có ích vì nó không giải thích tất cả các cảnh báo cho từng phương pháp có liên quan mà nó cung cấp. Những thứ như ctype_digit và is_int rất đáng tin cậy và dễ dàng để dự đoán nhưng các chi tiết cụ thể của is_numeric, filter_var và tung hứng [+$ var] hoặc casting [intval/floatval] được ghi lại kém.

Đây là php fudge cho bạn. Nó có vô số lược đồ để giải thích các chuỗi là số nguyên, với sự không nhất quán. Phương pháp nghiêm ngặt nhất để xác thực một chuỗi số nguyên không được tiếp xúc trực tiếp với người dùng.

[Php 4, Php 5, Php 7, Php 8]

IS_INT - Tìm xem loại biến có số nguyên khôngFind whether the type of a variable is integer

Sự mô tả

is_int [hỗn hợp $value]: bool[mixed $value]: bool

Ghi chú::

Để kiểm tra xem một biến là số hoặc chuỗi số [chẳng hạn như đầu vào biểu mẫu, luôn luôn là một chuỗi], bạn phải sử dụng is_numeric [].is_numeric[].

Thông số

value

Biến được đánh giá.

Trả về giá trị

Trả về true nếu value là int, false nếu không.true if value is an int, false otherwise.

Ví dụ

Ví dụ #1 is_int [] ví dụis_int[] example

Ví dụ trên sẽ xuất ra:

is_int[23] = bool[true]
is_int['23'] = bool[false]
is_int[23.5] = bool[false]
is_int['23.5'] = bool[false]
is_int[NULL] = bool[false]
is_int[true] = bool[false]
is_int[false] = bool[false]

Xem thêm

  • is_bool [] - Tìm hiểu xem một biến có phải là boolean
  • is_float [] - Tìm liệu loại biến có nổi không
  • is_numeric [] - Tìm một biến là số hay chuỗi số
  • is_String [] - Tìm loại biến là chuỗi
  • is_array [] - Tìm xem một biến có phải là một mảng không
  • is_Object [] - Tìm xem một biến có phải là một đối tượng

Simon Neaves ¶

14 năm trước

strlen[$string] 

0

1

strlen[$string] 

3

6 năm trước

13 năm trước

4

5

strlen[$string] 

7

12 năm trước

12 năm trước

8

9

strlen[$string] 

Bài Viết Liên Quan

Chủ Đề