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!

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:


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:

Bài Viết Liên Quan

Chủ Đề