Toán tử điều kiện trong PHP là gì?

Khi viết mã, chúng tôi luôn tìm kiếm lối tắt ở mọi nơi hoặc cố gắng làm mọi thứ ngắn gọn và hiệu quả. Trong PHP và các ngôn ngữ lập trình khác, toán tử bậc ba là một cách ngắn gọn để viết các câu lệnh có điều kiện giúp cải thiện khả năng đọc và hiệu quả của mã

Bạn có thể đã đọc về câu lệnh điều kiện "if-else" của PHP. Toán tử bậc ba PHP là một cách khác để triển khai khái niệm này bằng một kỹ thuật khác. Ở đây, ba thao tác khác nhau sẽ hoạt động cùng nhau để tạo thành một toán tử duy nhất. Trong hướng dẫn này, bạn sẽ tìm hiểu về toán tử điều kiện

Toán tử ternary trong PHP là gì?

Toán tử bậc ba có thể được định nghĩa là toán tử điều kiện hợp lý để cắt các dòng mã trong chương trình của bạn trong khi thực hiện so sánh cũng như điều kiện. Đây được coi là một phương pháp thay thế để triển khai các câu lệnh if-else hoặc thậm chí lồng nhau. Câu lệnh điều kiện này thực hiện từ trái sang phải. Sử dụng toán tử bậc ba này không chỉ là một giải pháp hiệu quả mà còn là trường hợp tốt nhất với cách tiếp cận tiết kiệm thời gian. Nó trả về một cảnh báo trong khi gặp bất kỳ giá trị void nào trong các điều kiện của nó

Cú pháp sử dụng toán tử điều kiện trong PHP là

cú pháp

[Conditional statement] ? [Statement_1] : [Statement_2];

Thông số

  1. tuyên bố điều kiện. Đây là một biểu thức PHP hợp lệ sẽ được đánh giá để trả về giá trị Boolean
  2. Tuyên bố_1. Đây sẽ là câu lệnh sẽ được thực hiện khi kết quả điều kiện sẽ trả về true hoặc ở trạng thái true
  3. Tuyên bố_2. Đây sẽ là câu lệnh sẽ được thực hiện khi kết quả điều kiện sẽ trả về true hoặc ở trạng thái false

Ví dụ

đầu ra

Passed

Khi nào nên sử dụng toán tử ternary

Bạn có thể sử dụng toán tử bậc ba khi cần đơn giản hóa các câu lệnh if-else hoặc nếu lập trình viên muốn tạo mã hiệu quả từ một cấu trúc chương trình phức tạp. Ngoài ra, các câu lệnh điều kiện cũng được sử dụng khi gán dữ liệu bài đăng hoặc xác thực biểu mẫu trong một ứng dụng

Ưu điểm của toán tử ternary

  • Mã sẽ có kích thước ngắn so với câu lệnh IF
  • Khả năng đọc tăng lên khi sử dụng các câu điều kiện
  • Việc sử dụng toán tử bậc ba này làm cho mã đơn giản hơn

ternary tốc ký

Tốc ký cũng có thể được sử dụng với toán tử bậc ba này bằng cách loại bỏ phần trung tâm của toán tử bậc ba. Toán tử tốc ký này còn được gọi là toán tử Elvis, được viết là

Chắc các bạn cũng đã biết một số toán tử so sánh trong PHP. Những thứ như ternary

$result = $condition ? 'foo' : 'bar';
8, null kết hợp
$result = $condition ? 'foo' : 'bar';
9 và các nhà khai thác tàu vũ trụ
$result = $initial ?: 'default';
0. Nhưng bạn có thực sự biết chúng hoạt động như thế nào không?

Trước khi xem xét chi tiết từng toán tử, đây là tóm tắt về chức năng của từng toán tử

  • Toán tử bậc ba được sử dụng để rút gọn cấu trúc if/else
  • Toán tử kết hợp null được sử dụng để cung cấp các giá trị mặc định thay vì null
  • Toán tử tàu vũ trụ được sử dụng để so sánh hai giá trị

# Toán tử bậc ba

Toán tử bậc ba là cách viết tắt của cấu trúc

$result = $initial ?: 'default';
1. Thay vì viết cái này

if [$condition] {
    $result = 'foo' 
} else {
    $result = 'bar'
}

bạn có thể viết cái này

$result = $condition ? 'foo' : 'bar';

Nếu giá trị của

$result = $initial ?: 'default';
2 này là
$result = $initial ?: 'default';
3, thì toán hạng bên trái sẽ được gán cho
$result = $initial ?: 'default';
4. Nếu điều kiện đánh giá là ________ 55, bàn tay phải sẽ được sử dụng

Sự thật thú vị. tên toán tử bậc ba thực sự có nghĩa là "một toán tử hoạt động trên ba toán hạng". Toán hạng là thuật ngữ được sử dụng để biểu thị các phần cần thiết của một biểu thức. Toán tử bậc ba là toán tử duy nhất trong PHP yêu cầu ba toán hạng. điều kiện,

$result = $initial ?: 'default';
3 và kết quả
$result = $initial ?: 'default';
5. Tương tự, cũng có các toán tử nhị phân và đơn nguyên. Bạn có thể đọc thêm về nó ở đây

Quay lại toán tử bậc ba. bạn có biết biểu thức nào đánh giá bằng

$result = $initial ?: 'default';
3 và biểu thức nào không?

Toán tử bậc ba sẽ sử dụng toán hạng bên trái của nó khi điều kiện có giá trị là

$result = $initial ?: 'default';
3. Đây có thể là một chuỗi, một số nguyên, boolean, v.v. Toán hạng bên phải sẽ được sử dụng cho cái gọi là "giá trị giả"

Các ví dụ sẽ là

81 hoặc
82, một mảng hoặc chuỗi rỗng,
83, một biến không xác định hoặc chưa được gán và tất nhiên chính là
$result = $initial ?: 'default';
5. Tất cả các giá trị này sẽ làm cho toán tử bậc ba sử dụng toán hạng bên tay phải của nó

Nhận thấy một tpyo? . Nếu bạn muốn cập nhật những gì đang diễn ra trên blog này, bạn có thể theo dõi tôi trên Twitter hoặc đăng ký nhận bản tin của tôi. Đăng ký email

# Toán tử ba ngôi tốc ký

Kể từ PHP 5. 3, có thể loại bỏ toán hạng bên trái, cho phép biểu thức ngắn hơn nữa

$result = $initial ?: 'default';

Trong trường hợp này, giá trị của

$result = $initial ?: 'default';
4 sẽ là giá trị của
86, trừ khi
86 ước tính thành
$result = $initial ?: 'default';
5, trong trường hợp đó, chuỗi
89 được sử dụng

Bạn có thể viết biểu thức này theo cách tương tự bằng cách sử dụng toán tử bậc ba bình thường

8

Trớ trêu thay, bằng cách loại bỏ toán hạng thứ hai của toán tử bậc ba, nó thực sự trở thành toán tử nhị phân

# Xâu chuỗi các toán tử ternary

Những điều sau đây, mặc dù có vẻ hợp lý;

Passed
9

Lý do là vì toán tử bậc ba trong PHP là liên kết trái và do đó được phân tích cú pháp theo một cách rất lạ. Ví dụ trên sẽ luôn đánh giá phần

Passed
90 trước, vì vậy ngay cả khi
Passed
91 sẽ là
$result = $initial ?: 'default';
3, bạn sẽ không bao giờ thấy đầu ra của nó

Tôi tin rằng điều đúng đắn cần làm là tránh hoàn toàn các toán tử bậc ba lồng nhau. Bạn có thể đọc thêm về hành vi kỳ lạ này trong câu trả lời Stack Overflow này

Hơn nữa, như PHP 7. 4, việc sử dụng các ternary xích không có dấu ngoặc không được chấp nhận

Xem video mới nhất của tôi

PHP trong 1 phút

# Toán tử kết hợp Null

Bạn đã xem bảng so sánh các loại trước đó chưa? . 0. Nó tương tự như toán tử bậc ba, nhưng sẽ hoạt động giống như

Passed
93 trên toán hạng bên trái thay vì chỉ sử dụng giá trị boolean của nó. Điều này làm cho toán tử này đặc biệt hữu ích cho các mảng và gán giá trị mặc định khi một biến không được đặt

$result = $condition ? 'foo' : 'bar';
4

Toán tử kết hợp null nhận hai toán hạng, làm cho nó trở thành toán tử nhị phân. Nhân tiện, "kết hợp" có nghĩa là "kết hợp với nhau để tạo thành một khối hoặc toàn bộ". Nó sẽ nhận hai toán hạng và quyết định sử dụng toán hạng nào dựa trên giá trị của toán hạng bên trái

# Null kết hợp trên mảng

Toán tử này đặc biệt hữu ích khi kết hợp với mảng, vì nó hoạt động như

Passed
93. Điều này có nghĩa là bạn có thể nhanh chóng kiểm tra sự tồn tại của các khóa, thậm chí cả các khóa lồng nhau mà không cần viết các biểu thức dài dòng

$result = $condition ? 'foo' : 'bar';
6

Ví dụ đầu tiên cũng có thể được viết bằng toán tử bậc ba

$result = $condition ? 'foo' : 'bar';
7

Lưu ý rằng không thể sử dụng toán tử bậc ba tốc ký khi kiểm tra sự tồn tại của các khóa mảng. Nó sẽ gây ra lỗi hoặc trả về giá trị boolean, thay vì giá trị của toán hạng thực bên trái

$result = $condition ? 'foo' : 'bar';
8

# Null kết hợp chuỗi

Toán tử hợp nhất null có thể dễ dàng được xâu chuỗi

$result = $condition ? 'foo' : 'bar';
9

# Hợp nhất lồng nhau

Có thể sử dụng toán tử hợp nhất null trên các thuộc tính đối tượng lồng nhau, ngay cả khi một thuộc tính trong chuỗi là

83

$result = $condition ? 'foo' : 'bar';
0

# Toán tử gán hợp nhất Null

Trong PHP 7,4, chúng ta có thể mong đợi một cú pháp thậm chí còn ngắn hơn được gọi là "toán tử gán hợp nhất null"

$result = $condition ? 'foo' : 'bar';
1

Trong ví dụ này,

Passed
96 sẽ được đặt thành
89, trừ khi nó được đặt trong mảng được truyền cho hàm. Điều này sẽ tương đương với điều sau đây, sử dụng toán tử hợp nhất null hiện tại

$result = $condition ? 'foo' : 'bar';
2

# nhà điều hành tàu vũ trụ

Toán tử tàu vũ trụ, mặc dù có một cái tên khá đặc biệt, nhưng có thể rất hữu ích. Đó là một toán tử được sử dụng để so sánh. Nó sẽ luôn trả về một trong ba giá trị.

81,
Passed
99 hoặc
$result = $condition ? 'foo' : 'bar';
40

81 sẽ được trả về khi cả hai toán hạng bằng nhau,
$result = $condition ? 'foo' : 'bar';
40 khi toán hạng bên trái lớn hơn và
Passed
99 khi toán hạng bên phải lớn hơn. Hãy xem một ví dụ đơn giản

$result = $condition ? 'foo' : 'bar';
3

Ví dụ đơn giản này không phải là tất cả, phải không?

$result = $condition ? 'foo' : 'bar';
4

Thật kỳ lạ, khi so sánh cách viết hoa của các chữ cái, chữ thường được coi là cao nhất. Có một lời giải thích đơn giản mặc dù. So sánh chuỗi được thực hiện bằng cách so sánh ký tự trên mỗi ký tự. Ngay khi một ký tự khác, giá trị ASCII của chúng được so sánh. Bởi vì chữ thường đứng sau chữ hoa trong bảng ASCII nên chúng có giá trị cao hơn

# So sánh đối tượng

Người điều khiển tàu vũ trụ gần như có thể so sánh mọi thứ, kể cả các vật thể. Cách các đối tượng được so sánh dựa trên loại đối tượng. Các lớp PHP tích hợp có thể xác định phép so sánh của riêng chúng, trong khi các đối tượng userland được so sánh dựa trên các thuộc tính và giá trị của chúng

Khi nào bạn muốn so sánh các đối tượng bạn yêu cầu? . ngày

$result = $condition ? 'foo' : 'bar';
5

Tất nhiên, so sánh ngày tháng chỉ là một ví dụ, nhưng vẫn là một ví dụ rất hữu ích

# Chức năng sắp xếp

Một cách sử dụng tuyệt vời cho toán tử này là sắp xếp các mảng. Có khá nhiều cách để sắp xếp một mảng trong PHP và một số phương thức này cho phép một hàm sắp xếp do người dùng xác định. Hàm này phải so sánh hai phần tử và trả về

$result = $condition ? 'foo' : 'bar';
40,
81 hoặc
Passed
99 dựa trên vị trí của chúng

Một trường hợp sử dụng tuyệt vời cho người điều khiển tàu vũ trụ

$result = $condition ? 'foo' : 'bar';
6

Để sắp xếp giảm dần, bạn chỉ cần đảo ngược kết quả so sánh

$result = $condition ? 'foo' : 'bar';
7

Xin chào, cảm ơn vì đã đọc. Tôi hy vọng bài đăng trên blog này đã giúp bạn. Nếu bạn muốn liên hệ với tôi, bạn có thể làm như vậy trên Twitter hoặc qua e-mail. Tôi luôn thích trò chuyện

Đó là các toán tử có điều kiện?

Toán tử điều kiện [?. ] là toán tử bậc ba [cần ba toán hạng]. .
Toán hạng đầu tiên được chuyển đổi hoàn toàn thành bool. .
Nếu toán hạng đầu tiên ước tính là đúng [1], toán hạng thứ hai được ước tính

3 toán tử điều kiện là gì?

Có ba toán tử điều kiện. && toán tử logic AND. . toán tử logic OR. ?. toán tử bậc ba .

5 toán tử PHP là gì?

Ngôn ngữ PHP hỗ trợ các loại toán tử sau. .
toán tử số học
Toán tử so sánh
Toán tử logic [hoặc quan hệ]
Toán tử gán
Toán tử có điều kiện [hoặc ternary]

Toán tử nào sau đây là toán tử gán có điều kiện trong PHP?

Có hai loại toán tử gán điều kiện. toán tử tenary và toán tử kết hợp null .

Chủ Đề