Hướng dẫn what are the simplest form of expression in php? - dạng biểu thức đơn giản nhất trong php là gì?

Chương & NBSP; 4. & NBSP; Biểu thức và luồng điều khiển trong PHP

Chương trước đã giới thiệu một số chủ đề trong việc thông qua chương này bao gồm đầy đủ hơn, chẳng hạn như đưa ra các lựa chọn (phân nhánh) và tạo ra các biểu thức phức tạp. Trong chương trước, tôi muốn tập trung vào các cú pháp và hoạt động cơ bản nhất trong PHP, nhưng tôi không thể tránh chạm vào các chủ đề nâng cao hơn. Bây giờ tôi có thể điền vào nền mà bạn cần sử dụng các tính năng PHP mạnh mẽ này đúng cách.

Trong chương này, bạn sẽ có được một nền tảng kỹ lưỡng về cách lập trình PHP hoạt động trong thực tế và cách kiểm soát luồng của chương trình.

Biểu thức

Hãy bắt đầu với phần cơ bản nhất của bất kỳ ngôn ngữ lập trình nào: biểu thức.expressions.

Một biểu thức là sự kết hợp của các giá trị, biến, toán tử và các hàm dẫn đến một giá trị. Nó quen thuộc với bất cứ ai đã học đại số trung học:

y = 3(abs(2x) + 4)

mà trong PHP sẽ là:

$y = 3 * (abs(2 * $x) + 4);

Giá trị được trả về (Y, hoặc a: [1] b: []3 trong trường hợp này) có thể là một số, chuỗi hoặc giá trị boolean (được đặt theo tên của George Boole, một nhà toán học và triết học người Anh thế kỷ XIX). Đến bây giờ, bạn nên quen thuộc với hai loại giá trị đầu tiên, nhưng tôi sẽ giải thích loại thứ ba.y, or a: [1] b: []3 in this case) can be a number, a string, or a Boolean value (named after George Boole, a nineteenth-century English mathematician and philosopher). By now, you should be familiar with the first two value types, but I’ll explain the third.

Đúng hay sai?

Một giá trị boolean cơ bản có thể là a: [1] b: []4 hoặc a: [1] b: []5. Ví dụ: biểu thức của 20> 9> 9 (20 lớn hơn 9) là a: [1] b: []4 và biểu thức 5 == 6 (5 bằng 6) là a: [1] b: []5. .

Ghi chú

Lưu ý rằng tôi đang sử dụng các chữ cái chữ hoa cho các tên a: [1] b: []4 và a: [1] b: []5. Điều này là do chúng là hằng số được xác định trước trong PHP. Bạn cũng có thể sử dụng các phiên bản viết thường, nếu bạn thích, vì chúng cũng được xác định trước. Trên thực tế, các phiên bản thường ổn định hơn, bởi vì PHP không cho phép bạn xác định lại chúng; Những cái viết hoa có thể được xác định lại là một thứ gì đó bạn nên ghi nhớ nếu bạn nhập mã bên thứ ba.

Ví dụ & nbsp; 4-1 cho thấy một số biểu thức đơn giản: hai biểu thức tôi vừa đề cập, cộng với một vài biểu thức nữa. Đối với mỗi dòng, nó in ra một chữ cái giữa <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>3 và <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>4, sau đó là một dấu hai chấm và kết quả của các biểu thức. Thẻ <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>5 có mặt để tạo một ngắt dòng và do đó tách đầu ra thành bốn dòng trong HTML.

Ghi chú

Lưu ý rằng tôi đang sử dụng các chữ cái chữ hoa cho các tên a: [1] b: []4 và a: [1] b: []5. Điều này là do chúng là hằng số được xác định trước trong PHP. Bạn cũng có thể sử dụng các phiên bản viết thường, nếu bạn thích, vì chúng cũng được xác định trước. Trên thực tế, các phiên bản thường ổn định hơn, bởi vì PHP không cho phép bạn xác định lại chúng; Những cái viết hoa có thể được xác định lại là một thứ gì đó bạn nên ghi nhớ nếu bạn nhập mã bên thứ ba.

Ví dụ & nbsp; 4-1 cho thấy một số biểu thức đơn giản: hai biểu thức tôi vừa đề cập, cộng với một vài biểu thức nữa. Đối với mỗi dòng, nó in ra một chữ cái giữa <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>3 và <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>4, sau đó là một dấu hai chấm và kết quả của các biểu thức. Thẻ <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>5 có mặt để tạo một ngắt dòng và do đó tách đầu ra thành bốn dòng trong HTML.

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>

Bây giờ chúng ta đã hoàn toàn vào tuổi của HTML5, và XHTML không còn được lên kế hoạch để thay thế HTML, bạn không cần phải sử dụng dạng <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>6 tự đóng của thẻ <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>5 hoặc bất kỳ phần tử void nào (không có thẻ đóng), Bởi vì <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>8 hiện là tùy chọn. Do đó, tôi đã chọn sử dụng phong cách đơn giản hơn trong cuốn sách này. Nếu bạn đã thực hiện các thẻ không sử dụng HTML tự đóng (chẳng hạn như <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>9), chúng sẽ không hoạt động trong HTML5 vì <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>8 sẽ bị bỏ qua và bạn sẽ cần thay thế chúng bằng, ví dụ, a: 73 b: Hello c: d: Brian e: 371. Tuy nhiên, bạn vẫn phải sử dụng dạng a: 73 b: Hello c: d: Brian e: 372 của cú pháp HTML khi sử dụng XHTML.

a: [1] b: [] c: [] d: [1]

Ví dụ & nbsp; 4-1. & Nbsp; bốn biểu thức boolean đơn giản

Đầu ra từ mã này như sau:

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>

Lưu ý rằng cả hai biểu thức a: 73 b: Hello c: d: Brian e: 373 và a: 73 b: Hello c: d: Brian e: 374 đánh giá thành a: [1] b: []4, có giá trị a: 73 b: Hello c: d: Brian e: 376. Nhưng a: 73 b: Hello c: d: Brian e: 377 và a: 73 b: Hello c: d: Brian e: 378, đánh giá thành a: [1] b: []5, không hiển thị bất kỳ giá trị nào, bởi vì trong PHP, hằng số a: [1] b: []5 được định nghĩa là <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>1, hoặc không có gì. Để xác minh điều này cho chính mình, bạn có thể nhập mã vào ví dụ & NBSP; 4-2.

a: [1] b: []

Ví dụ & NBSP; 4-2. & NBSP; xuất ra các giá trị của Đúng và Sai

đầu ra nào sau:

Nhân tiện, trong một số ngôn ngữ a: [1] b: []5 có thể được định nghĩa là <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3 hoặc thậm chí <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>4, do đó, nó đáng để kiểm tra định nghĩa của nó trong mỗi ngôn ngữ.literal, which simply means something that evaluates to itself, such as the number <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>5 or the string <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>6. An expression could also simply be a variable, which evaluates to the value that has been assigned to it. They are both types of expressions, because they return a value.

Nghĩa đen và biến

Hình thức đơn giản nhất của một biểu thức là theo nghĩa đen, có nghĩa đơn giản là một cái gì đó đánh giá chính nó, chẳng hạn như số <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>5 hoặc chuỗi <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>6. Một biểu thức cũng có thể chỉ đơn giản là một biến, đánh giá giá trị đã được gán cho nó. Cả hai đều là loại biểu thức, vì chúng trả về một giá trị.

<?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>

Ví dụ & nbsp; 4-3 hiển thị ba chữ và hai biến, tất cả đều trả về các giá trị, mặc dù các loại khác nhau.

a: 73 b: Hello c: d: Brian e: 37

Ví dụ & nbsp; 4-3. & Nbsp; nghĩa đen và biến

Và, như bạn đã mong đợi, bạn thấy giá trị trả lại từ tất cả những thứ này ngoại trừ a: 73 b: Hello c: d: Brian e: 378, đánh giá thành a: [1] b: []5, không trả lại gì trong đầu ra sau:statement. Example 4-4 shows one of each. The first assigns the result of the expression <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>9 to the variable 1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 30, and the second outputs a friendly message only if the expression 1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 31 evaluates to a: [1] b: []4.

Ví dụ & nbsp; 4-4. & Nbsp; một biểu thức và một câu lệnh

<?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>

Người vận hành

PHP cung cấp rất nhiều toán tử mạnh mẽ, từ các toán tử số học, chuỗi và logic đến gán, so sánh và nhiều hơn nữa (xem Bảng & NBSP; 4-1).

Bảng & NBSP; 4-1. & NBSP; Các loại vận hành PHP

Nhà điều hành

Sự mô tả

Thí dụ

Môn số học

Toán học cơ bản

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 33

Mảng

Mảng Liên minh

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 33

Phân công

Gán giá trị

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 35

Bitwise

Thao tác các bit bên trong byte

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 36

So sánh

So sánh hai giá trị

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 37

Chấp hành

Thực hiện nội dung của ve sau

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 38

Increment/decrement

Thêm hoặc trừ 1

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 39

Hợp lý

Boolean

$y = 3 * (abs(2 * $x) + 4);00

Sợi dây

Kết nối

$y = 3 * (abs(2 * $x) + 4);01

Mỗi toán tử có một số toán hạng khác nhau:

  • Các toán tử Unary, chẳng hạn như tăng (1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 39) hoặc phủ định ($y = 3 * (abs(2 * $x) + 4);03), có một toán hạng duy nhất. operators, such as incrementing (1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 39) or negation ($y = 3 * (abs(2 * $x) + 4);03), which take a single operand.

  • Các toán tử nhị phân, đại diện cho phần lớn các toán tử PHP, bao gồm bổ sung, trừ, nhân và chia. operators, which represent the bulk of PHP operators, including addition, subtraction, multiplication, and division.

  • Một toán tử ternary, có dạng $y = 3 * (abs(2 * $x) + 4);04. Nó có một tuyên bố ngắn gọn, một dòng ____105 được chọn giữa hai biểu thức, tùy thuộc vào kết quả của một thứ ba.ternary operator, which takes the form $y = 3 * (abs(2 * $x) + 4);04. It’s a terse, single-line $y = 3 * (abs(2 * $x) + 4);05 statement that chooses between two expressions, depending on the result of a third one.

ưu tiên điều hành

Nếu tất cả các nhà khai thác có cùng mức độ ưu tiên, chúng sẽ được xử lý theo thứ tự mà chúng gặp phải. Trên thực tế, nhiều nhà khai thác có cùng mức độ ưu tiên, vì vậy hãy để Lôi nhìn vào một vài ví dụ & nbsp; 4-5.

Ví dụ & nbsp; 4-5. & Nbsp; ba biểu thức tương đương

1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 3

Ở đây bạn sẽ thấy rằng mặc dù các số (và các toán tử trước của chúng) đã được di chuyển, kết quả của mỗi biểu thức là giá trị $y = 3 * (abs(2 * $x) + 4);06, bởi vì các toán tử cộng và trừ có cùng mức độ ưu tiên. Chúng ta có thể thử điều tương tự với phép nhân và chia (xem ví dụ & NBSP; 4-6).

Ví dụ & nbsp; 4-6. & Nbsp; ba biểu thức cũng tương đương

$y = 3 * (abs(2 * $x) + 4);0

Ở đây giá trị kết quả luôn luôn là $y = 3 * (abs(2 * $x) + 4);07. Nhưng mọi thứ thay đổi khi chúng ta trộn các toán tử với các ưu tiên khác nhau trong một biểu thức, như trong ví dụ & nbsp; 4-7.different precedencies in an expression, as in Example 4-7.

Ví dụ & nbsp; 4-7. & Nbsp; ba biểu thức sử dụng các toán tử có ưu tiên hỗn hợp

$y = 3 * (abs(2 * $x) + 4);1

Nếu không có ưu tiên toán tử, ba biểu thức này sẽ đánh giá thành $y = 3 * (abs(2 * $x) + 4);08, $y = 3 * (abs(2 * $x) + 4);09 và $y = 3 * (abs(2 * $x) + 4);10, tương ứng. Nhưng bởi vì phép nhân và chia được ưu tiên hơn so với cộng và trừ, nên có dấu ngoặc đơn xung quanh các phần này của các biểu thức, trông giống như ví dụ & nbsp; 4-8 nếu chúng có thể nhìn thấy.

Ví dụ & nbsp; 4-8. & Nbsp; ba biểu thức hiển thị dấu ngoặc đơn ngụ ý

$y = 3 * (abs(2 * $x) + 4);2

Rõ ràng, PHP phải đánh giá các biểu hiện phụ trong ngoặc đơn đầu tiên để rút ra các biểu thức bán hoàn chỉnh trong ví dụ & nbsp; 4-9.

Ví dụ & nbsp; 4-9. & Nbsp; sau khi đánh giá các biểu hiện phụ trong ngoặc đơn

$y = 3 * (abs(2 * $x) + 4);3

Kết quả cuối cùng của các biểu thức này là $y = 3 * (abs(2 * $x) + 4);11, $y = 3 * (abs(2 * $x) + 4);12 và $y = 3 * (abs(2 * $x) + 4);13, tương ứng (hoàn toàn khác với kết quả của $y = 3 * (abs(2 * $x) + 4);08, $y = 3 * (abs(2 * $x) + 4);09 và $y = 3 * (abs(2 * $x) + 4);10 mà chúng ta sẽ thấy không có ưu tiên của nhà điều hành).

Tất nhiên, bạn có thể ghi đè lên định vị toán tử mặc định bằng cách chèn dấu ngoặc đơn của riêng bạn và buộc các kết quả ban đầu mà chúng tôi sẽ thấy nếu không có sự ưu tiên của nhà điều hành (xem ví dụ & NBSP; 4-10).

Ví dụ & nbsp; 4-10. & Nbsp; buộc đánh giá từ trái sang phải

$y = 3 * (abs(2 * $x) + 4);4

Với dấu ngoặc đơn được chèn chính xác, bây giờ chúng ta sẽ thấy các giá trị $y = 3 * (abs(2 * $x) + 4);08, $y = 3 * (abs(2 * $x) + 4);09 và $y = 3 * (abs(2 * $x) + 4);10, tương ứng.

Bảng & NBSP; 4-2 liệt kê các toán tử PHP, theo thứ tự ưu tiên từ cao đến thấp.

Bảng & NBSP; 4-2. & NBSP; Ưu tiên của các toán tử PHP (cao đến thấp)

Operator(s)

Loại hình

$y = 3 * (abs(2 * $x) + 4);20

Dấu ngoặc đơn

$y = 3 * (abs(2 * $x) + 4);21

Increment/decrement

$y = 3 * (abs(2 * $x) + 4);22

Hợp lý

$y = 3 * (abs(2 * $x) + 4);23

Môn số học

$y = 3 * (abs(2 * $x) + 4);24

Toán học cơ bản

$y = 3 * (abs(2 * $x) + 4);25

Bitwise

$y = 3 * (abs(2 * $x) + 4);26

So sánh

$y = 3 * (abs(2 * $x) + 4);27

So sánh

$y = 3 * (abs(2 * $x) + 4);28

So sánh hai giá trị

$y = 3 * (abs(2 * $x) + 4);29

Bitwise

$y = 3 * (abs(2 * $x) + 4);30

Bitwise

$y = 3 * (abs(2 * $x) + 4);31

Hợp lý

$y = 3 * (abs(2 * $x) + 4);32

Hợp lý

$y = 3 * (abs(2 * $x) + 4);33

Boolean

$y = 3 * (abs(2 * $x) + 4);34

Phân công

$y = 3 * (abs(2 * $x) + 4);35

Hợp lý

$y = 3 * (abs(2 * $x) + 4);36

Hợp lý

$y = 3 * (abs(2 * $x) + 4);37

Hợp lý

Boolean

Sợi dâyassociativity. For some operators there is no associativity.

Kết nối

Mỗi toán tử có một số toán hạng khác nhau:

Nhà điều hành

Sự mô tả

Boolean

$y = 3 * (abs(2 * $x) + 4);38

Sợi dây

Kết nối

$y = 3 * (abs(2 * $x) + 4);39

So sánh

Kết nối

$y = 3 * (abs(2 * $x) + 4);22

Mỗi toán tử có một số toán hạng khác nhau:

Các toán tử Unary, chẳng hạn như tăng (1 + 2 + 3 − 4 + 5 2 − 4 + 5 + 3 + 1 5 + 2 − 4 + 1 + 39) hoặc phủ định ($y = 3 * (abs(2 * $x) + 4);03), có một toán hạng duy nhất.

$y = 3 * (abs(2 * $x) + 4);41

Các toán tử nhị phân, đại diện cho phần lớn các toán tử PHP, bao gồm bổ sung, trừ, nhân và chia.

Đúng

$y = 3 * (abs(2 * $x) + 4);21

Tăng và giảm

Đúng

$y = 3 * (abs(2 * $x) + 4);43

Đúc vào một số nguyên

Đúng

$y = 3 * (abs(2 * $x) + 4);44

Đúc theo số điểm nổi

Đúng

$y = 3 * (abs(2 * $x) + 4);45

Đúc vào một chuỗi

Đúng

$y = 3 * (abs(2 * $x) + 4);46

Đúc vào một mảng

Đúng

$y = 3 * (abs(2 * $x) + 4);47

Đúc vào một đối tượng

Đúng

$y = 3 * (abs(2 * $x) + 4);48

Ức chế báo cáo lỗi

Đúng

$y = 3 * (abs(2 * $x) + 4);49

Phân công

Đúng

$y = 3 * (abs(2 * $x) + 4);50

Phân công

Đúng

$y = 3 * (abs(2 * $x) + 4);51

Cộng thêm và Unary Plus

Bên trái

$y = 3 * (abs(2 * $x) + 4);52

Phép trừ và phủ định

Bên trái

$y = 3 * (abs(2 * $x) + 4);53

Phép trừ và phủ định

Bên trái

<?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>8

Phép trừ và phủ định

Bên trái

$y = 3 * (abs(2 * $x) + 4);55

Phép trừ và phủ định

Bên trái

$y = 3 * (abs(2 * $x) + 4);56

Phép trừ và phủ định

Bên trái

$y = 3 * (abs(2 * $x) + 4);57

Phép trừ và phủ định

Bên trái

$y = 3 * (abs(2 * $x) + 4);58

Phép trừ và phủ định

Bên trái

$y = 3 * (abs(2 * $x) + 4);59

Phép trừ và phủ định

Bên trái

$y = 3 * (abs(2 * $x) + 4);60

Phép trừ và phủ định

Bên trái

Phép trừ và phủ định

Phép nhân

Phân công

Mô đun

Kết hợp chuỗi

Bitwise

Ternary

Hợp lýequality, comparison, and logical.

Máy tách biệt

Ví dụ, hãy để Lừa xem trình điều hành gán trong ví dụ & nbsp; 4-11, trong đó ba biến được đặt thành giá trị <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3.

Ví dụ & nbsp;

$y = 3 * (abs(2 * $x) + 4);6

$y = 3 * (abs(2 * $x) + 4);5

Nhiều nhiệm vụ này chỉ có thể xảy ra nếu phần ngoài cùng bên phải của biểu thức được đánh giá trước và sau đó xử lý tiếp tục theo hướng từ phải sang trái.

Ghi chú

$y = 3 * (abs(2 * $x) + 4);7

Là người mới bắt đầu với PHP, bạn nên tránh những cạm bẫy tiềm năng của sự kết hợp của nhà điều hành bằng cách luôn làm tổ các biểu hiện phụ của bạn trong ngoặc đơn để buộc thứ tự đánh giá. Điều này cũng sẽ giúp các lập trình viên khác có thể phải duy trì mã của bạn để hiểu những gì đang xảy ra.

Nhà khai thác quan hệidentity operator—three equals signs in a row—which prevents PHP from automatically converting types. $y = 3 * (abs(2 * $x) + 4);69 and $y = 3 * (abs(2 * $x) + 4);70 are therefore compared as strings and are now found to be different, so nothing is output.

Các nhà khai thác quan hệ kiểm tra hai toán hạng và trả về kết quả boolean của a: [1] b: []4 hoặc a: [1] b: []5. Có ba loại toán tử quan hệ: bình đẳng, so sánh và logic.

Sự bình đẳngnot being equal using $y = 3 * (abs(2 * $x) + 4);80, the inequality operator. Take a look at Example 4-14, which is a rewrite of Example 4-13 in which the equality and identity operators have been replaced with their inverses.

Vì chúng tôi đã gặp phải một vài lần trong chương này, toán tử bình đẳng là $y = 3 * (abs(2 * $x) + 4);64 (hai dấu hiệu bằng). Điều quan trọng là không nhầm lẫn nó với toán tử gán $y = 3 * (abs(2 * $x) + 4);65 (một dấu hiệu bằng). Trong ví dụ & nbsp; 4-12, câu lệnh đầu tiên gán một giá trị và thử nghiệm thứ hai cho sự bình đẳng.

$y = 3 * (abs(2 * $x) + 4);8

Ví dụ & nbsp; 4-12. & Nbsp; gán một giá trị và kiểm tra cho sự bình đẳngnot equal to each other numerically.

Như bạn thấy, bằng cách trả về a: [1] b: []4 hoặc a: [1] b: []5, toán tử bình đẳng cho phép bạn kiểm tra các điều kiện bằng cách sử dụng, ví dụ, một câu lệnh $y = 3 * (abs(2 * $x) + 4);05. Nhưng đó không phải là toàn bộ câu chuyện, bởi vì PHP là một ngôn ngữ được đánh máy một cách lỏng lẻo. Nếu hai toán hạng của một biểu thức bình đẳng thuộc các loại khác nhau, PHP sẽ chuyển đổi chúng thành bất kỳ loại nào có ý nghĩa tốt nhất với nó.not identical to each other in their present operand types, and the answer is a: [1] b: []4; they are not the same.

Ví dụ, bất kỳ chuỗi nào được cấu tạo hoàn toàn các số sẽ được chuyển đổi thành số bất cứ khi nào so sánh với một số. Trong ví dụ & nbsp; 4-13, $y = 3 * (abs(2 * $x) + 4);69 và $y = 3 * (abs(2 * $x) + 4);70 là hai chuỗi khác nhau và do đó chúng tôi mong đợi cả các câu lệnh $y = 3 * (abs(2 * $x) + 4);05 sẽ không đưa ra kết quả.

Ví dụ & NBSP; 4-13. & NBSP; Các toán tử bình đẳng và nhận dạng

Tuy nhiên, nếu bạn chạy ví dụ, bạn sẽ thấy rằng nó xuất ra số a: 73 b: Hello c: d: Brian e: 376, điều đó có nghĩa là câu lệnh $y = 3 * (abs(2 * $x) + 4);05 đầu tiên được đánh giá là a: [1] b: []4. Điều này là do cả hai chuỗi lần đầu tiên được chuyển đổi thành số và $y = 3 * (abs(2 * $x) + 4);75 là giá trị số giống như $y = 3 * (abs(2 * $x) + 4);76.

$y = 3 * (abs(2 * $x) + 4);9

Trong ví dụ này, trong đó $y = 3 * (abs(2 * $x) + 4);69 là $y = 3 * (abs(2 * $x) + 4);85 và $y = 3 * (abs(2 * $x) + 4);70 là $y = 3 * (abs(2 * $x) + 4);97, sau đây là đầu ra:

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>0

Hãy tự mình thử ví dụ này, thay đổi các giá trị của $y = 3 * (abs(2 * $x) + 4);69 và $y = 3 * (abs(2 * $x) + 4);70, để xem kết quả. Hãy thử đặt chúng vào cùng một giá trị và xem điều gì sẽ xảy ra.

Toán tử logic

Các toán tử logic tạo ra kết quả thực sự hoặc-false, và do đó còn được gọi là các toán tử Boolean. Có bốn người trong số họ (xem Bảng & NBSP; 4-4).

Bảng & NBSP; 4-4. & NBSP; Các toán tử logic

Toán tử logic

Sự mô tả

a: [1] b: []8

a: [1] b: []4 Nếu cả hai toán hạng là a: [1] b: []4

a: [1] b: []9

a: [1] b: []4 Nếu một trong hai toán hạng là a: [1] b: []4

<?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>0

a: [1] b: []4 Nếu một trong hai toán hạng là a: [1] b: []4

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>09

a: [1] b: []4 Nếu toán hạng là a: [1] b: []5 hoặc a: [1] b: []5 nếu toán hạng là a: [1] b: []4

Bạn có thể thấy các toán tử này được sử dụng trong ví dụ & nbsp; 4-16. Lưu ý rằng biểu tượng $y = 3 * (abs(2 * $x) + 4);22 được yêu cầu bởi PHP thay cho từ <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>09. Hơn nữa, các nhà khai thác có thể là thấp hơn hoặc chữ hoa.

Ví dụ & NBSP; 4-16. & NBSP; Các toán tử logic đang sử dụng

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>1

Ví dụ này xuất ra <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>1, a: 73 b: Hello c: d: Brian e: 376, a: 73 b: Hello c: d: Brian e: 376, <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>1, có nghĩa là chỉ có các câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>20 thứ hai và thứ ba đánh giá là a: [1] b: []4. . , chuyển nó từ a: [1] b: []4 (giá trị của a: 73 b: Hello c: d: Brian e: 376) thành a: [1] b: []5. Nếu bạn muốn thử nghiệm điều này, hãy thử mã, đưa ra $y = 3 * (abs(2 * $x) + 4);69 và $y = 3 * (abs(2 * $x) + 4);70 Các giá trị khác nhau của a: 73 b: Hello c: d: Brian e: 376 và <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3.

Ghi chú

Khi mã hóa, hãy nhớ ghi nhớ rằng a: [1] b: []8 và a: [1] b: []9 có quyền ưu tiên thấp hơn các phiên bản khác của các toán tử, $y = 3 * (abs(2 * $x) + 4);31 và $y = 3 * (abs(2 * $x) + 4);32. Trong các biểu thức phức tạp, có thể an toàn hơn khi sử dụng $y = 3 * (abs(2 * $x) + 4);31 và $y = 3 * (abs(2 * $x) + 4);32 vì lý do này.

Nhà điều hành a: [1] b: []9 có thể gây ra các vấn đề không chủ ý trong các tuyên bố ____105, vì toán hạng thứ hai sẽ không được đánh giá nếu lần thứ nhất được đánh giá là a: [1] b: []4. Trong ví dụ & nbsp; 4-17, hàm <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>45 sẽ không bao giờ được gọi nếu <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>46 có giá trị a: 73 b: Hello c: d: Brian e: 376.

Ví dụ & nbsp; 4-17. & Nbsp; một câu lệnh sử dụng hoặc toán tử

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>2

Nếu bạn cần <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>45 để được gọi tại mỗi câu lệnh $y = 3 * (abs(2 * $x) + 4);05, bạn có thể viết lại mã như đã được thực hiện trong ví dụ & nbsp; 4-18.

Ví dụ & nbsp;

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>3

Trong trường hợp này, mã trong hàm <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>45 sẽ được thực thi và giá trị được trả về sẽ được lưu trữ trong <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>51 trước câu lệnh $y = 3 * (abs(2 * $x) + 4);05.

Ghi chú

Khi mã hóa, hãy nhớ ghi nhớ rằng a: [1] b: []8 và a: [1] b: []9 có quyền ưu tiên thấp hơn các phiên bản khác của các toán tử, $y = 3 * (abs(2 * $x) + 4);31 và $y = 3 * (abs(2 * $x) + 4);32. Trong các biểu thức phức tạp, có thể an toàn hơn khi sử dụng $y = 3 * (abs(2 * $x) + 4);31 và $y = 3 * (abs(2 * $x) + 4);32 vì lý do này.

Nhà điều hành a: [1] b: []9 có thể gây ra các vấn đề không chủ ý trong các tuyên bố ____105, vì toán hạng thứ hai sẽ không được đánh giá nếu lần thứ nhất được đánh giá là a: [1] b: []4. Trong ví dụ & nbsp; 4-17, hàm <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>45 sẽ không bao giờ được gọi nếu <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>46 có giá trị a: 73 b: Hello c: d: Brian e: 376.

Ví dụ & nbsp; 4-17. & Nbsp; một câu lệnh sử dụng hoặc toán tử

Nếu bạn cần <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>45 để được gọi tại mỗi câu lệnh $y = 3 * (abs(2 * $x) + 4);05, bạn có thể viết lại mã như đã được thực hiện trong ví dụ & nbsp; 4-18.

Ví dụ & nbsp;

Trong trường hợp này, mã trong hàm <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>45 sẽ được thực thi và giá trị được trả về sẽ được lưu trữ trong <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>51 trước câu lệnh $y = 3 * (abs(2 * $x) + 4);05.

Một giải pháp khác là chỉ cần chuyển đổi hai mệnh đề để đảm bảo rằng <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>45 được thực thi, vì sau đó nó sẽ xuất hiện đầu tiên trong biểu thức.

Bảng & NBSP; 4-5 cho thấy tất cả các biến thể có thể sử dụng các toán tử logic. Bạn cũng nên lưu ý rằng <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>54 bằng a: [1] b: []5 và <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>56 bằng a: [1] b: []4.

Bảng & nbsp; 4-5. & Nbsp; tất cả các biểu thức logic PHP có thể

Đầu vào

a: [1] b: []4

a: [1] b: []4

a: [1] b: []4

a: [1] b: []4

a: [1] b: []5

a: [1] b: []4

a: [1] b: []5

a: [1] b: []5

a: [1] b: []4

a: [1] b: []4

a: [1] b: []5

a: [1] b: []4

a: [1] b: []5

a: [1] b: []4

a: [1] b: []4

a: [1] b: []5

a: [1] b: []5

a: [1] b: []5

a: [1] b: []5

a: [1] b: []5

Người vận hành và kết quả

một

bnon-looping, I mean that the actions initiated by the statement take place and program flow then moves on, whereas looping conditionals (which we’ll get to shortly) execute code over and over until a condition has been met.

HOẶC

XOR

Hình & NBSP; 4-1. & NBSP; Dòng chảy chương trình giống như đường cao tốc một làn

Nội dung của điều kiện $y = 3 * (abs(2 * $x) + 4);05 có thể là bất kỳ biểu thức PHP hợp lệ nào, bao gồm bình đẳng, so sánh, kiểm tra cho <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3 và <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>1 và thậm chí các giá trị được trả về bởi các hàm (có chức năng tích hợp hoặc các hàm mà bạn viết).

Các hành động cần thực hiện khi điều kiện $y = 3 * (abs(2 * $x) + 4);05 là a: [1] b: []4 thường được đặt bên trong niềng răng xoăn, <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>89. Tuy nhiên, bạn có thể bỏ qua niềng răng nếu bạn chỉ có một câu lệnh để thực thi. Nhưng nếu bạn luôn sử dụng niềng răng xoăn, bạn sẽ tránh phải săn lùng các lỗi khó theo dõi, chẳng hạn như khi bạn thêm một dòng bổ sung vào một điều kiện và nó không được đánh giá do thiếu niềng răng. (Lưu ý rằng đối với không gian và sự rõ ràng, nhiều ví dụ trong cuốn sách này bỏ qua đề xuất này và bỏ qua niềng răng cho các câu lệnh đơn lẻ.)

Trong ví dụ & NBSP; 4-19, hãy tưởng tượng rằng đó là cuối tháng và tất cả các hóa đơn của bạn đã được thanh toán, vì vậy bạn đang thực hiện một số bảo trì tài khoản ngân hàng.

Ví dụ & nbsp; 4-19. & Nbsp; một câu lệnh if có niềng răng xoăn

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>4

Trong ví dụ này, bạn đang kiểm tra số dư của mình để xem liệu nó có dưới 100 đô la (hoặc bất kể loại tiền của bạn là gì). Nếu vậy, bạn trả cho mình 1.000 đô la và sau đó thêm nó vào số dư. (Nếu chỉ kiếm tiền là đơn giản!)

Nếu số dư ngân hàng là $ 100 trở lên, các báo cáo có điều kiện sẽ bị bỏ qua và dòng chảy chương trình bỏ qua dòng tiếp theo (không hiển thị).

Trong cuốn sách này, mở niềng răng xoăn thường bắt đầu trên một dòng mới. Một số người thích đặt nẹp xoăn đầu tiên ở bên phải biểu hiện có điều kiện; Những người khác bắt đầu một dòng mới với nó. Một trong hai điều này là tốt, bởi vì PHP cho phép bạn đặt ra các ký tự khoảng trắng (không gian, dòng mới và tab) theo bất kỳ cách nào bạn chọn. Tuy nhiên, bạn sẽ thấy mã của mình dễ dàng hơn để đọc và gỡ lỗi nếu bạn thụt vào từng cấp độ của các điều kiện bằng một tab.

Tuyên bố khác

Đôi khi khi một điều kiện không phải là a: [1] b: []4, bạn có thể không muốn tiếp tục mã chương trình chính ngay lập tức nhưng có thể muốn làm một cái gì đó khác thay thế. Đây là nơi câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>91 xuất hiện. Với nó, bạn có thể thiết lập đường vòng thứ hai trên đường cao tốc của mình, như trong Hình & NBSP; 4-2.

Hình & nbsp; 4-2. & Nbsp; đường cao tốc hiện có một đường vòng nếu đường vòng khác

Với câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>92, câu lệnh điều kiện đầu tiên được thực thi nếu điều kiện là a: [1] b: []4. Nhưng nếu nó ____ ____55, thì cái thứ hai được thực hiện. Một trong hai lựa chọn phải được thực hiện. Trong mọi trường hợp không thể thực hiện cả (hoặc không). Ví dụ & NBSP; 4-20 cho thấy việc sử dụng cấu trúc <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>92.must be executed. Under no circumstance can both (or neither) be executed. Example 4-20 shows the use of the <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>92 structure.

Ví dụ & nbsp; 4-20. & Nbsp; một câu tuyên bố nếu ...

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>5

Trong ví dụ này, bây giờ bạn đã xác định được rằng bạn có 100 đô la trở lên trong ngân hàng, tuyên bố <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>91 được thực thi, theo đó bạn đặt một số tiền này vào tài khoản tiết kiệm của bạn.

Như với các câu lệnh $y = 3 * (abs(2 * $x) + 4);05, nếu <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>91 của bạn chỉ có một câu lệnh có điều kiện, bạn có thể chọn bỏ qua niềng răng xoăn. .

Tuyên bố khác

Cũng có những lúc bạn muốn một số khả năng khác nhau xảy ra, dựa trên một chuỗi các điều kiện. Bạn có thể đạt được điều này bằng cách sử dụng tuyên bố <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>99. Như bạn có thể tưởng tượng, nó giống như một câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>91, ngoại trừ việc bạn đặt một biểu thức có điều kiện hơn nữa trước mã có điều kiện. Trong ví dụ & nbsp; 4-21, bạn có thể thấy một cấu trúc a: [1] b: [] c: [] d: [1]01 hoàn chỉnh.

Ví dụ & nbsp;

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>6

Trong ví dụ, một tuyên bố <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>99 đã được chèn vào giữa các câu lệnh $y = 3 * (abs(2 * $x) + 4);05 và ____291. Nó kiểm tra xem số dư ngân hàng của bạn có vượt quá 200 đô la hay không và nếu vậy, quyết định rằng bạn có thể tiết kiệm 100 đô la trong tháng này.

Mặc dù tôi đã bắt đầu kéo dài phép ẩn dụ quá xa, bạn có thể tưởng tượng đây là một bộ đường vòng nhiều chiều (xem Hình & NBSP; 4-3).

Hình & nbsp;

Ghi chú

Một câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>91 đóng một câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>92 hoặc a: [1] b: [] c: [] d: [1]01. Bạn có thể bỏ một <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>91 cuối cùng nếu không bắt buộc, nhưng bạn không thể có một cái trước <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>99; Bạn cũng không thể có <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>99 trước tuyên bố $y = 3 * (abs(2 * $x) + 4);05.

Bạn có thể có bao nhiêu câu <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>99 tùy thích. Nhưng khi số lượng tuyên bố <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>99 tăng lên, có lẽ bạn sẽ được khuyên nên xem xét một tuyên bố <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79 nếu nó phù hợp với nhu cầu của bạn. Chúng tôi sẽ xem xét điều đó tiếp theo.

Tuyên bố chuyển đổi

Câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79 rất hữu ích trong các trường hợp trong đó một biến hoặc kết quả của một biểu thức có thể có nhiều giá trị, mỗi giá trị sẽ kích hoạt một hàm khác nhau.

Ví dụ: hãy xem xét một hệ thống menu điều khiển PHP chuyển một chuỗi duy nhất cho mã menu chính theo những gì người dùng yêu cầu. Hãy nói rằng các tùy chọn là nhà, về, tin tức, đăng nhập và liên kết và chúng tôi đặt biến a: [1] b: [] c: [] d: [1]16 thành một trong số này, theo đầu vào của người dùng.

Nếu chúng tôi viết mã cho việc này bằng cách sử dụng a: [1] b: [] c: [] d: [1]17, nó có thể trông giống như ví dụ & nbsp; 4-22.

Ví dụ & nbsp; 4-22. & Nbsp; một dòng nhiều dòng nếu ... khác ... câu lệnh

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>7

Nếu chúng tôi sử dụng câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79, mã có thể trông giống như ví dụ & nbsp; 4-23.

Ví dụ & nbsp; 4-23. & Nbsp; một câu lệnh chuyển đổi

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>8

Như bạn có thể thấy, a: [1] b: [] c: [] d: [1]16 chỉ được đề cập một lần khi bắt đầu tuyên bố <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79. Sau đó, lệnh a: [1] b: [] c: [] d: [1]21 kiểm tra các trận đấu. Khi một lần xảy ra, câu lệnh có điều kiện phù hợp được thực thi. Tất nhiên, trong một chương trình thực sự, bạn sẽ có mã ở đây để hiển thị hoặc nhảy đến một trang, thay vì chỉ nói với người dùng những gì đã được chọn.

Ghi chú

Với các câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79, bạn không sử dụng niềng răng xoăn bên trong các lệnh a: [1] b: [] c: [] d: [1]21. Thay vào đó, họ bắt đầu với một dấu hai chấm và kết thúc với tuyên bố a: [1] b: [] c: [] d: [1]24. Toàn bộ danh sách các trường hợp trong tuyên bố <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79 được đặt trong một tập hợp các dấu ngoặc xoăn.

Đột phá

Nếu bạn muốn thoát khỏi câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79 vì một điều kiện đã được thực hiện, hãy sử dụng lệnh a: [1] b: [] c: [] d: [1]24. Lệnh này bảo PHP thoát ra khỏi <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79 và nhảy sang câu lệnh sau.

Nếu bạn bỏ các lệnh a: [1] b: [] c: [] d: [1]24 trong ví dụ & nbsp; 4-23 và a: [1] b: [] c: [] d: [1]21 của a: [1] b: [] c: [] d: [1]31 được đánh giá là a: [1] b: []4, tất cả năm trường hợp sau đó sẽ được thực thi. Hoặc nếu a: [1] b: [] c: [] d: [1]16 có giá trị a: [1] b: [] c: [] d: [1]34, thì tất cả các lệnh a: [1] b: [] c: [] d: [1]21 từ đó trở đi sẽ thực thi. Điều này là có chủ ý và cho phép một số lập trình nâng cao, nhưng nói chung bạn nên luôn nhớ phát hành lệnh a: [1] b: [] c: [] d: [1]24 mỗi khi một bộ điều kiện a: [1] b: [] c: [] d: [1]21 đã hoàn tất việc thực thi. Trong thực tế, bỏ qua câu lệnh a: [1] b: [] c: [] d: [1]24 là một lỗi phổ biến.

Hành động mặc định

Một yêu cầu điển hình trong các câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79 là sẽ quay trở lại một hành động mặc định nếu không có điều kiện a: [1] b: [] c: [] d: [1]21 nào được đáp ứng. Ví dụ: trong trường hợp mã menu trong ví dụ & nbsp; 4-23, bạn có thể thêm mã trong ví dụ & nbsp; 4-24 ngay trước khi nẹp xoăn cuối cùng.

Ví dụ & nbsp; 4-24. & Nbsp; một câu lệnh mặc định để thêm vào ví dụ & nbsp; 4-23

<?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>9

Mặc dù không cần phải có lệnh a: [1] b: [] c: [] d: [1]24 ở đây vì mặc định là tình trạng phụ cuối cùng và luồng chương trình sẽ tự động tiếp tục đến nẹp xoăn, nếu bạn quyết định đặt câu lệnh a: [1] b: [] c: [] d: [1]42 cao hơn, nó chắc chắn sẽ cần một lệnh a: [1] b: [] c: [] d: [1]24 để ngăn chặn chương trình chảy từ rơi vào các tuyên bố sau. Nói chung, thực tiễn an toàn nhất là luôn bao gồm lệnh a: [1] b: [] c: [] d: [1]24.

Cú pháp thay thế

Nếu bạn thích, bạn có thể thay thế nẹp xoăn đầu tiên trong câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79 bằng một dấu hai chấm và nẹp xoăn cuối cùng bằng lệnh a: [1] b: [] c: [] d: [1]46, như trong ví dụ & nbsp; 4-25. Tuy nhiên, cách tiếp cận này không được sử dụng phổ biến và chỉ được đề cập ở đây trong trường hợp bạn gặp nó trong mã của bên thứ ba.

Ví dụ & nbsp; 4-25. & Nbsp; cú pháp câu lệnh chuyển đổi thay thế

a: [1] b: [] c: [] d: [1]0

Các ? Nhà điều hành

Một cách để tránh tính độ dài của các câu lệnh $y = 3 * (abs(2 * $x) + 4);05 và <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>91 là sử dụng toán tử ternary nhỏ gọn hơn, <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>80, điều này không bình thường ở chỗ phải mất ba toán hạng thay vì hai loại điển hình.

Chúng tôi đã xem xét ngắn gọn điều này trong Chương & NBSP; 3 trong cuộc thảo luận về sự khác biệt giữa các câu lệnh a: [1] b: [] c: [] d: [1]50 và <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>20 như một ví dụ về loại toán tử hoạt động tốt với a: [1] b: [] c: [] d: [1]50 nhưng không phải <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>20.

Toán tử <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>80 được truyền một biểu thức mà nó phải đánh giá, cùng với hai câu lệnh để thực thi: một khi biểu thức đánh giá thành a: [1] b: []4, một câu còn lại là a: [1] b: []5. Ví dụ & NBSP; 4-26 hiển thị mã mà chúng tôi có thể sử dụng để viết cảnh báo về mức nhiên liệu của một chiếc xe vào bảng điều khiển kỹ thuật số của nó.

Ví dụ & nbsp; 4-26. & Nbsp; sử dụng? nhà điều hành

a: [1] b: [] c: [] d: [1]1

Trong tuyên bố này, nếu có một gallon hoặc ít hơn nhiên liệu (tức là, nếu a: [1] b: [] c: [] d: [1]57 được đặt thành a: 73 b: Hello c: d: Brian e: 376 hoặc ít hơn), chuỗi a: [1] b: [] c: [] d: [1]59 được trả lại cho câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>20 trước đó. Nếu không, chuỗi a: [1] b: [] c: [] d: [1]61 được trả về. Bạn cũng có thể gán giá trị được trả về trong câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>80 cho một biến (xem Ví dụ & NBSP; 4-27).

Ví dụ & nbsp; 4-27. & Nbsp; gán A? kết quả có điều kiện cho một biến

a: [1] b: [] c: [] d: [1]2

Ở đây a: [1] b: [] c: [] d: [1]63 sẽ được gán giá trị a: [1] b: []4 chỉ khi có nhiều hơn một gallon nhiên liệu; Nếu không, nó được gán giá trị a: [1] b: []5.

Nếu bạn thấy nhà điều hành <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>80 khó hiểu, bạn có thể tự do gắn bó với các câu lệnh $y = 3 * (abs(2 * $x) + 4);05, nhưng bạn nên quen thuộc với nó, bởi vì bạn sẽ thấy nó trong mã người khác. Nó có thể khó đọc, bởi vì nó thường trộn nhiều lần xuất hiện của cùng một biến. Chẳng hạn, mã như sau đây khá phổ biến:

a: [1] b: [] c: [] d: [1]3

Nếu bạn tách nó ra một cách cẩn thận, bạn có thể tìm ra mã này làm gì:

a: [1] b: [] c: [] d: [1]4

Đó là một cách ngắn gọn để theo dõi giá trị lớn nhất mà bạn đã thấy khi một chương trình tiến triển. Bạn tiết kiệm giá trị lớn nhất trong a: [1] b: [] c: [] d: [1]68 và so sánh nó với a: [1] b: [] c: [] d: [1]69 mỗi khi bạn nhận được giá trị mới. Các lập trình viên quen thuộc với toán tử <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>80 thấy thuận tiện hơn so với các câu lệnh $y = 3 * (abs(2 * $x) + 4);05 cho các so sánh ngắn như vậy. Khi không được sử dụng để viết mã nhỏ gọn, nó thường được sử dụng để đưa ra một số quyết định nội tuyến, chẳng hạn như khi bạn đang kiểm tra xem một biến có được đặt trước khi chuyển nó đến một hàm hay không.

Vòng lặp

Một trong những điều tuyệt vời về máy tính là họ có thể lặp lại các nhiệm vụ tính toán nhanh chóng và không mệt mỏi. Thường thì bạn có thể muốn một chương trình lặp lại cùng một chuỗi mã nhiều lần cho đến khi có điều gì đó xảy ra, chẳng hạn như người dùng nhập giá trị hoặc đạt đến kết thúc tự nhiên. Các cấu trúc vòng lặp khác nhau của PHP cung cấp cách hoàn hảo để làm điều này.

Để hình dung cách thức hoạt động của nó, hãy xem hình & nbsp; 4-4. Nó giống như phép ẩn dụ đường cao tốc được sử dụng để minh họa các tuyên bố ____105, ngoại trừ việc đường vòng cũng có một phần vòng lặp mà một khi một chiếc xe đã đi vào chỉ có thể thoát ra trong các điều kiện chương trình phù hợp.

Hình & nbsp; 4-4. & Nbsp; tưởng tượng một vòng lặp như một phần của bố cục đường cao tốc chương trình

trong khi vòng lặp

Chúng ta hãy biến bảng điều khiển xe kỹ thuật số trong ví dụ & NBSP; 4-26 thành một vòng lặp liên tục kiểm tra mức nhiên liệu khi bạn lái, sử dụng vòng lặp a: [1] b: [] c: [] d: [1]73 (ví dụ & NBSP; 4-28).

Ví dụ & nbsp; 4-28. & Nbsp; một vòng lặp lại

a: [1] b: [] c: [] d: [1]5

Trên thực tế, bạn có thể thích giữ ánh sáng xanh sáng thay vì văn bản đầu ra, nhưng vấn đề là bất kỳ dấu hiệu tích cực nào bạn muốn làm về mức độ nhiên liệu được đặt bên trong vòng lặp a: [1] b: [] c: [] d: [1]73. Nhân tiện, nếu bạn thử ví dụ này cho chính mình, lưu ý rằng nó sẽ tiếp tục in chuỗi cho đến khi bạn nhấp vào nút dừng trong trình duyệt của bạn.

Ghi chú

Như với các câu lệnh $y = 3 * (abs(2 * $x) + 4);05, bạn sẽ nhận thấy rằng niềng răng xoăn được yêu cầu để giữ các câu lệnh bên trong các câu lệnh a: [1] b: [] c: [] d: [1]73, trừ khi chỉ có một.

Đối với một ví dụ khác về vòng lặp a: [1] b: [] c: [] d: [1]73 hiển thị bảng 12 lần, xem Ví dụ & NBSP; 4-29.

Ví dụ & nbsp; 4-29. & Nbsp; vòng lặp trong thời gian để in bảng 12 lần

a: [1] b: [] c: [] d: [1]6

Ở đây, biến a: [1] b: [] c: [] d: [1]78 được khởi tạo thành giá trị là 1, sau đó vòng lặp a: [1] b: [] c: [] d: [1]73 được bắt đầu với biểu thức so sánh a: [1] b: [] c: [] d: [1]80. Vòng lặp này sẽ tiếp tục thực thi cho đến khi biến lớn hơn 12. Đầu ra từ mã này như sau:

a: [1] b: [] c: [] d: [1]7

Bên trong vòng lặp, một chuỗi được in cùng với giá trị a: [1] b: [] c: [] d: [1]78 nhân với 12. Đối với độ gọn gàng, điều này cũng được theo sau với thẻ <?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br>"; // Numeric literal echo "b: " . "Hello" . "<br>"; // String literal echo "c: " . FALSE . "<br>"; // Constant literal echo "d: " . $myname . "<br>"; // String variable echo "e: " . $myage . "<br>"; // Numeric variable ?>5 để buộc một dòng mới. Sau đó, a: [1] b: [] c: [] d: [1]78 được tăng lên, sẵn sàng cho nẹp xoăn cuối cùng bảo PHP trở lại bắt đầu vòng lặp.

Tại thời điểm này, a: [1] b: [] c: [] d: [1]78 một lần nữa được kiểm tra để xem liệu nó có lớn hơn 12 hay không, nhưng giờ đây nó có giá trị $y = 3 * (abs(2 * $x) + 4);85 và sau 11 lần nữa xung quanh vòng lặp, nó sẽ có giá trị a: [1] b: [] c: [] d: [1]86. Khi điều đó xảy ra, mã trong vòng a: [1] b: [] c: [] d: [1]73 bị bỏ qua và thực thi chuyển sang mã theo vòng lặp, trong trường hợp này, là kết thúc của chương trình.

Nếu tuyên bố a: [1] b: [] c: [] d: [1]88 (có thể là như nhau là a: [1] b: [] c: [] d: [1]89) đã không ở đó, vòng lặp này sẽ giống như cái đầu tiên trong phần này. Nó sẽ không bao giờ kết thúc và chỉ có kết quả của a: [1] b: [] c: [] d: [1]90 sẽ được in nhiều lần.

Nhưng có một cách gọn gàng hơn có thể được viết, mà tôi nghĩ bạn sẽ thích. Hãy xem ví dụ & nbsp; 4-30.

Ví dụ & nbsp; 4-30. & Nbsp; một phiên bản rút gọn của ví dụ & nbsp; 4-29

a: [1] b: [] c: [] d: [1]8

Trong ví dụ này, có thể xóa câu lệnh a: [1] b: [] c: [] d: [1]88 từ bên trong vòng a: [1] b: [] c: [] d: [1]73 và đặt nó trực tiếp vào biểu thức có điều kiện của vòng lặp. Điều bây giờ xảy ra là PHP gặp biến a: [1] b: [] c: [] d: [1]78 khi bắt đầu mỗi lần lặp của vòng lặp và, nhận thấy rằng nó được đặt trước với toán tử tăng, lần đầu tiên tăng biến và chỉ sau đó so sánh nó với giá trị $y = 3 * (abs(2 * $x) + 4);10. Do đó, bạn có thể thấy rằng a: [1] b: [] c: [] d: [1]78 bây giờ phải được khởi tạo thành <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3, không phải a: 73 b: Hello c: d: Brian e: 376, vì nó được tăng lên ngay khi vòng lặp được nhập. Nếu bạn giữ khởi tạo ở a: 73 b: Hello c: d: Brian e: 376, chỉ có kết quả từ 2 đến 12 sẽ là đầu ra.

làm ... trong khi vòng lặp

Một biến thể nhỏ cho vòng lặp a: [1] b: [] c: [] d: [1]73 là vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>00, được sử dụng khi bạn muốn một khối mã được thực thi ít nhất một lần và chỉ có điều kiện sau đó. Ví dụ & NBSP; 4-31 hiển thị phiên bản sửa đổi của mã cho bảng 12 lần sử dụng vòng lặp như vậy.

Ví dụ & nbsp; 4-31. & Nbsp; a do ... trong khi vòng lặp để in bảng thời gian cho 12

a: [1] b: [] c: [] d: [1]9

Lưu ý cách chúng tôi quay lại khởi tạo a: [1] b: [] c: [] d: [1]78 thành a: 73 b: Hello c: d: Brian e: 376 (thay vì <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3) vì mã đang được thực thi ngay lập tức, mà không có cơ hội để tăng biến. Ngoài ra, mặc dù, mã trông khá giống nhau.

Tất nhiên, nếu bạn có nhiều hơn một câu lệnh trong vòng <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>00, hãy nhớ sử dụng niềng răng xoăn, như trong ví dụ & nbsp; 4-32.

Ví dụ & nbsp; 4-32. & Nbsp; Mở rộng ví dụ & nbsp; 4-31 để sử dụng niềng răng xoăn

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>0

cho các vòng lặp

Loại câu lệnh LOOP cuối cùng, vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05, cũng mạnh nhất, vì nó kết hợp các khả năng để thiết lập các biến khi bạn nhập vòng lặp, kiểm tra các điều kiện trong khi lặp lại các vòng và sửa đổi các biến sau mỗi lần lặp.

Ví dụ & NBSP; 4-33 cho thấy cách bạn có thể viết chương trình Bảng nhân với vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05.

Ví dụ & nbsp; 4-33. & Nbsp; xuất bảng thời gian cho 12 từ một vòng lặp cho vòng lặp

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>1

Xem làm thế nào toàn bộ mã đã được giảm xuống thành một câu lệnh <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 chứa một câu lệnh có điều kiện duy nhất? Ở đây, những gì đang diễn ra. Mỗi câu lệnh <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 lấy ba tham số:

  • Một biểu thức khởi tạo

  • Một biểu thức điều kiện

  • Một biểu thức sửa đổi

Chúng được phân tách bằng các dấu chấm phẩy như thế này: <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>09<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>10 <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>11 <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>12 <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>11 <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>14<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>15. Khi bắt đầu lần lặp đầu tiên của vòng lặp, biểu thức khởi tạo được thực thi. Trong trường hợp mã bảng Times, a: [1] b: [] c: [] d: [1]78 được khởi tạo thành giá trị a: 73 b: Hello c: d: Brian e: 376. Sau đó, mỗi lần xung quanh vòng lặp, biểu thức điều kiện (trong trường hợp này là a: [1] b: [] c: [] d: [1]80) được kiểm tra và vòng lặp chỉ được nhập nếu điều kiện là a: [1] b: []4. Cuối cùng, ở cuối mỗi lần lặp, biểu thức sửa đổi được thực thi. Trong trường hợp mã bảng Times, biến a: [1] b: [] c: [] d: [1]78 được tăng lên.

Tất cả cấu trúc này loại bỏ gọn gàng mọi yêu cầu để đặt các điều khiển cho một vòng lặp trong cơ thể của nó, giải phóng nó chỉ cho các câu lệnh bạn muốn vòng lặp thực hiện.

Hãy nhớ sử dụng niềng răng xoăn với vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 nếu nó sẽ chứa nhiều hơn một câu lệnh, như trong ví dụ & nbsp; 4-34.

Ví dụ & NBSP;

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>2

Hãy để so sánh khi sử dụng các vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 và a: [1] b: [] c: [] d: [1]73. Vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 được thiết kế rõ ràng xung quanh một giá trị duy nhất thay đổi một cách thường xuyên. Thông thường bạn có một giá trị tăng lên, như khi bạn được thông qua danh sách các lựa chọn người dùng và lần lượt muốn xử lý từng lựa chọn. Nhưng bạn có thể biến đổi biến bất kỳ cách nào bạn thích. Một hình thức phức tạp hơn của câu lệnh <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 thậm chí cho phép bạn thực hiện nhiều thao tác trong mỗi ba tham số:

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>3

Điều đó phức tạp và không được khuyến nghị cho người dùng lần đầu. Điều quan trọng là phân biệt dấu phẩy với dấu chấm phẩy. Ba tham số phải được phân tách bằng dấu chấm phẩy. Trong mỗi tham số, nhiều câu lệnh có thể được phân tách bằng dấu phẩy. Do đó, trong ví dụ trước, các tham số thứ nhất và thứ ba, mỗi tham số chứa hai câu lệnh:

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>4

Điều chính cần lấy từ ví dụ này là bạn phải tách ba phần tham số bằng dấu chấm phẩy, không phải dấu phẩy (chỉ nên sử dụng để phân tách các câu lệnh trong phần tham số).

Vì vậy, khi nào một câu lệnh a: [1] b: [] c: [] d: [1]73 phù hợp hơn một câu lệnh <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05? Khi điều kiện của bạn không phụ thuộc vào một thay đổi đơn giản, thường xuyên thành một biến. Chẳng hạn, nếu bạn muốn kiểm tra một số đầu vào hoặc lỗi đặc biệt và kết thúc vòng lặp khi nó xảy ra, hãy sử dụng câu lệnh a: [1] b: [] c: [] d: [1]73.

Thoát khỏi một vòng lặp

Giống như bạn đã thấy cách thoát khỏi câu lệnh <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>79, bạn cũng có thể thoát khỏi vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 bằng cách sử dụng cùng một lệnh a: [1] b: [] c: [] d: [1]24. Bước này có thể là cần thiết khi, ví dụ, một trong các câu lệnh của bạn trả về lỗi và vòng lặp không thể tiếp tục thực thi an toàn.

Một trường hợp trong đó điều này có thể xảy ra là khi viết một tệp trả về một lỗi, có thể là do đĩa đã đầy (xem Ví dụ & NBSP; 4-35).

Ví dụ & nbsp; 4-35. & Nbsp; viết một tệp bằng cách sử dụng vòng lặp với bẫy lỗi

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>5

Đây là đoạn mã phức tạp nhất mà bạn đã thấy cho đến nay, nhưng bạn đã sẵn sàng cho nó. Chúng tôi sẽ xem xét các lệnh xử lý tệp trong một chương sau, nhưng bây giờ tất cả những gì bạn cần biết là dòng đầu tiên mở văn bản tệp.txt để viết ở chế độ nhị phân, sau đó trả về một con trỏ vào tệp trong biến trong biến <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>32, được sử dụng sau này để chỉ tệp mở.

Vòng lặp sau đó lặp lại 100 lần (từ 0 đến 99) ghi chuỗi <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>33 vào tệp. Sau mỗi lần ghi, biến <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>34 được gán giá trị bằng hàm <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>35 đại diện cho số lượng ký tự được viết chính xác. Nhưng nếu có lỗi, hàm <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>35 gán giá trị a: [1] b: []5.

Hành vi của <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>35 giúp mã dễ dàng kiểm tra biến <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>34 để xem liệu nó có được đặt thành a: [1] b: []5 hay không và, nếu vậy, thoát ra khỏi vòng lặp để câu lệnh sau đóng tệp.

Nếu bạn đang tìm cách cải thiện mã, dòng:

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>6

có thể được đơn giản hóa bằng toán tử <?php echo "a: [" . (20 > 9) . "]<br>"; echo "b: [" . (5 == 6) . "]<br>"; echo "c: [" . (1 == 0) . "]<br>"; echo "d: [" . (1 == 1) . "]<br>"; ?>09, như thế này:

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>7

Trên thực tế, cặp câu lệnh Vòng lặp bên trong có thể được rút ngắn thành một câu lệnh sau:

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>8

Lệnh a: [1] b: [] c: [] d: [1]24 thậm chí còn mạnh hơn bạn nghĩ bởi vì nếu bạn có mã lồng nhiều hơn một lớp sâu mà bạn cần thoát ra, bạn có thể tuân theo lệnh a: [1] b: [] c: [] d: [1]24 với một số để cho biết có bao nhiêu cấp độ để thoát ra, như đây:

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>9

Tuyên bố tiếp tục

Tuyên bố <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>44 giống như một câu lệnh a: [1] b: [] c: [] d: [1]24, ngoại trừ việc nó hướng dẫn PHP dừng xử lý vòng lặp hiện tại và chuyển sang ngay lần lặp tiếp theo. Vì vậy, thay vì thoát ra khỏi toàn bộ vòng lặp, PHP chỉ thoát ra khỏi lần lặp hiện tại.

Cách tiếp cận này có thể hữu ích trong các trường hợp bạn biết không có điểm nào tiếp tục thực hiện trong vòng lặp hiện tại và bạn muốn lưu chu kỳ bộ xử lý hoặc ngăn lỗi xảy ra bằng cách di chuyển ngay theo lần lặp tiếp theo của vòng lặp. Trong ví dụ & nbsp; 4-36, một tuyên bố <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>44 được sử dụng để ngăn chặn lỗi phân chia từng không được phát hành khi biến <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>47 có giá trị <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3.

Ví dụ & NBSP; 4-36. & NBSP;

a: [1] b: []0

Đối với tất cả các giá trị của <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>47 giữa <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>50 và <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>51, ngoại trừ <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3, kết quả của việc tính toán <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>50 chia cho <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>47 được hiển thị. Nhưng đối với trường hợp cụ thể của <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>47 là <?php $days_to_new_year = 366 - $day_number; // Expression if ($days_to_new_year < 30) { echo "Not long now till new year"; // Statement } ?>3, tuyên bố <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>44 được ban hành và thực thi bỏ qua ngay lập tức lặp lại của vòng lặp.

Đúc ngầm và rõ ràng

PHP là một ngôn ngữ được đánh máy một cách lỏng lẻo cho phép bạn khai báo một biến và loại của nó chỉ bằng cách sử dụng nó. Nó cũng tự động chuyển đổi các giá trị từ loại này sang loại khác bất cứ khi nào cần thiết. Điều này được gọi là đúc ngầm.implicit casting.

Tuy nhiên, có thể đôi khi việc đúc ngầm của PHP không phải là thứ bạn muốn. Trong ví dụ & nbsp; 4-37, lưu ý rằng các đầu vào cho bộ phận là số nguyên. Theo mặc định, PHP chuyển đổi đầu ra thành điểm nổi để nó có thể đưa ra giá trị chính xác nhất.

Ví dụ & NBSP; 4-37. & NBSP; Biểu thức này trả về số điểm nổi

a: [1] b: []1

Nhưng điều gì sẽ xảy ra nếu chúng ta muốn <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>58 là một số nguyên thay thế? Có nhiều cách khác nhau mà chúng ta có thể đạt được điều này, một trong số đó là buộc kết quả của ____ ____ 169/________ 170 để được chuyển đến giá trị số nguyên bằng cách sử dụng loại số nguyên $y = 3 * (abs(2 * $x) + 4);43, như thế này:

a: [1] b: []2

Điều này được gọi là đúc rõ ràng. Lưu ý rằng để đảm bảo rằng giá trị của toàn bộ biểu thức được chuyển đến một số nguyên, chúng tôi đặt biểu thức trong ngoặc đơn. Mặt khác, chỉ có biến $y = 3 * (abs(2 * $x) + 4);69 sẽ được chọn vào một số nguyên, một bài tập vô nghĩa, vì sự phân chia của $y = 3 * (abs(2 * $x) + 4);70 vẫn sẽ trả lại một số điểm nổi.explicit casting. Note that in order to ensure that the value of the entire expression is cast to an integer, we place the expression within parentheses. Otherwise, only the variable $y = 3 * (abs(2 * $x) + 4);69 would have been cast to an integer—a pointless exercise, as the division by $y = 3 * (abs(2 * $x) + 4);70 would still have returned a floating-point number.

Ghi chú

Bạn có thể sử dụng rõ ràng các loại được hiển thị trong Bảng & NBSP; 4-6, nhưng bạn thường có thể tránh phải sử dụng một diễn viên bằng cách gọi một trong các chức năng tích hợp của PHP. Ví dụ: để có được giá trị số nguyên, bạn có thể sử dụng hàm <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>64. Như với một số phần khác trong cuốn sách này, phần này chủ yếu ở đây để giúp bạn hiểu mã của bên thứ ba mà bạn có thể gặp phải.

Bảng & NBSP; 4-6. & NBSP; Các loại diễn viên php

Loại đúc

Sự mô tả

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>65

Đúc vào một số nguyên bằng cách bỏ phần thập phân.

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>66

Đúc cho một boolean.

<?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>67

Đúc đến một số điểm nổi.

$y = 3 * (abs(2 * $x) + 4);45

Đúc vào một chuỗi.

$y = 3 * (abs(2 * $x) + 4);46

Đúc vào một mảng.

$y = 3 * (abs(2 * $x) + 4);47

Đúc vào một đối tượng.

Liên kết động PHP

Bởi vì PHP là ngôn ngữ lập trình và đầu ra từ nó có thể hoàn toàn khác nhau đối với mỗi người dùng, nên toàn bộ trang web có thể chạy từ một trang web PHP duy nhất. Mỗi lần người dùng nhấp vào một cái gì đó, các chi tiết có thể được gửi trở lại cùng một trang web, điều này quyết định phải làm gì tiếp theo theo các cookie khác nhau và/hoặc các chi tiết phiên khác mà nó có thể đã lưu trữ.

Mặc dù có thể xây dựng toàn bộ trang web theo cách này, nhưng nó không được khuyến nghị, bởi vì mã nguồn của bạn sẽ phát triển và phát triển và bắt đầu trở nên khó sử dụng, vì nó phải tính đến mọi hành động có thể mà người dùng có thể thực hiện.

Thay vào đó, nó hợp lý hơn nhiều để chia phát triển trang web của bạn thành các phần khác nhau. Ví dụ: một quy trình riêng biệt là đăng ký một trang web, cùng với tất cả các kiểm tra này đòi hỏi phải xác thực một địa chỉ email, xác định xem tên người dùng đã được sử dụng, v.v.

Mô -đun thứ hai cũng có thể là một mô -đun để đăng nhập người dùng trước khi chuyển chúng vào phần chính của trang web của bạn. Sau đó, bạn có thể có một mô -đun nhắn tin với cơ sở để người dùng để lại nhận xét, một mô -đun chứa các liên kết và thông tin hữu ích, một mô hình khác để cho phép tải lên hình ảnh và hơn thế nữa.

Miễn là bạn đã tạo ra một cách để theo dõi người dùng của mình thông qua trang web của mình bằng các phương tiện cookie hoặc biến phiên (cả hai chúng tôi sẽ xem xét kỹ hơn các chương sau), bạn có thể chia trang web của mình thành các phần hợp lý của mã PHP , mỗi người khép kín, và do đó đối xử với bản thân một tương lai dễ dàng hơn nhiều khi phát triển từng tính năng mới và duy trì những tính năng cũ.

Liên kết năng động trong hành động

Một trong những ứng dụng điều khiển PHP phổ biến hơn trên web ngày nay là nền tảng viết blog WordPress (xem Hình & NBSP; 4-5). Là một blogger hoặc một trình đọc blog, bạn có thể không nhận ra nó, nhưng mọi phần chính đã được cung cấp tệp PHP chính của riêng mình và toàn bộ các chức năng chung, chung đã được đặt trong các tệp riêng biệt được đưa vào bởi các trang PHP chính khi cần thiết.

Toàn bộ nền tảng được tổ chức cùng với theo dõi phiên hậu trường, để bạn hầu như không biết khi nào bạn đang chuyển từ tiểu mục này sang tiểu mục khác. Vì vậy, với tư cách là một nhà phát triển web, nếu bạn muốn điều chỉnh WordPress, nó dễ dàng tìm thấy tệp cụ thể bạn cần, sửa đổi nó và kiểm tra và gỡ lỗi nó mà không làm hỏng các phần không kết nối của chương trình.

Lần tới khi bạn sử dụng WordPress, hãy để mắt đến thanh địa chỉ trình duyệt của bạn, đặc biệt nếu bạn đang quản lý một blog và bạn sẽ nhận thấy một số tệp PHP khác nhau mà nó sử dụng.

Hình & NBSP; 4-5. & NBSP; Nền tảng viết blog WordPress được viết bằng PHP

Chương này đã bao gồm khá nhiều mặt bằng, và bây giờ bạn sẽ có thể kết hợp các chương trình PHP nhỏ của riêng bạn. Nhưng trước khi bạn làm và trước khi tiến hành chương sau về các chức năng và đối tượng, bạn có thể muốn kiểm tra kiến ​​thức mới của mình về các câu hỏi sau.

Câu hỏi

  1. Những giá trị cơ bản thực tế nào được biểu thị bằng a: [1] b: []4 và a: [1] b: []5?

  2. Hai dạng biểu thức đơn giản nhất là gì?

  3. Sự khác biệt giữa các toán tử Unary, nhị phân và ternary là gì?

  4. Cách tốt nhất để buộc nhà điều hành của bạn ưu tiên là gì?

  5. Có nghĩa là gì bởi sự kết hợp của nhà điều hành?operator associativity?

  6. Khi nào bạn sẽ sử dụng toán tử <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>73 (danh tính)?

  7. Đặt tên cho ba loại câu lệnh có điều kiện.

  8. Bạn có thể sử dụng lệnh nào để bỏ qua lần lặp hiện tại của một vòng lặp và chuyển sang tên tiếp theo?

  9. Tại sao vòng lặp <?php // test2.php echo "a: [" . TRUE . "]<br>"; echo "b: [" . FALSE . "]<br>"; ?>05 mạnh hơn vòng lặp a: [1] b: [] c: [] d: [1]73?

  10. Làm thế nào để $y = 3 * (abs(2 * $x) + 4);05 và a: [1] b: [] c: [] d: [1]73 Giải thích các biểu thức có điều kiện của các loại dữ liệu khác nhau?

Xem Chương 4 Câu trả lời trong Phụ lục & NBSP; A để biết câu trả lời cho những câu hỏi này.

Biểu thức trong PHP với ví dụ là gì?

Trong PHP, các biểu thức thông thường là các chuỗi bao gồm các dấu phân cách, một mẫu và các biến đổi tùy chọn.$ exp = "/w3schools/i";Trong ví dụ trên, / là dấu phân cách, W3Schools là mẫu đang được tìm kiếm và tôi là một công cụ sửa đổi làm cho trường hợp tìm kiếm không nhạy cảm.strings composed of delimiters, a pattern and optional modifiers. $exp = "/w3schools/i"; In the example above, / is the delimiter, w3schools is the pattern that is being searched for, and i is a modifier that makes the search case-insensitive.

Biểu thức và toán tử trong PHP là gì?

Một biểu thức là một chút PHP có thể được đánh giá để tạo ra một giá trị.Các biểu thức đơn giản nhất là các giá trị và biến theo nghĩa đen.Một giá trị theo nghĩa đen đánh giá chính nó, trong khi một biến đánh giá theo giá trị được lưu trữ trong biến.. The simplest expressions are literal values and variables. A literal value evaluates to itself, while a variable evaluates to the value stored in the variable.

Các biểu thức và luồng kiểm soát trong PHP là gì?

Biểu thức và luồng điều khiển trong PHP - Học PHP, MySQL, JavaScript, CSS & HTML5, Phiên bản thứ 3 [Sách] ... Các toán tử logic ..

Làm gì

Chủ đề