Hướng dẫn else if ternary operator php - 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

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
4 ở định dạng ternary. Theo hiểu biết của tôi và
$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
4 được thực hiện giống như một hoạt động
$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
6 bằng cách sử dụng định dạng
$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
7.

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 else if ternary operator php - 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ạc61 Huy hiệu Đồng6 gold badges49 silver badges61 bronze badges

0

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

$top = ($i == 0) ? '
' : (($i % 5 == 0) ? '
' : '');
8 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) ? '
' : '');
9.

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 else if ternary operator php - khác nếu toán tử bậc ba php

Losthorselosthorselosthorse

1.5001 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 else if ternary operator php - 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

Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách sử dụng toán tử php ternary để làm cho mã ngắn hơn và dễ đọc hơn.: in this tutorial, you will learn to use the PHP ternary operator to make the code shorter and more readable.

Giới thiệu về Nhà điều hành Php Ternary

Toán tử ternary là một tốc ký cho tuyên bố

var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
0. Thay vì viết bài này:

if (condition) { $result = value1; } else { $result = value2; }

Code language: HTML, XML (xml)

Bạn có thể sử dụng điều này:

$result = condition ? value1 : value2;

Code language: PHP (php)

Làm thế nào nó hoạt động.

  • Ngày thứ nhất. PHP đánh giá
    var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
    
    1. Nếu nó đúng, biểu thức bên phải trả về
    var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
    
    2; Nếu không, nó trả về
    var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
    
    3.
  • Thứ hai, PHP chỉ định kết quả của biểu thức bên phải cho biến
    var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
    
    4.

Như bạn có thể thấy, bằng cách sử dụng toán tử ternary, bạn có thể làm cho mã ngắn gọn hơn.

Lưu ý rằng tên toán tử ternary xuất phát từ thực tế là toán tử này yêu cầu ba toán hạng:

var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
5,
var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
2,
var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
3.

Ví dụ về toán tử php ternary

Giả sử bạn muốn hiển thị liên kết đăng nhập nếu người dùng chưa đăng nhập và liên kết đăng xuất nếu người dùng đã đăng nhập. Để làm điều đó, bạn có thể sử dụng câu lệnh

var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
0 như sau:

$is_user_logged_in = false; if ($is_user_logged_in) { $title = 'Logout'; } else { $title = 'Login'; }

Code language: HTML, XML (xml)

Trong ví dụ này,

var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
9 sẽ là
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
0 vì
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
1 được đặt thành
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
2. Mã khá dài. Và bạn có thể làm cho nó ngắn hơn bằng cách sử dụng toán tử ternary như sau:

$is_user_logged_in = false; $title = $is_user_logged_in ? 'Logout' : 'Login';

Code language: HTML, XML (xml)

Bây giờ nó ngắn hơn nhiều. Nếu dòng dài, bạn luôn có thể phá vỡ nó như thế này:

$is_user_logged_in = false; $title = $is_user_logged_in ? 'Logout' : 'Login';

Code language: HTML, XML (xml)

Người vận hành ternary tốc ký

Bắt đầu từ Php 5.3, bạn có thể sử dụng toán tử ternary tốc ký như sau:

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

Trong cú pháp này, PHP đánh giá

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
3 trong bối cảnh Boolean. Nếu
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
3 là đúng, PHP gán giá trị của
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
3 cho biến
var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
4. Mặt khác, nó gán
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
7 cho biến
var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
4.

Ví dụ sau sử dụng toán tử ternary tốc ký để gán giá trị của

switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
9 cho
//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'))) );
0 nếu
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
9 không trống. Nếu
switch (variable) {
    case 1 : name = 'foo'; break;
    case 2 : name = 'bar'; break;
    default : name = 'bas'; break;
}
9 trống, toán tử ternary gán chuỗi chữ ‘//cho
//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'))) );
0:

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

Output:

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

Chuỗi các nhà khai thác ternary

Về mặt kỹ thuật, bạn có thể chuỗi các toán tử ternary bằng cách sử dụng dấu ngoặc đơn.

Giả sử bạn muốn hiển thị các tin nhắn khác nhau nếu người dùng đủ điều kiện và có đủ tín dụng. Ví dụ sau đây chuỗi hai toán tử ternary:

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

Hầu hết thời gian, chuỗi các toán tử ternary làm cho mã khó đọc hơn. Trong trường hợp này, nó tốt hơn để sử dụng câu lệnh

var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
0 hoặc
//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'))) );
5.

Bản tóm tắt

  • Toán tử ternary (
    //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'))) );
    6) là một tốc ký cho câu lệnh
    var name = (variable === 1) ? 'foo' : ((variable === 2) ? 'bar' : 'baz');
    
    0.
  • Sử dụng toán tử ternary khi nó làm cho mã của bạn ngắn gọn và dễ đọc hơn.

Bạn có thấy hướng dẫn này hữu ích không?

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.

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);

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..

Toán tử ternary có tốt hơn không

Có! Thứ hai là dễ đọc hơn. The second is vastly more readable.