Hướng dẫn how use ternary operator for multiple conditions in php? - cách sử dụng toán tử bậc ba cho nhiều điều kiện trong php?

Bạn không cần ternary nếu bạn định trả lại

$res = $rule1 && !$rule2 && $rule3;
7 hoặc
$res = $rule1 && !$rule2 && $rule3;
8. Trích dẫn hướng dẫn:

Biểu thức

$res = $rule1 && !$rule2 && $rule3;
9 đánh giá là expr2 nếu expr1 đánh giá đúng và expr3 nếu expr1 đánh giá sai.

Điều này có nghĩa là

$res = (($rule1 == true) && ($rule2 == false) && ($rule3 == true));

sẽ gán đúng hoặc sai rồi. Ngoài ra, nếu không quan tâm đến $ quy tắc là booleans, bạn không cần so sánh với

function conditionsMet($rule1, $rule2, $rule3) {
    return $rule1 && !$rule2 && $rule3;
}
0. Bạn cũng không cần niềng răng, ví dụ:

$res = $rule1 && !$rule2 && $rule3;

giống như ternary ban đầu của bạn.

Một thực tế tốt khi bạn có nhiều biểu thức như thế là che giấu sự so sánh thực tế đằng sau một phương pháp hoặc tên hàm có ý nghĩa, ví dụ:

function conditionsMet($rule1, $rule2, $rule3) {
    return $rule1 && !$rule2 && $rule3;
}

Và sau đó bạn có thể làm

if (conditionsMet($rule1, $rule2, $rule3)) {
    // do something
}

Tất nhiên,

function conditionsMet($rule1, $rule2, $rule3) {
    return $rule1 && !$rule2 && $rule3;
}
1 không có ý nghĩa. Một ví dụ tốt hơn sẽ là một cái gì đó như
function conditionsMet($rule1, $rule2, $rule3) {
    return $rule1 && !$rule2 && $rule3;
}
2 hoặc
function conditionsMet($rule1, $rule2, $rule3) {
    return $rule1 && !$rule2 && $rule3;
}
3, v.v. Chỉ cần thể hiện những gì các quy tắc thể hiện trong tên phương thức.

Bạn cũng có thể quan tâm đến việc đơn giản hóa các biểu thức có điều kiện từ việc tái cấu trúc cuốn sách - cải thiện thiết kế mã hiện có.

Thực hiện nhiều hành động trong khối ternary PHP - Simon Ugorji

Tôi đã viết khá nhiều hướng dẫn về các nhà khai thác ternary.

Bài đăng cuối cùng của tôi là về việc thực hiện nhiều hành động trong một khối ternary trong JavaScript. Hôm nay, chúng tôi sẽ tập trung vào PHP.

Cú pháp và logic

Xem xét mã bên dưới

Về đoạn trích ở trên

  • Sử dụng toán tử ternary, chúng tôi có thể kiểm tra xem các biến có trống không (! $ A &&! $ B &&! $ C).(!$a && !$b && !$c).
  • Bây giờ nếu các biến trống, chúng tôi sẽ chỉ định lại các giá trị cho từng giá trị và in ra các giá trị hiện tại của chúng.
  • Nhưng nếu các biến không trống, chúng tôi sẽ in ra A, B và C không trống.

Hợp lý

Trong bài viết trước của tôi, tôi đã giải thích rằng nếu bạn muốn thực hiện nhiều hành động trong một khối ternary trong JavaScript, bạn phải sử dụng dấu phẩy (,) để tách các hành động nhưng trong PHP, nó hoàn toàn khác.comma ( , ) to separate the actions but in PHP, it is quite different.

Trong PHP, nếu bạn sử dụng dấu phẩy (,) để tách hành động của mình, bạn sẽ gặp lỗi cú pháp. comma ( , ) to separate your actions, you’ll run into a syntax error.

Vì vậy, cách tiếp cận tốt nhất là sử dụng dấu ngoặc () để nhóm các hành động cá nhân của bạn, sau đó sử dụng một khoảng thời gian (.) Để tách chúng. brackets () to group your individual actions, then use a period ( . ) to separate them.

Tuy nhiên, tôi nghĩ rằng nhà điều hành ternary không được thực hiện tốt trong PHP hoặc có thể có một cách khác để xử lý nó hoặc có thể là vì phiên bản PHP mà tôi chạy.

Dưới đây là danh sách những điều có thể làm phiền bạn, khi làm việc với các nhà khai thác ternary trong PHP.

  • Bạn có thể sử dụng câu lệnh ECHO trong các khối ternary.

Bạn sẽ gặp lỗi cú pháp khi bạn chạy đoạn trích ở trên.

Tuy nhiên, bạn có thể sử dụng các lựa chọn thay thế khác như (print, print_r và var_dump) để xuất biến của bạn.

  • Trong nhiều như một từ khóa in được hỗ trợ, bạn vẫn có thể làm tổ các khối ternary tổ với nó.

Hãy nhớ lại rằng: Nesting một khối ternary giống như thêm khác nếu và khác vào tình trạng của bạn

Đoạn trích ở trên đọc,

"Nếu biến F bằng không, đầu ra F bằng 0, nếu không nếu biến F bằng một, đầu ra F là một

Đoạn này sẽ không thực thi đúng khi bạn chạy nó. Bạn sẽ nhận được đầu ra từ các câu lệnh in lặp lại hai lần.

Nhưng nếu chúng tôi thay thế từ khóa in bằng var_dump hoặc print_r, chúng tôi sẽ nhận được đầu ra chính xác.var_dump or print_r, we will get the correct output.

Mã sẽ thực thi như mong đợi bởi vì chúng tôi mong đợi đầu ra chính xác là F F là 0.“f is 0”.

  • Bạn có thể làm tổ một khối ternary và vẫn thực hiện nhiều hành động trong đó.

Tôi nghĩ rằng đây là khía cạnh quan trọng nhất của việc sử dụng toán tử ternary. Nhưng nó không hoạt động và tôi sẽ thích bạn sử dụng các toán tử ternary cho ít logic mã và sử dụng các câu lệnh if/other cho logic phức tạp. Điều này không giống như những gì mà Culd có sẵn trong JavaScript.

Tóm lại là

Chỉ sử dụng các toán tử ternary cho một điều kiện duy nhất trong PHP và bạn có thể thực hiện nhiều hành động trong điều kiện đó. Nhưng nếu bạn muốn thêm khác nếu / khác, tôi khuyên bạn nên chuyển sang câu lệnh IF / ELSE.else if / else, I recommend you switch to the native if / else statement.

Có thể, các nhà phát triển của PHP sẽ cập nhật cách PHP diễn giải các khối ternary trên các bản cập nhật PHP trong tương lai

Tôi tin rằng tại thời điểm này, tôi đã làm cho bạn hiểu các nhà khai thác ternary là gì và làm thế nào bạn có thể sử dụng chúng trong cả PHP và JavaScript.

Cảm ơn!

Hướng dẫn how use ternary operator for multiple conditions in php? - cách sử dụng toán tử bậc ba cho nhiều điều kiện trong php?
Hướng dẫn how use ternary operator for multiple conditions in php? - cách sử dụng toán tử bậc ba cho nhiều điều kiện trong php?

Hướng dẫn how use ternary operator for multiple conditions in php? - cách sử dụng toán tử bậc ba cho nhiều điều kiện trong php?

Sử dụng trường hợp IF-Else và Switch là một phần thiết yếu của lập trình để đánh giá các điều kiện. Chúng tôi luôn tìm kiếm các phím tắt ở khắp mọi nơi cho dù đó là một tuyến đường để đi du lịch hoặc trò chơi hoặc mã. Trong toán tử Ternary này, chúng ta sẽ thấy nó được sử dụng như thế nào để rút ngắn các câu lệnh có điều kiện.

Toán tử ternary là gì?

Toán tử ternary là một toán tử có điều kiện làm giảm độ dài của mã trong khi thực hiện so sánh và điều kiện. Phương pháp này là một giải pháp thay thế cho việc sử dụng các câu lệnh if-else và lồng nhau. Thứ tự thực hiện cho toán tử này là từ trái sang phải. Rõ ràng, đó là trường hợp tốt nhất cho một lựa chọn tiết kiệm thời gian.

Nó cũng tạo ra một thông báo điện tử trong khi gặp phải giá trị khoảng trống với các điều kiện của nó. Nó được gọi là toán tử ternary vì nó có ba toán hạng - một điều kiện, kết quả cho sự thật và kết quả là sai.

Syntax:

(Condition) ? (Statement1) : (Statement2);
  • Điều kiện: Đó là biểu thức được đánh giá trả về giá trị boolean. It is the expression to be evaluated which returns a boolean value.
  • Tuyên bố 1: Đó là tuyên bố sẽ được thực thi nếu điều kiện dẫn đến trạng thái thực. it is the statement to be executed if the condition results in a true state.
  • Tuyên bố 2: Đó là tuyên bố sẽ được thực thi nếu điều kiện dẫn đến trạng thái sai. It is the statement to be executed if the condition results in a false state.

Ví dụ chương trình cho dù học sinh bị vượt qua hay thất bại: program to whether student is pass or fail:

=40) ? "pass" : "Fail";
?>

Output:

pass

Khi nào chúng ta sử dụng toán tử ternary?

Chúng tôi sử dụng toán tử ternary khi chúng tôi cần đơn giản hóa các câu lệnh IF-Else được sử dụng để gán các giá trị cho các biến. Hơn nữa, nó thường được sử dụng khi chúng ta gán dữ liệu bài đăng hoặc xác nhận các biểu mẫu.

Hãy nói, chúng tôi đã lập trình một mẫu đăng nhập cho một trường đại học, nơi chúng tôi muốn đảm bảo rằng người dùng đã nhập số đăng ký của họ do trường đại học cung cấp sau đó chúng tôi có thể di chuyển xa hơn.

//if the registration number is not specified, notify the customer
$reg_number = (isset($_POST['reg'])) ? $_POST['reg'] : die('Please enter your registration number');

Hãy cùng xem xét một ví dụ về một hình thức xác nhận để hiểu rõ hơn:



Để có được các giá trị của các trường văn bản của chúng tôi, chúng tôi có thể sử dụng mã sau:


Ưu điểm của nhà điều hành ternary

  • Nó sẽ làm cho mã ngắn hơn
  • Nó sẽ làm cho mã dễ đọc hơn
  • Mã trở nên đơn giản hơn

Ternary Shorthand

Cú pháp vận hành ternary ngắn có thể được sử dụng bằng cách bỏ phần giữa của toán tử ternary để đánh giá tốc ký nhanh. Nó cũng được gọi là ELVIS CONTATORITY (?

Hướng dẫn how use ternary operator for multiple conditions in php? - cách sử dụng toán tử bậc ba cho nhiều điều kiện trong php?

Syntax:

$res = $rule1 && !$rule2 && $rule3;
0

Nhà điều hành Elvis có thể được sử dụng để giảm sự dư thừa các điều kiện của bạn và rút ngắn độ dài của các bài tập của bạn. Đây là toán tử ternary với toán hạng thứ hai bị bỏ qua. Nó sẽ trả lại toán hạng đầu tiên nếu toán hạng là đúng, nó đánh giá và trả về toán hạng thứ hai của nó.

$res = $rule1 && !$rule2 && $rule3;
1

Nếu bạn sử dụng toán tử tốc ký ternary như thế này, nó sẽ gây ra thông báo nếu

$res = $rule1 && !$rule2 && $rule3;
2

không được đặt, thay vì viết một số mã dài như thế này:

$res = $rule1 && !$rule2 && $rule3;
3

Nhà điều hành NULL kết hợp

Nó thay thế hoạt động ternary kết hợp với hàm isset () được sử dụng để kiểm tra xem một biến nhất định có phải là null hay không và trả về toán hạng đầu tiên của nó nếu nó tồn tại và không phải là người khác trả về toán hạng thứ hai.

Syntax:

$res = $rule1 && !$rule2 && $rule3;
4
$res = $rule1 && !$rule2 && $rule3;
5

Nó sẽ lấy giá trị của $ _GET [người dùng] và trả về ‘không ai nếu nó không tồn tại.$_GET[user] and returns ‘nobody’ if it does not exist.

Thay vì viết một số mã dài như thế này:

$res = $rule1 && !$rule2 && $rule3;
6

Với điều này, chúng tôi đã kết thúc bài viết này, tôi hy vọng bạn hiểu nhà điều hành ternary, mục đích và lợi thế của nhà điều hành ternary, tốc ký ternary và nhà điều hành Null Coalescing.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần bình luận của nhà điều hành ternary trong PHP và tôi sẽ liên hệ lại với bạn.

Thưởng thức bài viết này? Cho Sayantini giống như nếu nó hữu ích.Sayantini a like if it's helpful.

Hướng dẫn how use ternary operator for multiple conditions in php? - cách sử dụng toán tử bậc ba cho nhiều điều kiện trong php?
9

Đăng lại

Một người đam mê khoa học dữ liệu. Muốn làm việc với các công nghệ như học máy, trí tuệ nhân tạo và học tập sâu. Nếu bạn hỏi về các kỹ năng lập trình: "Tôi không c, tôi python";)

Khám phá và đọc thêm bài viết từ SayantiniSayantini

Thưởng thức bài viết này?

Để lại một cái tương tự và bình luận cho SayantiniSayantini

Làm thế nào để bạn viết 3 điều kiện trong một toán tử ternary?

Toán tử có điều kiện (ternary) là toán tử JavaScript duy nhất có ba toán hạng: một điều kiện theo sau là dấu hỏi (?), Sau đó Thực thi nếu điều kiện là giả.a condition followed by a question mark ( ? ), then an expression to execute if the condition is truthy followed by a colon ( : ), and finally the expression to execute if the condition is falsy.

Làm thế nào để bạn thực hiện nhiều hoạt động trong toán tử ternary?

Bạn có thể sử dụng toán tử dấu phẩy để thực thi nhiều biểu thức thay cho một biểu thức duy nhất: mảng [i] % 2 === 0?.Kết quả của toán tử dấu phẩy là kết quả của biểu thức cuối cùng.use the comma operator to execute multiple expressions in place of a single expression: arr[i] % 2 === 0? (evenCount++, totalCount++) : (oddCount++, totalCount++); The result of the comma operator is the result of the last expression.

Người vận hành ternary có thể có hai điều kiện không?

Trong cú pháp trên, chúng tôi đã thử nghiệm 2 điều kiện trong một câu lệnh sử dụng toán tử ternary.Trong cú pháp, nếu điều kiện1 không chính xác thì biểu thức3 sẽ được thực thi khác nếu điều kiện1 là chính xác thì đầu ra phụ thuộc vào điều kiện2.we have tested 2 conditions in a single statement using the ternary operator. In the syntax, if condition1 is incorrect then Expression3 will be executed else if condition1 is correct then the output depends on the condition2.

Các toán tử ternary có thể chứa nhiều hành động không?

Vâng, chúng ta có thể, nhưng với một điều kiện không có phân định khối để hành động đó phải đơn giản, nếu không thì tốt hơn là trừu tượng hóa nó trong một hàm và gọi hàm từ ternary.Một cái gì đó chúng ta thường thấy là console., but with one proviso… There is no block demarcation so that action should be simple, else it would be better to abstract it away in a function and call the function from the ternary. Something we commonly see is console.