Để lập trình nhanh hơn, trong ngôn ngữ lập trình PHP, chúng ta nên thường xuyên sử dụng các phép toán Phép toán Ternary và Ternary Coalescing. Có những phép toán nào thì hãy tham khảo bài viết sau đây của vinasupport.com nhé! Nội dung chính - 1. Phép toàn Ternary: cond ? expr1 : expr2
- 2. Phép toán Ternary: cond ?: else-expr
- 3. Phép toán Null Coalescing
- 4. Phép toán Null Coalescing Assignment
- 1. Phép toàn Ternary: cond ? expr1 : expr2
- 2. Phép toán Ternary: cond ?: else-expr
- 3. Phép toán Null Coalescing
- 4. Phép toán Null Coalescing Assignment
- Not the answer you're looking for? Browse other questions tagged php operator-keyword ternary or ask your own question.
- Đăng nhập để trả lời câu hỏi
- Có thể bạn quan tâm
Nội dung chính - 1. Phép toàn Ternary: cond ? expr1 : expr2
- 2. Phép toán Ternary: cond ?: else-expr
- 3. Phép toán Null Coalescing
- 4. Phép toán Null Coalescing Assignment
- 1.
Phép toàn Ternary: cond ? expr1 : expr2
- 2. Phép toán Ternary: cond ?: else-expr
- 3. Phép toán Null Coalescing
- 4. Phép toán Null Coalescing Assignment
- Not the answer you're looking for? Browse other questions tagged php operator-keyword ternary or ask your own question.
- Đăng nhập để trả lời câu hỏi
- Có thể bạn quan tâm
Nội dung chính - 1. Phép toàn Ternary: cond ? expr1 : expr2
- 2. Phép toán Ternary: cond ?: else-expr
- 3. Phép toán Null Coalescing
- 4. Phép toán Null Coalescing Assignment
Nội dung chính - 1. Phép toàn Ternary: cond ? expr1 : expr2
- 2. Phép toán Ternary: cond ?: else-expr
- 3. Phép toán Null Coalescing
- 4. Phép toán Null Coalescing Assignment
1. Phép toàn Ternary: cond ? expr1 : expr2Phép toán thường được sử dụng nhiều nhất. $rank = $marks >= 50 ? 'pass' : 'fail';Nó có
nghĩa là: if ($marks >= 50) { $rank = 'pass'; } else { $rank = 'fail'; }2. Phép toán Ternary: cond ?: else-expr$user = load_user() ?: false;Nó tương đương với $user = load_user() ? load_user() : false;3. Phép toán Null Coalescing$result = $_GET['value'] ?? 'foo';Nó tương đương với $result = isset($_GET['value']) ? $_GET['value'] : 'foo';Thích hợp cho set default các giá trị parameter
của url 4. Phép toán Null Coalescing Assignment$value ??= 'foo';Nó tương đương với $value = $value ?? 'foo';Để sử dụng các phép toán trên, các bạn phải sử dụng php version 7.4 trở lên. Để lập trình nhanh hơn, trong ngôn ngữ lập trình PHP, chúng ta nên thường xuyên sử dụng các phép toán Phép toán Ternary và Ternary Coalescing. Có những phép toán nào thì hãy tham khảo bài viết sau đây của vinasupport.com nhé! Nội dung
chính - 1. Phép toàn Ternary: cond ? expr1 : expr2
- 2. Phép toán Ternary: cond ?: else-expr
- 3. Phép toán Null Coalescing
- 4. Phép toán Null Coalescing Assignment
1. Phép toàn Ternary: cond ? expr1 : expr2Phép toán thường được sử dụng nhiều nhất. $rank = $marks >= 50 ? 'pass' : 'fail';Nó có nghĩa là: if ($marks >= 50) { $rank = 'pass'; } else { $rank = 'fail'; }2. Phép toán Ternary: cond ?: else-expr$user = load_user() ?: false;Nó tương đương với $user = load_user() ? load_user() : false;3. Phép toán Null Coalescing$result = $_GET['value'] ?? 'foo';Nó tương đương với $result = isset($_GET['value']) ? $_GET['value'] : 'foo';Thích hợp cho set default các giá trị parameter của url 4. Phép toán Null
Coalescing Assignment$value ??= 'foo';Nó tương đương với $value = $value ?? 'foo';Để sử dụng các phép toán trên, các bạn phải sử dụng php version 7.4 trở lên. I want to write the following code in ternary operator. I tried in many way but it does not work at all. <?php
if(isset($options['footer_txt_color'])) {
echo $options['footer_txt_color'];
} else {
echo "#ffffff";
}
?>
asked Feb 19, 2015 at 9:11 1 Use this code echo (isset($options['footer_txt_color'])) ? $options['footer_txt_color'] : '#ffffff';
answered Feb 19, 2015 at 9:15 Sunil PachlangiaSunil Pachlangia 1,9832
gold badges13 silver badges25 bronze badges It should be like this: <?php echo (isset($options['footer_txt_color'])) ? $options['footer_txt_color'] : "#ffffff"; ?>
answered Feb 19, 2015 at 9:13 AlbziAlbzi 15.2k6 gold badges44 silver badges61 bronze badges Not the answer you're looking for? Browse other questions tagged
php operator-keyword ternary or ask your own question. Dựa trên các ví dụ từ trang này , tôi có các mẫu mã làm việc và không hoạt động bên dưới. Mã làm việc sử dụng if câu lệnh: if (!empty($address['street2'])) echo $address['street2'].'<br />';
Mã không hoạt động bằng cách sử dụng toán tử ternary: $test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />';
// Also tested this
(empty($address['street2'])) ? 'Yes <br />' : 'No <br />';
CẬP
NHẬT Sau mẹo của Brian, tôi thấy rằng tiếng vang $test đầu ra cho kết quả mong đợi. Sau đây hoạt động như một nét duyên dáng! echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';
- php
- ternary-operator
- conditional-operator
85 hữu ích 1 bình luận 189k xem chia sẻ answer 182 Các (condition) ? /* value to return if condition is true */
: /* value to return if condition is false */ ;
cú pháp không phải là toán tử "tốc ký nếu" ( ? được gọi là toán tử có điều kiện) bởi vì bạn không thể thực thi mã theo cách tương tự như khi bạn đã làm: if (condition) {
/* condition is true, do something like echo */
}
else {
/* condition is false, do something else */
}
Trong ví dụ của bạn, bạn đang thực hiện echo câu lệnh khi $address không trống. Bạn không thể làm điều này theo cách tương tự với toán tử có điều kiện. Tuy nhiên, những gì bạn có thể làm là echo kết quả của toán tử có điều kiện: echo empty($address['street2']) ? "Street2 is empty!" : $address['street2'];
và điều này sẽ hiển thị "Đường vắng!" nếu nó trống, nếu không nó sẽ hiển thị địa chỉ
street2. 182 hữu ích 0 bình luận chia sẻ answer 28 7+ PHPKể từ PHP 7, tác vụ này có thể được thực hiện đơn giản bằng cách sử dụng toán tử kết hợp Null như thế này: echo !empty($address['street2']) ?? 'Empty';
28 hữu ích 2 bình luận chia sẻ answer 23 Tuyên
bố đúng / sai cơ bản $is_admin = ($user['permissions'] == 'admin' ? true : false);
Thông điệp chào mừng có điều kiện echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!';
Tin nhắn mục có điều kiện echo 'Your cart contains '.$num_items.' item'.($num_items != 1 ? 's' : '').'.';
23 hữu ích 2 bình luận chia sẻ answer 10 Toán tử ternary chỉ là một tốc ký cho khối if và if. Mã làm việc của bạn không có điều kiện khác, vì vậy không phù hợp cho việc
này. Ví dụ sau sẽ hoạt động: echo empty($address['street2']) ? 'empty' : 'not empty';
10 hữu ích 0 bình luận chia sẻ answer 3 Lưu ý rằng khi sử dụng các toán tử điều kiện lồng nhau, bạn có thể muốn sử dụng dấu ngoặc đơn để tránh các vấn đề có thể xảy ra! Có vẻ như PHP không hoạt động giống như ít nhất là Javascript hoặc
C #. $score = 15;
$age = 5;
// The following will return "Exceptional"
echo 'Your score is: ' . ($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average'));
// The following will return "Horrible"
echo 'Your score is: ' . ($score > 10 ? $age > 10 ? 'Average' : 'Exceptional' : $age > 10 ? 'Horrible' : 'Average');
Mã giống nhau trong Javascript và C # trả về "Đặc biệt" trong cả hai trường hợp. Trong trường hợp thứ 2, những gì PHP làm là (hoặc ít nhất đó là những gì tôi hiểu): - là
$score > 10 ? Vâng - là
$age > 10 ? không, vì vậy, hiện tại $age > 10 ? 'Average' : 'Exceptional' trả về 'Đặc
biệt' - sau đó, thay vì chỉ dừng toàn bộ tuyên bố và trả về 'Đặc biệt', nó tiếp tục đánh giá tuyên bố tiếp theo
- tuyên bố tiếp theo sẽ
'Exceptional' ? 'Horrible' : 'Average' trả về 'Khủng khiếp', vì 'Đặc biệt' là sự thật
Từ tài liệu: http://php.net/manual/en/lingu.operators.comparison.php Chúng tôi khuyên bạn nên tránh "xếp chồng"
các biểu thức ternary. Hành vi của PHP khi sử dụng nhiều toán tử ternary trong một câu lệnh là không rõ ràng.
3 hữu ích 0 bình luận chia sẻ answer 2 Thông điệp chào mừng có điều kiện echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!';
Viết tắt PHP lồng nhau echo 'Your score is: '.($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average') );
2 hữu ích 0 bình luận chia sẻ
answer 2 Bạn có thể làm điều này thậm chí ngắn hơn bằng cách thay thế echo bằng<?= code ?> <?=(empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />'?>
Điều này rất hữu ích, đặc biệt khi bạn muốn xác định, bên trong thanh điều hướng, liệu tùy chọn menu có được hiển thị như đã truy cập (đã nhấp) hay không: <li<?=($basename=='index.php' ? ' class="active"' : '')?>><a href="index.php">Home</a></li>
2 hữu ích 1 bình luận chia sẻ answer 2 Dưới
đây là một số ví dụ thú vị, với một hoặc nhiều điều kiện khác nhau. $value1 = '1';
$value2 = '2';
$value3 = '3';
// 1 Condition
$v1 = ($value1 == '1') ? TRUE : FALSE;
var_dump($v1);
echo "<br>";
// 2 Conditions
$v2 = ($value1 == '' ? TRUE : ($value2 == '2' ? TRUE : FALSE));
var_dump($v2);
echo "<br>";
// 3 Conditions
$v3 = ($value1 == '' ? TRUE : ($value2 == '' ? TRUE : ($value3 == '3' ? TRUE : FALSE)));
var_dump($v3);
echo "<br>";
// 4 Conditions
$v4 = ($value1 == '1') ? ($value2 == '2' ? ($value3 == '3' ? TRUE : 'FALSE V3') : 'FALSE V2') : 'FALSE V1' ;
var_dump($v4);
echo "<br>";
2 hữu ích 2 bình luận chia sẻ answer 2 Đó là toán tử elvis (google nó: P) mà bạn đang tìm kiếm. echo $address['street2'] ?: 'Empty';
Nó trả về giá trị của biến hoặc mặc định nếu biến trống. 2 hữu ích 2 bình luận chia sẻ answer 0 Tôi
nghĩ rằng bạn đã sử dụng dấu ngoặc sai cách. Thử đi: $test = (empty($address['street2']) ? 'Yes <br />' : 'No <br />');
Tôi nghĩ rằng nó nên hoạt động, bạn cũng có thể sử dụng: echo (empty($address['street2']) ? 'Yes <br />' : 'No <br />');
0 hữu ích 0 bình luận chia sẻ answer 1 Ngoài ra còn có một nhà điều hành tốc ký và nó trông như thế này: (biểu thức1) ?: biểu thức2 sẽ trả về biểu
thức1 nếu nó ước tính thành true hoặc biểu thức2 nếu không. Thí dụ: $a = 'Apples';
echo ($a ?: 'Oranges') . ' are great!';
sẽ trở lại Apples are great!
Kể từ PHP 5.3, có thể loại bỏ phần giữa của toán tử ternary. Biểu thức expr1 ?: Expr3 trả về expr1 nếu expr1 ước lượng thành TRUE và expr3 nếu không.
Từ sách
hướng dẫn PHP 1 hữu ích 2 bình luận chia sẻ Đăng nhập để trả lời câu hỏiCó thể bạn quan tâm
|