Bạn đang xem : php nhỏ hơn bằng
Toán tử so sánh
Các toán tử so sánh, như tên gọi của chúng, cho phép bạn so sánh
hai giá trị. Bạn cũng có thể quan tâm đến việc xem
các bảng so sánh loại ,
khi chúng hiển thị các ví dụ về các kiểu so sánh liên quan khác nhau.
Toán tử so sánh
Thí dụ
Tên
Kết quả
$ a == $ b
Bình đẳng
true
nếu $ a bằng $ b sau khi kết hợp kiểu.
$ a === $ b
Giống hệt nhau
true
nếu $ a bằng $ b và chúng giống nhau
loại hình.
$ a! = $ b
Không công bằng
true
nếu $ a không bằng $ b sau khi kết hợp kiểu.
$ a & lt; & gt; $ b
Không công bằng
true
nếu $ a không bằng $ b sau khi kết hợp kiểu.
$ a! == $ b
Không định nghĩa
true
nếu $ a không bằng $ b hoặc chúng không giống nhau
loại hình.
$ a & lt; $ b
Ít hơn
true
nếu $ a hoàn toàn nhỏ hơn $ b.
$ a & gt; $ b
Lớn hơn
true
nếu $ a lớn hơn $ b.
$ a & lt; = $ b
Ít hơn hoặc bằng
true
nếu $ a nhỏ hơn hoặc bằng $ b.
$ a & gt; = $ b
Lớn hơn hoặc bằng
true
nếu $ a lớn hơn hoặc bằng $ b.
$ a & lt; = & gt; $ b
Tàu không gian
int
nhỏ hơn, bằng hoặc lớn hơn 0 khi
$ a nhỏ hơn, bằng hoặc lớn hơn
$ b, tương ứng.
Nếu cả hai toán hạng là
chuỗi số ,
hoặc một toán hạng là một số và toán hạng kia là một
chuỗi số ,
thì việc so sánh được thực hiện ở dạng số.
Các quy tắc này cũng áp dụng cho
câu lệnh switch .
Việc chuyển đổi kiểu không diễn ra khi so sánh là
===
hoặc ! ==
vì điều này liên quan đến
so sánh loại cũng như giá trị.
Cảnh báo
Trước PHP 8.0.0, nếu một chuỗi được so sánh với một số
hoặc một chuỗi số thì chuỗi đó đã được chuyển đổi thành
số trước khi thực hiện so sánh. Điều này có thể dẫn đến đáng ngạc nhiên
kết quả như có thể thấy với ví dụ sau:
& lt;? php
var_dump
(
0
==
"a" p >
);
var_dump
(
"1"
==
< p> "01"
);
var_dump
(
"10"
==
"1e1"
);
var_dump
(
100
==
"1e2"
);
chuyển đổi (
"a" p>
) {
trường hợp
0
:
tiếng vang
"0"
;
break;
case
"a"
:
echo
"a"
< p>;
ngắt;
}
? & gt;
Kết quả của ví dụ trên trong PHP 7:
bool (đúng) bool (đúng) bool (đúng) bool (đúng) 0
Kết quả của ví dụ trên trong PHP 8:
bool (sai) bool (đúng) bool (đúng) bool (đúng) một
& lt;? php
// Các số nguyên
echo
1
& lt; = & gt;
1
;
// 0
tiếng vọng
1
& lt; = & gt;
2
;
// -1
tiếng vang
2
& lt; = & gt;
1
;
// 1
// Pha nổi
echo
1.5
& lt; = & gt;
1.5
;
// 0
echo
1.5
& lt; = & gt;
2,5
;
// -1
echo
2.5
& lt; = & gt;
1.5
;
// 1
// Chuỗi
echo
"a"
& lt; = & gt;
"a"
;
// 0
echo
"a"
& lt; = & gt;
"b"
;
// -1
echo
"b"
& lt; = & gt;
"a"
;
// 1
echo
"a"
& lt; = & gt;
"aa"
;
// -1
tiếng vang
"zz"
& lt; = & gt;
"aa"
;
// 1
// Mảng
echo [] & lt; = & gt; [];
// 0
echo [
1
,
2 p >
,
3
] & lt; = & gt; [
1
,
2
,
3
];
// 0
echo [
1
,
2 p >
,
3
] & lt; = & gt; [];
// 1
echo [
1
,
2 p >
,
3
] & lt; = & gt; [
1
,
2
,
1
];
// 1
echo [
1
,
2 p >
,
3
] & lt; = & gt; [
1
,
2
,
4
];
// -1
// Đối tượng
$ a
= (đối tượng) [ p >
"a"
= & gt;
"b"
];
$ b
= (đối tượng) [
"a"
= & gt;
"b"
];
echo
$ a
& lt; = & gt;
$ b
;
// 0
$ a
= (đối tượng) [
"a" < / p>
= & gt;
"b"
];
$ b
= (đối tượng) [
"a"
= & gt;
"c"
];
echo
$ a
& lt; = & gt;
$ b
;
// -1
$ a
= (đối tượng) [
"a"
= & gt;
"c"
];
$ b
= (đối tượng) [
"a"
= & gt;
"b"
];
echo
$ a
& lt; = & gt;
$ b
;
// 1
// không chỉ các giá trị được so sánh; các khóa phải khớp với
$ a
= (đối tượng) [
"a"
= & gt;
"b"
];
$ b
= (đối tượng) [
"b"
= & gt;
"b"
];
echo
$ a
& lt; = & gt;
$ b
;
// 1
? & gt;
Đối với các loại khác nhau, so sánh được thực hiện theo sau
bảng (theo thứ tự).
So sánh với các loại khác nhau
Loại toán hạng 1
Loại toán hạng 2
Kết quả
null
hoặc
string
string
Chuyển đổi null
thành “”, so sánh số hoặc từ vựng
bool
hoặc
null
bất cứ điều gì
Chuyển đổi cả hai bên thành
bool
, false
& lt; true
đối tượng
đối tượng
Các lớp tích hợp có thể xác định so sánh riêng của nó, các lớp khác nhau
không thể so sánh được, cùng một lớp, hãy xem So sánh đối tượng
string
,
resource
,
int
hoặc
nổi
string
,
resource
,
int
hoặc
nổi
Dịch các chuỗi và tài nguyên sang số, phép toán thông thường
mảng
mảng
Mảng có ít thành viên sẽ nhỏ hơn, nếu khóa từ toán hạng 1 thì không
được tìm thấy trong toán hạng 2 thì các mảng là không thể so sánh được, ngược lại – so sánh
giá trị theo giá trị (xem ví dụ sau)
đối tượng
bất cứ điều gì
đối tượng
luôn lớn hơn
mảng
bất cứ điều gì
mảng
luôn lớn hơn
Ví dụ # 1 so sánh Boolean / null
& lt;? php
// Bool và null luôn được so sánh như bool
var_dump
( p>
1
==
ĐÚNG
);
// TRUE - giống với (bool) 1 == TRUE
var_dump
(
0 p>
==
FALSE
);
// TRUE - giống với (bool) 0 == FALSE
var_dump
(
100 p>
& lt;
ĐÚNG
);
// FALSE - giống như (bool) 100 & lt; TRUE
var_dump
(-
10
& lt;
FALSE p >
);
// FALSE - giống như (bool) -10 & lt; FALSE
var_dump
(
tối thiểu
(-
100
, -
10
,
KHÔNG ĐẦY ĐỦ
,
10
< p>,
100
));
// NULL - (bool) NULL & lt; (bool) -100 là FALSE & lt; ĐÚNG
? & Gt;
Ví dụ số 2 Phiên âm về so sánh mảng chuẩn
& lt;? php
// Mảng được so sánh như vậy với các toán tử so sánh tiêu chuẩn cũng như toán tử tàu vũ trụ.
hàm p>
standard_array_compare
(
$ op1
,
$ op2
)
{
if (
số lượng
(
$ op1
) & lt;
đếm
(
$ op2
)) {
trở lại -
1
;
// $ op1 & lt; $ op2
} elseif (
số lượng
(
$ op1
) & gt ;
số lượng
(
$ op2
)) {
trở lại
1 < / p>
;
// $ op1 & gt; $ op2
}
foreach (
$ op1
với tư cách là
$ key
= & gt;
$ val
) {
if (!
array_key_exists
( p >
$ key
,
$ op2
)) {
quay lại
1
;
} elseif (
$ val
& lt;
$ op2
[
$ key
]) {
return -
1
;
} elseif (
$ val < / p>
& gt;
$ op2
[
$ key
]) {
return < / p>
1
;
}
}
quay lại
0
;
// $ op1 == $ op2
}
? & gt;
Cảnh báo
So sánh các số dấu phẩy động
Do cách float được thể hiện bên trong, bạn
không nên kiểm tra hai phao cho bằng nhau.
Xem tài liệu về float để biết thêm thông tin.
Lưu ý :
Hãy lưu ý rằng sự thay đổi kiểu của PHP không phải lúc nào cũng rõ ràng khi so sánh các giá trị của các kiểu khác nhau,
đặc biệt là so sánh int với bools hoặc int với chuỗi. Do đó, nó nói chung là
nên sử dụng các so sánh===
và! ==
thay vì so sánh
==
và! =
trong hầu hết các trường hợp.
Giá trị có thể so sánh được
Trong khi so sánh danh tính ( ===
và ! ==
)
có thể được áp dụng cho các giá trị tùy ý, các toán tử so sánh khác chỉ nên
áp dụng cho các giá trị có thể so sánh được. Kết quả của việc so sánh các giá trị không thể so sánh được là
không xác định, và không nên dựa vào.
Toán tử bậc ba
Một toán tử điều kiện khác là toán tử “?:” (Hoặc bậc ba).
Ví dụ # 3 Chỉ định giá trị mặc định
& lt;? php
// Ví dụ sử dụng cho: Toán tử bậc ba
$ action
= (trống (
$ _POST
[
'hành động'
]))?
'default'
:
$ _POST
[
'action'
< p>];
// Ở trên giống với câu lệnh if / else này
if (trống (
$ _POST
[
'action'
]))) {
$ action p >
=
'default'
;
} else {
$ action
=
$ _POST
[
'hành động'
];
}
? & gt;
(expr1)? (expr2): (expr3)
đánh giá thành
expr2
nếu
expr1
đánh giá là true
và
expr3
nếu
expr1
đánh giá là false
.
Đánh giá cấp tốc cho bạn đánh giá cao và đánh giá cao
Có thể bỏ đi phần giữa của toán tử bậc ba.
Biểu thức expr1 ?: expr3
đánh giá là
kết quả của expr1 nếu expr1
đánh giá là true
và nếu không thì expr3.
expr1 chỉ được đánh giá một lần trong trường hợp này.
Lưu ý :
Xin lưu ý rằng toán tử bậc ba là một biểu thức và nó
không đánh giá cho một biến mà là kết quả của một biểu thức. Đây
là điều quan trọng cần biết nếu bạn muốn trả về một biến bằng tham chiếu.
Câu lệnhreturn $ var == 42? $ a: $ b;
trong a
Do đó, hàm return-by-reference sẽ không hoạt động và một cảnh báo là
cấp.
Lưu ý :
Nên tránh các biểu thức bậc ba “xếp chồng”.
Hành vi của PHP khi sử dụng nhiều hơn một toán tử bậc ba không có dấu ngoặc đơn trong một
cách diễn đạt không rõ ràng so với các ngôn ngữ khác.
Thật vậy trước PHP 8.0.0, các biểu thức bậc ba được đánh giá là liên kết trái,
thay vì liên kết phải như hầu hết các ngôn ngữ lập trình khác.
Dựa vào thuyết kết hợp trái không được chấp nhận kể từ PHP 7.4.0.
Kể từ PHP 8.0.0, toán tử bậc ba là không liên kết.Ví dụ # 4 Hành vi không rõ ràng của bậc ba
& lt;? php
// thoạt nhìn, phần sau dường như xuất ra 'true'
echo (
< p> true
?
'true'
:
sai
?
< p> 't'
:
'f'
);
// tuy nhiên , Đầu ra thực tế của phần trên là 't' trước PHP 8.0.0
// điều này là do các biểu thức bậc ba là kết hợp trái// sau đây là phiên bản rõ ràng hơn của cùng mã như trên
echo ((
true
?
'true'
< p>:
sai
)?
't'
:
'f' p>
);
// ở đây, người ta có thể thấy rằng biểu thức đầu tiên được đánh giá là 'true',
// lần lượt đánh giá thành (bool) true, do đó trả về nhánh thực của biểu thức
// bậc ba thứ hai.? & gt;
Lưu ý :
Tuy nhiên, chuỗi ký tự ngắn hạn (
?:
) ổn định và hoạt động hợp lý.
Nó sẽ đánh giá đối số đầu tiên đánh giá thành một giá trị không giả mạo. Lưu ý rằng không xác định
giá trị vẫn sẽ đưa ra cảnh báo.Ví dụ # 5 Chuỗi bậc ba ngắn hạn
& lt;? php
echo
0
?:
1
?:
2
?:
3
,
PHP_EOL
;
// 1
tiếng vọng
0
?:
0 p >
?:
2
?:
3
,
PHP_EOL p >
;
// 2
tiếng vọng
0
?:
0 p >
?:
0
?:
3
,
PHP_EOL p >
;
// 3
? & gt;
Nhà điều hành Null Coalescing
Một toán tử viết tắt hữu ích khác là “??” (hoặc null kết hợp) toán tử.
Ví dụ # 6 Chỉ định giá trị mặc định
& lt;? php
// Ví dụ về cách sử dụng cho: Null Coalesce Operator
$ action
= p>
$ _POST
[
'hành động'
] ??
'default'
;
// Ở trên giống với câu lệnh if / else này
< / p>
if (Isset (
$ _POST
[
'action'
])) {
$ action
=
$ _POST
[
'action'
];
} khác {
$ action
=
'default'
;
}
? & gt;
(expr1) ?? (expr2)
đánh giá là
expr2
nếu
expr1
là
null
và
expr1
nếu không.
Các toifis đánh giá nhanh, và ngược lại.
Đặc biệt, nhà điều hành này không phát ra thông báo hay cảnh báo nếu bên trái
giá trị không tồn tại, giống như Isset () . Điều này đặc biệt
hữu ích trên các phím mảng.
Lưu ý :
Xin lưu ý rằng toán tử kết hợp rỗng là một biểu thức và rằng nó
không đánh giá cho một biến mà là kết quả của một biểu thức. Đây
là điều quan trọng cần biết nếu bạn muốn trả về một biến bằng tham chiếu.
Câu lệnhreturn $ foo ?? $ bar;
trong một
Do đó, hàm return-by-reference sẽ không hoạt động và một cảnh báo là
cấp.
Lưu ý :
Toán tử liên kết null có mức độ ưu tiên thấp. Điều đó có nghĩa là nếu trộn nó
với các toán tử khác (chẳng hạn như nối chuỗi hoặc toán tử số học)
dấu ngoặc đơn có thể sẽ được yêu cầu.
& lt;? php
// Đưa ra cảnh báo rằng $ name là không xác định.
'Mr . '
.
$ name
??
'Ẩn danh'
;
// In "Ông Ẩn danh"
< p> in
'Mr. '
. (
$ name
??
'Ẩn danh'
);
? & gt;
Lưu ý :
Xin lưu ý rằng toán tử liên kết null cho phép lồng ghép đơn giản:
Ví dụ số 7 Lồng toán tử liên kết null
& lt;? php
$ foo
=
vô hiệu
;
< p> $ bar
=
null
;
$ baz
= < / p>
1
;
$ qux
=
2
;
echo
$ foo
??
$ bar
??
$ baz
??
$ qux
;
// kết quả 1
? & gt;
Xem thêm những thông tin liên quan đến chủ đề php nhỏ hơn bằng
PHP làm quen với mảng
- Tác giả: Út Tuyền
- Ngày đăng: 2022-04-08
- Đánh giá: 4 ⭐ ( 3521 lượt đánh giá )
- Khớp với kết quả tìm kiếm: PHP: Hypertext Preprocessor, thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
php web
Toán tử, cách sử dụng toán tử trong PHP
- Tác giả: hoclaptrinh.vn
- Đánh giá: 5 ⭐ ( 2748 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Ngôn ngữ PHP hỗ trợ các kiểu toán tử sau: – Toán tử số học – Toán tử so sánh – Toán tử logic (hay toán tử quan hệ) – Toán tử gán – Toán tử điều kiện (hoặc toán tử 3 ngôi)
Toán tử PHP
- Tác giả: hocwebchuan.com
- Đánh giá: 4 ⭐ ( 6746 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Toán tử.
Các hàm xử lý chuỗi trong PHP
- Tác giả: hocphp.net
- Đánh giá: 3 ⭐ ( 7825 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Chuỗi là một khái niệm quen thuộc đối với các lập trình viên PHP. Vậy có những hàm xử lý chuỗi nào, chúng ta cùng tìm hiểu nhé.
Các toán tử logic của Excel: bằng, không bằng, lớn hơn, nhỏ hơn
- Tác giả: blog.hocexcel.online
- Đánh giá: 4 ⭐ ( 8633 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Với bài viết này, blog.hocexcel.online đã chia sẻ cho các bạn các toán từ logic của Excel một các chi tiết nhất cùng các ví dụ…
Tìm giá trị lớn nhất nhỏ nhất trong PHP
- Tác giả: vietjack.com
- Đánh giá: 3 ⭐ ( 7609 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Tìm giá trị lớn nhất nhỏ nhất trong PHP | Hơn 100 bài tập PHP có giải hay nhất tại VietJack – Tuyển tập 100 bài tập PHP có giải từ cơ bản tới nâng cao bao gồm Bài tập PHP cơ bản, vòng lặp, lệnh if else, mảng, hàm, regular expression, date time, string, class, array, chuỗi, lớp, các giải thuật sắp xếp.
Bài 1: So sánh lớn hơn, nhỏ hơn, bằng nhau bằng hình ảnh (Toán lớp 1)
- Tác giả: 360do.vn
- Đánh giá: 4 ⭐ ( 8025 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Trang này gồm 8 bài toán so sánh lớn hơn, nhỏ hơn, bằng nhau với các bài toán hình ảnh. Các em nhìn kỹ hình ảnh ở mỗi bài toán và dùng chuột kéo các số và các…
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình