Theo logic của bạn, chỉ có hai kết quả có thể xảy ra cho giá trị $status
: 'lose'
hoặc 'draw'
.
Tại sao điều này? Logic cơ bản nói rằng trừ khi có một trận hòa, một trò chơi sẽ luôn có người chiến thắng. Tuyên bố if
của bạn xếp hàng với điều này. Hoặc $homescore > $awayscore
hoặc $homescore < $awayscore
[hoặc có một sự ràng buộc]. Vì vậy, trong trường hợp không phải là cà vạt, một trong những mặt của lần đầu tiên của bạn nếu sẽ đánh giá thành true
, và do đó toàn bộ điều kiện sẽ là true
vì ||
chỉ cần một sự thật. Vì vậy, trừ khi có một cà vạt, $status
sẽ được đặt thành $status
1.
Tiếp tục, logic cơ bản cũng sẽ cho chúng ta biết rằng một trò chơi luôn có người thua cuộc trừ khi có một sự ràng buộc. Một lần nữa, mã của bạn phù hợp với điều này. Trong trường hợp không phải cà vạt, một trong số điểm sẽ ít hơn so với điểm khác và do đó, thứ hai của bạn nếu sẽ đánh giá thành true
như lần đầu tiên đã làm. Bây giờ $status
3.
Bây giờ nếu có một sự ràng buộc, $status
sẽ bằng 'draw'
, nhưng nếu không $status
sẽ luôn là 'lose'
bởi vì nếu trò chơi có người chiến thắng, nó cũng có người thua cuộc và $status
được đặt thành 'lose'
sau khi nó được đặt thành $status
1.
Những gì bạn cần ở đây là một biến cho người chiến thắng, người thua cuộc và cho một trận hòa. Như vậy:
$winner = '';
$loser = '';
$draw = false;
if[$homescore > $awayscore] {
$winner = 'home';
$loser = 'away';
} else if[$homescore < $awayscore] {
$winner = 'away';
$loser = 'home';
} else if[$homescore === $awayscore] {
$draw = true;
}
[Bản demo Codepad]
Mã này cũng sử dụng 'lose'
1, vì bạn không cần đánh giá các điều kiện khác nếu bạn xác định ai đã thắng và thua.
10 năm trước
sự vô tính tại gmail dot com ¶
Chrisnospam tại Kampmeier Dot Net
tạo ra đầu ra chính xác như:
tức là cả hai đều sản xuất: Xin chào Thế giới.hello world.
Để sử dụng các biến biến với các mảng, bạn phải giải quyết vấn đề mơ hồ. Đó là, nếu bạn viết $$ A [1] thì trình phân tích cú pháp cần biết liệu bạn có muốn sử dụng $ a [1] làm biến hay không, hoặc nếu bạn muốn $$ a làm biến và sau đó là chỉ mục [1] từ biến đó. Cú pháp để giải quyết sự mơ hồ này là: $ {$ a [1]} cho trường hợp đầu tiên và $ {$ a} [1] cho lần thứ hai.
Thuộc tính lớp cũng có thể được truy cập bằng tên thuộc tính biến. Tên thuộc tính biến sẽ được giải quyết trong phạm vi mà cuộc gọi được thực hiện. Chẳng hạn, nếu bạn có một biểu thức, chẳng hạn như $ foo-> $ Bar, thì phạm vi cục bộ sẽ được kiểm tra $ Bar và giá trị của nó sẽ được sử dụng làm tên của thuộc tính của $ foo. Điều này cũng đúng nếu $ Bar là một truy cập mảng.
Niềng răng xoăn cũng có thể được sử dụng, để phân định rõ ràng tên thuộc tính. Chúng hữu ích nhất khi truy cập các giá trị trong một thuộc tính chứa một mảng, khi tên thuộc tính được tạo từ nhiều phần hoặc khi tên thuộc tính chứa các ký tự không hợp lệ [ví dụ: từ json_decode [] hoặc simplexml].json_decode[] or SimpleXML].
Ví dụ #1 Ví dụ về thuộc tính biến
'lose'
2
Ví dụ trên sẽ xuất ra:
Tôi là quán bar. Tôi là quán bar. Tôi là quán bar. Tôi là R.
I am bar.
I am bar.
I am r.
Cảnh báo
Xin lưu ý rằng các biến biến không thể được sử dụng với các mảng SuperGlobal của PHP trong các hàm hoặc phương thức lớp. Biến 'lose'
3 cũng là một biến đặc biệt không thể được tham chiếu động.
userb at abertb dot org ¶ ¶
12 năm trước
'lose'
4
'lose'
5
'lose'
6Ẩn danh ¶ ¶
17 năm trước
'lose'
7
'lose'
8
'lose'
9Nathan Hammond ¶ ¶
14 năm trước
'draw'
0
'draw'
1
'draw'
2
'draw'
3Antony Dot Gian hàng tại Nodomain Dot ở đây ¶ ¶
20 năm trước
'draw'
4
'draw'
5
'draw'
6
'draw'
7
'draw'
8
'draw'
9
if
0
'lose'
9J. Dyer ¶ ¶
20 năm trước
if
2
if
3
if
4
if
5
if
6
if
7
if
8
if
9
$homescore > $awayscore
0J. Dyer ¶ ¶
Tội lỗi ¶
$homescore > $awayscore
1
$homescore > $awayscore
2
$homescore > $awayscore
3
$homescore > $awayscore
4 ¶
Ở đây [Ta tại TA] [Iwonderr]
$homescore > $awayscore
5
'draw'
1
$homescore > $awayscore
7
$homescore > $awayscore
86 năm trước ¶
jefrey.sobreira [at] gmail [dot] com ¶
$homescore > $awayscore
9
$homescore < $awayscore
0
'lose'
97 năm trước ¶
12 năm trước
$homescore < $awayscore
2
$homescore < $awayscore
3
$homescore < $awayscore
4
'lose'
9Ẩn danh ¶ ¶
17 năm trước
$homescore < $awayscore
6
Ẩn danh ¶ ¶
20 năm trước
$homescore < $awayscore
7
$homescore < $awayscore
8
$homescore < $awayscore
9
'lose'
9J. Dyer ¶ ¶
Tội lỗi ¶
true
1
15 năm trước ¶
$homescore > $awayscore
4
true
2
true
3
true
4
true
5
true
6Ở đây [Ta tại TA] [Iwonderr] ¶
6 năm trước
true
7
jefrey.sobreira [at] gmail [dot] com ¶ ¶
7 năm trước
true
8
true
9
true
0
true
1
true
2
true
3Mason ¶ ¶
14 năm trước
true
4
true
5
'lose'
9Antony Dot Gian hàng tại Nodomain Dot ở đây ¶ ¶
20 năm trước
true
7
true
8
true
9
||
0J. Dyer ¶ ¶
12 năm trước
||
1
||
2
||
3
||
4
||
5
'lose'
9Ẩn danh ¶ ¶
17 năm trước
||
7
||
8
||
9
$status
00Ẩn danh ¶ ¶
17 năm trước
$status
01
$status
02
$status
03
$status
04
$status
05
$status
06
'lose'
9Nathan Hammond ¶ ¶
14 năm trước
$status
08
$status
09
$status
10
$status
11
$status
12
$status
13
'lose'
9Antony Dot Gian hàng tại Nodomain Dot ở đây ¶ ¶
20 năm trước
$status
15
$status
16
$status
17
$status
18J. Dyer ¶ ¶
Tội lỗi ¶
$status
19
$status
20
$status
21
$status
22
$status
23
$status
2415 năm trước ¶
14 năm trước
$status
25
Antony Dot Gian hàng tại Nodomain Dot ở đây ¶ ¶
20 năm trước
$status
26
$status
27
$status
28
$status
29J. Dyer ¶ ¶
20 năm trước
$status
30
$status
31
$status
32
$status
33J. Dyer ¶ ¶
20 năm trước
$status
34
$status
35
'lose'
9J. Dyer ¶ ¶
14 năm trước
$status
37
$status
38
$status
39
$status
40
$status
41Antony Dot Gian hàng tại Nodomain Dot ở đây ¶ ¶
20 năm trước
$status
42
$status
43
'lose'
9J. Dyer ¶ ¶
6 năm trước
$status
45
$status
46
$status
47jefrey.sobreira [at] gmail [dot] com ¶ ¶
7 năm trước
$status
48
$status
49
$status
50
'lose'
9Mason ¶ ¶
PHP tại Ianco dot co dot uk ¶
$status
52
$status
53
'lose'
9