Hướng dẫn if else if ternary operator php - nếu khác nếu toán tử bậc ba php

Tôi đang cố gắng chuyển đổi mã sau thành một toán tử ternary, nhưng nó không hoạt động và tôi không chắc tại sao. Tôi nghĩ vấn đề của tôi là tôi không biết cách thể hiện hoạt động elseif ở định dạng ternary. Theo hiểu biết của tôi và elseif được thực hiện giống như một hoạt động

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
1 bằng cách sử dụng định dạng
$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
2.

if ($i == 0) {
    $top = '
'; } elseif ($i % 5 == 0) { $top = '
'; } else { $top = ''; } $top = ($i == 0) ? '
' : ($i % 5 == 0) ? '
' : '';

Hỏi ngày 31 tháng 10 năm 2012 lúc 16:07Oct 31, 2012 at 16:07

Hướng dẫn if else if ternary operator php - nếu khác nếu toán tử bậc ba php

4

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');

Bạn cần thêm dấu ngoặc đơn 'xung quanh toàn bộ khối khác

Đã trả lời ngày 31 tháng 10 năm 2012 lúc 16:11Oct 31, 2012 at 16:11

Samuel Cooksamuel CookSamuel Cook

16.2k6 Huy hiệu vàng49 Huy hiệu bạc62 Huy hiệu Đồng6 gold badges49 silver badges62 bronze badges

0

Toán tử ternary không hỗ trợ hoạt động

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
3 thực sự; Tuy nhiên, bạn có thể mô phỏng hành vi bằng cách sử dụng kỹ thuật sau

var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');

Cá nhân tôi không quan tâm đến điều này vì tôi không thấy nó dễ đọc hơn hoặc thanh lịch hơn. Tôi thường thích câu lệnh

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
4.

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}

Đã trả lời ngày 31 tháng 10 năm 2012 lúc 16:21Oct 31, 2012 at 16:21

Hướng dẫn if else if ternary operator php - nếu khác nếu toán tử bậc ba php

Losthorselosthorselosthorse

1.5101 Huy hiệu vàng13 Huy hiệu bạc32 Huy hiệu Đồng1 gold badge13 silver badges32 bronze badges

0

Quá muộn có lẽ để chia sẻ một số quan điểm, nhưng tuy nhiên :)

  1. Sử dụng nếu - nếu không - khác cho một số lượng đánh giá hạn chế. Cá nhân tôi thích sử dụng nếu - nếu không - khác khi số lượng so sánh nhỏ hơn 5.
  2. Sử dụng trường hợp chuyển đổi trong đó số lượng đánh giá nhiều hơn. Cá nhân tôi thích trường hợp chuyển đổi trong đó các trường hợp hơn 5.
  3. Sử dụng ternary trong đó một so sánh duy nhất đang được xem xét (hoặc một so sánh duy nhất khi lặp) hoặc khi cần so sánh if-Else bên trong mệnh đề "trường hợp" của cấu trúc chuyển đổi.
  4. Sử dụng ternary nhanh hơn khi so sánh trong khi lặp qua một tập dữ liệu rất lớn.

IMHO cuối cùng, nhà phát triển quyết định giao dịch phương trình giữa khả năng đọc và hiệu suất của mã và đến lượt nó quyết định điều gì, ternary so với nếu khác nếu khác với trường hợp chuyển đổi, có thể được sử dụng trong bất kỳ tình huống cụ thể nào.

Đã trả lời ngày 25 tháng 12 năm 2015 lúc 7:29Dec 25, 2015 at 7:29

Hướng dẫn if else if ternary operator php - nếu khác nếu toán tử bậc ba php

//Use this format before reducing the expression to one liner
$var=4; //Change value to test
echo "Format result: ";

echo($var === 1)    ? 'one'     : //if      NB.=> $varname = || echo || print || var_dump(ternary statement inside); can only be (placed at the start/wrapping) of the statement. 
    (($var === 2)   ? 'two'     : //elseif
    (($var === 3)   ? 'three'   : //elseif
    (($var === 4)   ? 'four'    : //elseif
    'false'                       //else
    )));                          //extra tip: closing brackets = totalnumber of conditions - 1 

// Then  echo($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))); 
echo "
"; var_dump("Short result: ", ($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))) );

Đã trả lời ngày 4 tháng 5 lúc 15:34May 4 at 15:34

FrancescofrancescoFrancesco

4875 Huy hiệu bạc12 Huy hiệu Đồng5 silver badges12 bronze badges

Chúng ta có thể sử dụng khác nếu trong toán tử ternary không?

Tuy nhiên, không nên thay thế nhiều câu lệnh IF/ELSE bằng nhiều toán tử ternary vì nó làm cho mã khó đọc hơn trong tương lai. Tốt nhất nên gắn bó với các câu lệnh nếu/khác hoặc chuyển đổi cho các trường hợp đó. The ternary operator (?:) is a conditional operator used to perform a simple comparison or check on a condition having simple statements. It decreases the length of the code performing conditional operations. The order of operation of this operator is from left to right. It is called a ternary operator because it takes three operands- a condition, a result statement for true, and a result statement for false. The syntax for the ternary operator is as follows. 

Syntax:

(Condition) ? (Statement1) : (Statement2);
  • PHP có hỗ trợ nhà điều hành ternary không? It is the expression to be evaluated and returns a boolean value.
  • Toán tử ternary trong PHP là người duy nhất cần ba toán hạng: một điều kiện, kết quả đúng và kết quả sai. It is the statement to be executed if the condition results in a true state.
  • Đó là ternary nhanh hơn hoặc nếu It is the statement to be executed if the condition results in a false state.

Câu trả lời thực sự đơn giản: toán tử ternary luôn sao chép giá trị trong khi câu lệnh IF không. Tại sao? Bởi vì PHP sử dụng một kỹ thuật được gọi là sao chép-trên-viết: khi gán giá trị cho một biến, PHP không thực sự tạo một bản sao nội dung của biến cho đến khi nó được sửa đổi.

Variable = (Condition) ? (Statement1) : (Statement2);

IF-Else và các trường hợp chuyển đổi được sử dụng để đánh giá các điều kiện và quyết định luồng của một chương trình. Toán tử ternary là một toán tử phím tắt được sử dụng để rút ngắn các câu lệnh có điều kiện.

Toán tử ternary: toán tử ternary (? :) là một toán tử có điều kiện được sử dụng để thực hiện so sánh đơn giản hoặc kiểm tra một điều kiện có các câu lệnh đơn giản. Nó làm giảm độ dài của mã thực hiện các hoạt động có điều kiện. Thứ tự hoạt động của toán tử này là từ trái sang phải. Nó được gọi là toán tử ternary vì nó có ba toán hạng- một điều kiện, một câu lệnh kết quả cho đúng và một câu lệnh kết quả cho sai. Cú pháp cho toán tử ternary như sau. & NBSP;Following are some advantages of ternary operator:

  • Điều kiện: Đó là biểu thức được đánh giá và trả về giá trị boolean.
  • 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.
  • 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.
  • Kết quả của so sánh này cũng có thể được gán cho một biến bằng toán tử gán. Cú pháp như sau: & nbsp; & nbsp;

Nếu câu lệnh được thực thi tùy thuộc vào điều kiện trả về bất kỳ giá trị nào, nó sẽ được gán cho biến. In this example, if the value of $a is greater than 15, then 20 will be returned and will be assigned to $b, else 5 will be returned and assigned to $b.

PHP

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
5

Ưu điểm của toán tử ternary: Sau đây là một số lợi thế của toán tử ternary:

Việc sử dụng toán tử ternary sẽ làm cho mã ngắn hơn so với câu lệnh IF khác.

Mã có thể có độ dài nhanh so với câu lệnh IF khác.

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
1

Output:  

Value of b is 5

Khả năng đọc của mã sẽ tăng lên với việc sử dụng các câu lệnh có điều kiện. In this example, if the value of $age is more than or equal to 18, “Adult” is passed to print function and printed, else “Not Adult” is passed and printed.

PHP

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
5

Việc sử dụng toán tử ternary làm cho mã đơn giản hơn.

Ví dụ 1: Trong ví dụ này, nếu giá trị của $ A lớn hơn 15, thì 20 sẽ được trả lại và sẽ được gán cho $ B, thì 5 sẽ được trả lại và gán cho $ b.

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
1

Output:  

Adult

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
6
$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
7
$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
8
We use the ternary operator when we need to simplify the if-else statements that are simply assigning values to variables depending on a condition. An advantage of using a ternary operator is that it reduces the huge if-else block to a single line, improving the code readability and simplify it. Very useful while assigning variables after form submission. 

Example:  

Mã gốc: & NBSP; 

PHP

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
5

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
1
//Use this format before reducing the expression to one liner
$var=4; //Change value to test
echo "Format result: ";

echo($var === 1)    ? 'one'     : //if      NB.=> $varname = || echo || print || var_dump(ternary statement inside); can only be (placed at the start/wrapping) of the statement. 
    (($var === 2)   ? 'two'     : //elseif
    (($var === 3)   ? 'three'   : //elseif
    (($var === 4)   ? 'four'    : //elseif
    'false'                       //else
    )));                          //extra tip: closing brackets = totalnumber of conditions - 1 

// Then  echo($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))); 
echo "
"; var_dump("Short result: ", ($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))) );
8
//Use this format before reducing the expression to one liner
$var=4; //Change value to test
echo "Format result: ";

echo($var === 1)    ? 'one'     : //if      NB.=> $varname = || echo || print || var_dump(ternary statement inside); can only be (placed at the start/wrapping) of the statement. 
    (($var === 2)   ? 'two'     : //elseif
    (($var === 3)   ? 'three'   : //elseif
    (($var === 4)   ? 'four'    : //elseif
    'false'                       //else
    )));                          //extra tip: closing brackets = totalnumber of conditions - 1 

// Then  echo($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))); 
echo "
"; var_dump("Short result: ", ($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))) );
9
(Condition) ? (Statement1) : (Statement2);
0
(Condition) ? (Statement1) : (Statement2);
1
(Condition) ? (Statement1) : (Statement2);
2

(Condition) ? (Statement1) : (Statement2);
3
(Condition) ? (Statement1) : (Statement2);
4
var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
1
//Use this format before reducing the expression to one liner
$var=4; //Change value to test
echo "Format result: ";

echo($var === 1)    ? 'one'     : //if      NB.=> $varname = || echo || print || var_dump(ternary statement inside); can only be (placed at the start/wrapping) of the statement. 
    (($var === 2)   ? 'two'     : //elseif
    (($var === 3)   ? 'three'   : //elseif
    (($var === 4)   ? 'four'    : //elseif
    'false'                       //else
    )));                          //extra tip: closing brackets = totalnumber of conditions - 1 

// Then  echo($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))); 
echo "
"; var_dump("Short result: ", ($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))) );
9
(Condition) ? (Statement1) : (Statement2);
0
(Condition) ? (Statement1) : (Statement2);
1
(Condition) ? (Statement1) : (Statement2);
9

Variable = (Condition) ? (Statement1) : (Statement2);
0

(Condition) ? (Statement1) : (Statement2);
3
(Condition) ? (Statement1) : (Statement2);
4
Variable = (Condition) ? (Statement1) : (Statement2);
3

(Condition) ? (Statement1) : (Statement2);
3
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
4
var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
1
//Use this format before reducing the expression to one liner
$var=4; //Change value to test
echo "Format result: ";

echo($var === 1)    ? 'one'     : //if      NB.=> $varname = || echo || print || var_dump(ternary statement inside); can only be (placed at the start/wrapping) of the statement. 
    (($var === 2)   ? 'two'     : //elseif
    (($var === 3)   ? 'three'   : //elseif
    (($var === 4)   ? 'four'    : //elseif
    'false'                       //else
    )));                          //extra tip: closing brackets = totalnumber of conditions - 1 

// Then  echo($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))); 
echo "
"; var_dump("Short result: ", ($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))) );
9
(Condition) ? (Statement1) : (Statement2);
0
Variable = (Condition) ? (Statement1) : (Statement2);
8
(Condition) ? (Statement1) : (Statement2);
9

Variable = (Condition) ? (Statement1) : (Statement2);
0

(Condition) ? (Statement1) : (Statement2);
3
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
4
Variable = (Condition) ? (Statement1) : (Statement2);
3

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
1

Giảm xuống sau: do đó, toán tử ternary làm giảm thành công khối if-else thành một dòng, do đó phục vụ mục đích của nó. & Nbsp; Thus, the ternary operator successfully reduces the if-else block to a single line, hence serving its purpose. 

PHP

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
5

(Condition) ? (Statement1) : (Statement2);
3
(Condition) ? (Statement1) : (Statement2);
4
var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
1
//Use this format before reducing the expression to one liner
$var=4; //Change value to test
echo "Format result: ";

echo($var === 1)    ? 'one'     : //if      NB.=> $varname = || echo || print || var_dump(ternary statement inside); can only be (placed at the start/wrapping) of the statement. 
    (($var === 2)   ? 'two'     : //elseif
    (($var === 3)   ? 'three'   : //elseif
    (($var === 4)   ? 'four'    : //elseif
    'false'                       //else
    )));                          //extra tip: closing brackets = totalnumber of conditions - 1 

// Then  echo($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))); 
echo "
"; var_dump("Short result: ", ($var === 1)?'one':(($var === 2)?'two':(($var === 3)?'three':(($var === 4)?'four':'false'))) );
9
(Condition) ? (Statement1) : (Statement2);
0
(Condition) ? (Statement1) : (Statement2);
1
(Condition) ? (Statement1) : (Statement2);
9

(Condition) ? (Statement1) : (Statement2);
3
(Condition) ? (Statement1) : (Statement2);
4
Variable = (Condition) ? (Statement1) : (Statement2);
3

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
1


Làm thế nào sử dụng toán tử ternary trong điều kiện IF trong PHP?

Nó được gọi là toán tử ternary vì nó có ba toán hạng- một điều kiện, một câu lệnh kết quả cho đúng và một câu lệnh kết quả cho sai. Cú pháp cho toán tử ternary như sau. Cú pháp: (điều kiện)? (Tuyên bố1): (tuyên bố2);(Condition) ? (Statement1) : (Statement2);

Chúng ta có thể sử dụng khác nếu trong toán tử ternary không?

Tuy nhiên, không nên thay thế nhiều câu lệnh IF/ELSE bằng nhiều toán tử ternary vì nó làm cho mã khó đọc hơn trong tương lai.Tốt nhất nên gắn bó với các câu lệnh nếu/khác hoặc chuyển đổi cho các trường hợp đó.it's not recommended to replace multiple if/else statements with multiple ternary operators because it makes the code harder to read in the future. It's best to stick with either if/else or switch statements for such cases.

PHP có hỗ trợ nhà điều hành ternary không?

Toán tử ternary trong PHP là người duy nhất cần ba toán hạng: một điều kiện, kết quả đúng và kết quả sai..

Đó là ternary nhanh hơn hoặc nếu

Câu trả lời thực sự đơn giản: toán tử ternary luôn sao chép giá trị trong khi câu lệnh IF không.Tại sao?Bởi vì PHP sử dụng một kỹ thuật được gọi là sao chép-trên-viết: khi gán giá trị cho một biến, PHP không thực sự tạo một bản sao nội dung của biến cho đến khi nó được sửa đổi.the ternary operator always copies the value whereas the if statement does not. Why? Because PHP uses a technique known as copy-on-write: When assigning a value to a variable, PHP does not actually create a copy of the content of the variable until it is modified.