Hướng dẫn php if empty ternary - php nếu rỗng bậc ba

Tôi có một toán tử Turnery kiểm tra xem loại bài viết WordPress có định dạng liên kết không. Nếu nó là nó xuất ra một trường tùy chỉnh và nếu nó không xuất hiện permalink.

Show

Làm thế nào tôi có thể đi về việc kiểm tra xem trường tùy chỉnh có trống không? Vì vậy, nếu nó trống, permalink là đầu ra và nếu nó không phải là trường tùy chỉnh là đầu ra.

Đây là những gì tôi có cho đến nay.

" rel="bookmark" title="">

Tôi đang nghĩ điều gì đó dọc theo dòng này nhưng dường như nó không hoạt động.

" rel="bookmark" title="">

Hỏi ngày 25 tháng 4 năm 2019 lúc 11:37Apr 25, 2019 at 11:37

Hướng dẫn php if empty ternary - php nếu rỗng bậc ba

Caffeinehighcaffeinehighcaffeinehigh

Huy hiệu vàng 3131 Huy hiệu bạc10 Huy hiệu đồng1 gold badge3 silver badges10 bronze badges

1

2 cách để làm như vậy:-

1.DD

" rel="bookmark" title="">

0 xung quanh điều kiện

" rel="bookmark" title="">

2. Kiểm tra điều kiện và gán nó cho biến trước, sau đó sử dụng nó tiếp theo


Đã trả lời ngày 25 tháng 4 năm 2019 lúc 11:54Apr 25, 2019 at 11:54

Hướng dẫn php if empty ternary - php nếu rỗng bậc ba

0

Điều này sẽ hoạt động nếu các giá trị ổn:


Đã trả lời ngày 25 tháng 4 năm 2019 lúc 11:50Apr 25, 2019 at 11:50

Vlad Kvlad kVlad K

Phù hiệu đồng 14588 bronze badges

" rel="bookmark" title="">

05

 2) ? "gr than 2" : ($var > 6)
?>

Quản trị viên tại Zeros Dot Co Dot id ¶

1 tháng trước

Tahazzot ¶

1 năm trước

 6 ? "gr than 6" : "gr than 2"));
?>

Mã sẽ được thực thi từ trước đến sau. Vì vậy, trước tiên

sẽ dẫn đến

" rel="bookmark" title="">

1.

Sau đó, câu hỏi tiếp theo sẽ dẫn đến

" rel="bookmark" title="">

2, vì

" rel="bookmark" title="">

1 bằng

" rel="bookmark" title="">

4.

Ngoài ra vì ở trên, sẽ rất tốt nếu nhận thấy rằng

" rel="bookmark" title="">

5 và

" rel="bookmark" title="">

6 đều là

" rel="bookmark" title="">

7, vì vậy toàn bộ dòng thực sự khá vô nghĩa theo cách nó được viết.

Giải pháp sẽ giống như:

* Chỉnh sửa: *
Cảm ơn bạn cho các upvote. Khi nhìn lại điều này, tôi đã bị lạc trong bài viết của riêng mình, bởi vì logic rất phức tạp. Vì vậy, đối với những người khác đọc điều này:Logic mà OP đã đăng có thể được đơn giản hóa thành những điều sau:OP sẽ hy vọng điều này sẽ dẫn đến

" rel="bookmark" title="">

8. Tuy nhiên, nó dẫn đến

" rel="bookmark" title="">

9 vì phần đầu tiên phần đầu tiên được thực thi và bởi vì phần đó là

" rel="bookmark" title="">

4, kết quả là "thứ hai".
Các toán tử so sánh, như tên của chúng ngụ ý, cho phép bạn so sánh hai giá trị. Bạn cũng có thể quan tâm đến việc xem các bảng so sánh loại, vì chúng hiển thị các ví dụ về các so sánh liên quan đến loại khác nhau.Toán tử so sánhThí dụ if $a is equal to $b after type juggling.
TênKết quả $ a == $ b if $a is equal to $b, and they are of the same type.
Bình đẳng

" rel="bookmark" title="">

4 nếu $ a bằng $ b sau khi loại tung.
$ a === $ b if $a is not equal to $b after type juggling.
Giống hệt nhau

" rel="bookmark" title="">

4 nếu $ a bằng $ b sau khi loại tung.
$ a === $ b if $a is not equal to $b after type juggling.
Giống hệt nhau

" rel="bookmark" title="">

4 nếu $ a bằng $ b và chúng cùng loại.
$ a! = $ b if $a is not equal to $b, or they are not of the same type.
Không công bằng

" rel="bookmark" title="">

4 nếu $ a không bằng $ b sau khi loại tung.
$ a $ b if $a is strictly less than $b.
$ a! == $ bKhông định nghĩa

" rel="bookmark" title="">

4 nếu $ A không bằng $ B hoặc chúng không thuộc cùng loại.
if $a is strictly greater than $b.
$ a <$ bÍt hơn

" rel="bookmark" title="">

4 nếu $ a hoàn toàn dưới $ b.
if $a is less than or equal to $b.
$ a> $ bLớn hơn

" rel="bookmark" title="">

4 nếu $ a hoàn toàn lớn hơn $ b.
if $a is greater than or equal to $b.
Giống hệt nhau

" rel="bookmark" title="">

4 nếu $ a bằng $ b và chúng cùng loại.
$ a! = $ bint less than, equal to, or greater than zero when $a is less than, equal to, or greater than $b, respectively.

Không công bằng

" rel="bookmark" title="">

4 nếu $ a không bằng $ b sau khi loại tung.

$ a $ bstring is compared to a number or a numeric string then the string was converted to a number before performing the comparison. This can lead to surprising results as can be seen with the following example:


2


3


4

$ a! == $ b

bool(true)
bool(true)
bool(true)
bool(true)
0

Không định nghĩa

bool(false)
bool(true)
bool(true)
bool(true)
a


5


6


7

" rel="bookmark" title="">

4 nếu $ A không bằng $ B hoặc chúng không thuộc cùng loại.

$ a <$ b
Ít hơn

" rel="bookmark" title="">

4 nếu $ a hoàn toàn dưới $ b.
OP sẽ hy vọng điều này sẽ dẫn đến

" rel="bookmark" title="">

8. Tuy nhiên, nó dẫn đến

" rel="bookmark" title="">

9 vì phần đầu tiên phần đầu tiên được thực thi và bởi vì phần đó là

" rel="bookmark" title="">

4, kết quả là "thứ hai".
Các toán tử so sánh, như tên của chúng ngụ ý, cho phép bạn so sánh hai giá trị. Bạn cũng có thể quan tâm đến việc xem các bảng so sánh loại, vì chúng hiển thị các ví dụ về các so sánh liên quan đến loại khác nhau. or string Toán tử so sánh Thí dụ

8
to "", numerical or lexical comparison
Tên or null Kết quả$ a == $ bbool,

9
<

" rel="bookmark" title="">

4
Bình đẳng Bình đẳng

" rel="bookmark" title="">

4 nếu $ a bằng $ b sau khi loại tung.
Chuỗi, tài nguyên, int hoặc float, resource, int or float Chuỗi, tài nguyên, int hoặc float, resource, int or float Dịch chuỗi và tài nguyên sang số, toán học thông thường
mảng mảng Mảng có ít thành viên hơn là nhỏ hơn, nếu không tìm thấy khóa từ toán hạng 1 trong toán hạng 2 thì các mảng không thể so sánh được, nếu không - so sánh giá trị theo giá trị (xem ví dụ sau)
sự vật bất cứ điều gìĐối tượng luôn lớn hơn is always greater
mảng bất cứ điều gìĐối tượng luôn lớn hơn is always greater

Mảng luôn lớn hơn


1

Ví dụ #1 so sánh Boolean/Null


2

Ví dụ #2 Phiên âm của so sánh mảng tiêu chuẩn

Cảnh báo

So sánh số điểm nổifloats are represented internally, you should not test two floats for equality.

Do cách thức nổi được thể hiện trong nội bộ, bạn không nên kiểm tra hai phao cho sự bình đẳng.float for more information.

Xem tài liệu để nổi để biết thêm thông tin.: Be aware that PHP's type juggling is not always obvious when comparing values of different types, particularly comparing ints to bools or ints to strings. It is therefore generally advisable to use


0 and

1 comparisons rather than

5 and

6 in most cases.

Lưu ý: Hãy lưu ý rằng việc tung hứng loại của PHP không phải lúc nào cũng rõ ràng khi so sánh các giá trị của các loại khác nhau, đặc biệt là so sánh INTS với bools hoặc INT với chuỗi. Do đó, thường nên sử dụng so sánh

0 và 1 thay vì 5 và 6 trong hầu hết các trường hợp.

Giá trị không thể so sánh

Trong khi so sánh danh tính (

0 và 1) có thể được áp dụng cho các giá trị tùy ý, các toán tử so sánh khác chỉ nên được áp dụng cho các giá trị tương đương. Kết quả của việc so sánh các giá trị không thể so sánh là không xác định và không nên dựa vào.

Toán tử ternary

Một toán tử có điều kiện khác là toán tử "?:" (Hoặc ternary).


9

Ví dụ #3 gán giá trị mặc địnhexpr2 if expr1 evaluates to

" rel="bookmark" title="">

4, and expr3 if expr1 evaluates to

9
.

Biểu thức

 2) ? "gr than 2" : ($var > 6)
?>
0 đánh giá là expr2 nếu expr1 đánh giá là

" rel="bookmark" title="">

4 và expr3 nếu expr1 đánh giá là

9.expr1 if expr1 evaluates to

" rel="bookmark" title="">

4
, and expr3 otherwise. expr1 is only evaluated once in this case.

Có thể bỏ qua phần giữa của toán tử ternary. Biểu thức

 2) ? "gr than 2" : ($var > 6)
?>
3 đánh giá kết quả của expr1 nếu expr1 đánh giá là

" rel="bookmark" title="">

4 và expr3 khác. Expr1 chỉ được đánh giá một lần trong trường hợp này.
: Please note that the ternary operator is an expression, and that it doesn't evaluate to a variable, but to the result of an expression. This is important to know if you want to return a variable by reference. The statement
 2) ? "gr than 2" : ($var > 6)
?>
5 in a return-by-reference function will therefore not work and a warning is issued.

Lưu ý: Xin lưu ý rằng toán tử ternary là một biểu thức và nó không đánh giá thành một biến, mà là kết quả của một biểu thức. Điều này rất quan trọng để biết nếu bạn muốn trả về một biến bằng cách tham khảo. Do đó, tuyên bố

 2) ? "gr than 2" : ($var > 6)
?>
5 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.:

Ghi chú:

Nên tránh các biểu thức ternary "xếp chồng". Hành vi của PHP khi sử dụng nhiều hơn một toán tử ternary chưa được khám phá trong một biểu thức duy nhất là không rõ ràng so với các ngôn ngữ khác. Thật vậy, trước Php 8.0.0, các biểu thức ternary đã được đánh giá liên kết trái, thay vì liên kết phải như hầu hết các ngôn ngữ lập trình khác. Dựa vào tính liên kết trái được không phản đối kể từ Php 7.4.0. Kể từ Php 8.0.0, toán tử ternary không liên kết.

 2) ? "gr than 2" : ($var > 6)
?>
6

 2) ? "gr than 2" : ($var > 6)
?>
7

 2) ? "gr than 2" : ($var > 6)
?>
8

Lưu ý: Xin lưu ý rằng toán tử ternary là một biểu thức và nó không đánh giá thành một biến, mà là kết quả của một biểu thức. Điều này rất quan trọng để biết nếu bạn muốn trả về một biến bằng cách tham khảo. Do đó, tuyên bố

 2) ? "gr than 2" : ($var > 6)
?>
5 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.:

Ghi chú:

Nên tránh các biểu thức ternary "xếp chồng". Hành vi của PHP khi sử dụng nhiều hơn một toán tử ternary chưa được khám phá trong một biểu thức duy nhất là không rõ ràng so với các ngôn ngữ khác. Thật vậy, trước Php 8.0.0, các biểu thức ternary đã được đánh giá liên kết trái, thay vì liên kết phải như hầu hết các ngôn ngữ lập trình khác. Dựa vào tính liên kết trái được không phản đối kể từ Php 7.4.0. Kể từ Php 8.0.0, toán tử ternary không liên kết.

 6 ? "gr than 6" : "gr than 2"));
?>
0

Ví dụ #4 Hành vi ternary không rõ ràng

Chuỗi các yếu tố ngắn (

 2) ? "gr than 2" : ($var > 6)
?>
9), tuy nhiên, là ổn định và hành xử hợp lý. Nó sẽ đánh giá đối với đối số đầu tiên đánh giá đến giá trị không giả mạo. Lưu ý rằng các giá trị không xác định vẫn sẽ đưa ra một cảnh báo.

Ví dụ #5 Chuỗi ngắn hạn

 6 ? "gr than 6" : "gr than 2"));
?>
1

Nhà điều hành NULL kết hợpexpr2 if expr1 is


8, and expr1 otherwise.

Một nhà điều hành tốc ký hữu ích khác là "??" (hoặc null kết hợp lại) Nhà điều hành.isset(). This is especially useful on array keys.

Ví dụ #6 gán giá trị mặc định: Please note that the null coalescing operator is an expression, and that it doesn't evaluate to a variable, but to the result of an expression. This is important to know if you want to return a variable by reference. The statement

 6 ? "gr than 6" : "gr than 2"));
?>
4 in a return-by-reference function will therefore not work and a warning is issued.

Lưu ý: Xin lưu ý rằng toán tử ternary là một biểu thức và nó không đánh giá thành một biến, mà là kết quả của một biểu thức. Điều này rất quan trọng để biết nếu bạn muốn trả về một biến bằng cách tham khảo. Do đó, tuyên bố

 2) ? "gr than 2" : ($var > 6)
?>
5 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.:

Ghi chú:

 6 ? "gr than 6" : "gr than 2"));
?>
5

Lưu ý: Xin lưu ý rằng toán tử ternary là một biểu thức và nó không đánh giá thành một biến, mà là kết quả của một biểu thức. Điều này rất quan trọng để biết nếu bạn muốn trả về một biến bằng cách tham khảo. Do đó, tuyên bố

 2) ? "gr than 2" : ($var > 6)
?>
5 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.:

Ghi chú:

Nên tránh các biểu thức ternary "xếp chồng". Hành vi của PHP khi sử dụng nhiều hơn một toán tử ternary chưa được khám phá trong một biểu thức duy nhất là không rõ ràng so với các ngôn ngữ khác. Thật vậy, trước Php 8.0.0, các biểu thức ternary đã được đánh giá liên kết trái, thay vì liên kết phải như hầu hết các ngôn ngữ lập trình khác. Dựa vào tính liên kết trái được không phản đối kể từ Php 7.4.0. Kể từ Php 8.0.0, toán tử ternary không liên kết.

 6 ? "gr than 6" : "gr than 2"));
?>
6

 6 ? "gr than 6" : "gr than 2"));
?>
7

 6 ? "gr than 6" : "gr than 2"));
?>
8

Ví dụ #4 Hành vi ternary không rõ ràng

Chuỗi các yếu tố ngắn (

 2) ? "gr than 2" : ($var > 6)
?>
9), tuy nhiên, là ổn định và hành xử hợp lý. Nó sẽ đánh giá đối với đối số đầu tiên đánh giá đến giá trị không giả mạo. Lưu ý rằng các giá trị không xác định vẫn sẽ đưa ra một cảnh báo.

 6 ? "gr than 6" : "gr than 2"));
?>
9

0

1

Ví dụ #5 Chuỗi ngắn hạn

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

Một nhà điều hành tốc ký hữu ích khác là "??" (hoặc null kết hợp lại) Nhà điều hành.

3

4

5

1

Ví dụ #6 gán giá trị mặc định

Biểu thức

 6 ? "gr than 6" : "gr than 2"));
?>
2 đánh giá là expr2 nếu expr1 là

8 và expr1 khác.

7

8

9

bool(true)
bool(true)
bool(true)
bool(true)
0
0

1

Cụ thể, toán tử này không phát ra thông báo hoặc cảnh báo nếu giá trị phụ bên trái không tồn tại, giống như isset (). Điều này đặc biệt hữu ích trên các phím mảng.

Biểu thức

 6 ? "gr than 6" : "gr than 2"));
?>
2 đánh giá là expr2 nếu expr1 là

8 và expr1 khác.

bool(true)
bool(true)
bool(true)
bool(true)
0
2

bool(true)
bool(true)
bool(true)
bool(true)
0
3

bool(true)
bool(true)
bool(true)
bool(true)
0
4

bool(true)
bool(true)
bool(true)
bool(true)
0
5

Cụ thể, toán tử này không phát ra thông báo hoặc cảnh báo nếu giá trị phụ bên trái không tồn tại, giống như isset (). Điều này đặc biệt hữu ích trên các phím mảng.

Lưu ý: Xin lưu ý rằng toán tử kết hợp null là một biểu thức và nó không đánh giá thành một biến, mà là kết quả của một biểu thức. Điều này rất quan trọng để biết nếu bạn muốn trả về một biến bằng cách tham khảo. Do đó, tuyên bố

 6 ? "gr than 6" : "gr than 2"));
?>
4 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.

bool(true)
bool(true)
bool(true)
bool(true)
0
6

bool(true)
bool(true)
bool(true)
bool(true)
0
7

bool(true)
bool(true)
bool(true)
bool(true)
0
8

bool(true)
bool(true)
bool(true)
bool(true)
0
9

1

Các nhà điều hành NULL kết hợp có quyền ưu tiên thấp. Điều đó có nghĩa là nếu trộn nó với các toán tử khác (như kết hợp chuỗi hoặc toán tử số học) có thể sẽ được yêu cầu.

Xin lưu ý rằng người vận hành Null Coalescing cho phép làm tổ đơn giản:

bool(false)
bool(true)
bool(true)
bool(true)
a
1

bool(false)
bool(true)
bool(true)
bool(true)
a
2

bool(false)
bool(true)
bool(true)
bool(true)
a
3

bool(false)
bool(true)
bool(true)
bool(true)
a
4

bool(false)
bool(true)
bool(true)
bool(true)
a
5

1

Ví dụ #7 Nhà điều hành NULL NULL kết hợp

Crazy888s tại hotmail dot com

bool(false)
bool(true)
bool(true)
bool(true)
a
7

bool(false)
bool(true)
bool(true)
bool(true)
a
8

1

12 năm trước

2 năm trước

" rel="bookmark" title="">

00

Marcin Kuzawiski ¶

7 năm trước

" rel="bookmark" title="">

01

" rel="bookmark" title="">

02

" rel="bookmark" title="">

03

" rel="bookmark" title="">

04

" rel="bookmark" title="">

05

" rel="bookmark" title="">

06

" rel="bookmark" title="">

07

" rel="bookmark" title="">

08

" rel="bookmark" title="">

09

1

Quản trị viên tại Zeros Dot Co Dot id ¶

1 tháng trước

" rel="bookmark" title="">

11

" rel="bookmark" title="">

12

" rel="bookmark" title="">

13

" rel="bookmark" title="">

14

1

Tahazzot ¶

1 năm trước

" rel="bookmark" title="">

16

" rel="bookmark" title="">

17

" rel="bookmark" title="">

18

" rel="bookmark" title="">

19

1