Hướng dẫn what is operator precedence and associativity in php? - ưu tiên toán tử và tính liên kết trong php là gì?

Sự ưu tiên của một toán tử chỉ định cách "chặt chẽ" nó liên kết hai biểu thức với nhau. Ví dụ: trong biểu thức 1 + 5 * 3, câu trả lời là 16 chứ không phải 18 vì toán tử nhân ("*") có độ ưu tiên cao hơn so với toán tử bổ sung ("+"). Dấu ngoặc đơn có thể được sử dụng để buộc ưu tiên, nếu cần thiết. Ví dụ: (1 + 5) * 3 đánh giá thành 18.

Khi các nhà khai thác có ưu tiên bằng nhau của họ quyết định cách các nhà khai thác được nhóm lại. Ví dụ: "-" là liên kết trái, do đó 1 - 2 - 3 được nhóm là (1 - 2) - 3 và đánh giá thành -4. "=" Mặt khác là liên kết đúng, vì vậy $a = $b = $c được nhóm là ____10.

Các nhà khai thác ưu tiên bằng nhau không liên kết không thể được sử dụng bên cạnh nhau, ví dụ 1 + 5 * 31 là bất hợp pháp trong PHP. Mặt khác, biểu thức 1 + 5 * 32 là hợp pháp, bởi vì toán tử 1 + 5 * 33 có quyền ưu tiên thấp hơn so với toán tử 1 + 5 * 34.

Sự kết hợp chỉ có ý nghĩa đối với các toán tử nhị phân (và ternary). Các toán tử Unary là tiền tố hoặc postfix nên khái niệm này không được áp dụng. Ví dụ 1 + 5 * 35 chỉ có thể được nhóm là 1 + 5 * 36.

Việc sử dụng dấu ngoặc đơn, ngay cả khi không hoàn toàn cần thiết, thường có thể tăng khả năng đọc của mã bằng cách nhóm rõ ràng thay vì dựa vào sự ưu tiên của toán tử ngầm và sự kết hợp.

Bảng sau liệt kê các toán tử theo thứ tự ưu tiên, với các bảng có hiệu suất cao nhất ở đầu. Các nhà khai thác trên cùng một dòng có ưu tiên bằng nhau, trong trường hợp đó, sự kết hợp quyết định nhóm.

ưu tiên điều hành
Sự kết hợpNgười vận hànhthông tin thêm
(n/a) 1 + 5 * 37 1 + 5 * 38nhân bản và mới
bên phải1 + 5 * 39Môn số học
(n/a) 1 + 5 * 37 1 + 5 * 38nhân bản và mới
bên phải1 + 5 * 39Môn số học
(n/a) 1 + 5 * 37 1 + 5 * 38nhân bản và mới
bên phải1 + 5 * 39Môn số học
bên phải1 + 5 * 39Môn số học
bên phải1 + 5 * 39Môn số học
bên phải1 + 5 * 39Môn số học
160 161 162 163 164 165 166 167 168 Số học (Unary 160 và 161), tăng/giảm, bitwise, gõ đúc và kiểm soát lỗibên trái
160 161 162 163 164 165 166 167 168 Số học (Unary 160 và 161), tăng/giảm, bitwise, gõ đúc và kiểm soát lỗibên trái
bên phải1 + 5 * 39Môn số học
bên phải1 + 5 * 39Môn số học
bên phải1 + 5 * 39Môn số học
bên phải1 + 5 * 39nhân bản và mới
bên phải1 + 5 * 39nhân bản và mới
bên phải1 + 5 * 39Môn số học
160 161 162 163 164 165 166 167 168 Số học (Unary 160 và 161), tăng/giảm, bitwise, gõ đúc và kiểm soát lỗibên trái
bên phải1 + 5 * 39Môn số học
(n/a) 1 + 5 * 37 1 + 5 * 38nhân bản và mới
(n/a) 1 + 5 * 37 1 + 5 * 38nhân bản và mới
(n/a) 1 + 5 * 37 1 + 5 * 38nhân bản và mới
bên phải1 + 5 * 39nhân bản và mới
bên phải1 + 5 * 39nhân bản và mới
bên phải1 + 5 * 39nhân bản và mới

bên phải

-45

1 + 5 * 39

Môn số học

-46

160 161 162 163 164 165 166 167 168

$a = $b = $c0

Số học (Unary 160 và 161), tăng/giảm, bitwise, gõ đúc và kiểm soát lỗi

-1, or so I hope
-1, or so I hope
x minus one equals 3, or so I hope

bên trái:

184

loại hình

185 hợp lý
8.0.0 186 187 188
8.0.0 Môn số học
7.4.0 160 161 (1 + 5) * 31
7.4.0 Dựa vào tính liên kết trái của toán tử ternary (1 - 2 - 34), tức là làm tổ nhiều toán tử ternary không được chấp nhận, không được dùng.

fabmlk ¶

7 năm trước

1 + 5 * 310

tlili dot mokhtar tại gmail dot com ¶

1 năm trước

1 + 5 * 311

1 + 5 * 312

1 + 5 * 313

1 + 5 * 314

1 + 5 * 315

1 + 5 * 316

1 + 5 * 317

1 + 5 * 318

1 + 5 * 319

1 + 5 * 320

1 + 5 * 321

1 + 5 * 322

Carsten Milkau ¶

10 năm trước

1 + 5 * 323

1 + 5 * 324

1 + 5 * 325

1 + 5 * 322

Aaronw tại Catalyst dot net dot nz ¶

5 năm trước

1 + 5 * 327

1 + 5 * 328

1 + 5 * 322

Ivan tại Dilber Dot Info ¶

5 năm trước

1 + 5 * 330

1 + 5 * 331

1 + 5 * 332

Ivan tại Dilber Dot Info ¶

karlisd tại gmail dot com

1 + 5 * 333

1 + 5 * 334

1 + 5 * 335

1 + 5 * 336

6 năm trước

1 năm trước

1 + 5 * 337

1 + 5 * 338

1 + 5 * 322

Carsten Milkau ¶

1 năm trước

1 + 5 * 340

1 + 5 * 341

1 + 5 * 342

1 + 5 * 343

1 + 5 * 322

Ưu tiên và kết hợp trong PHP là gì?

Nói chung, các nhà khai thác có ưu tiên thiết lập hoặc thứ tự, trong đó chúng được đánh giá. Các nhà điều hành cũng có tính kết hợp, đó là thứ tự mà các toán tử có cùng mức độ được đánh giá.Thứ tự này thường được từ trái sang phải (được gọi là trái ngắn trái), từ phải sang trái (được gọi là ngắn gọn), hoặc không liên quan.operators have a set precedence, or order, in which they are evaluated. Operators also have associativity, which is the order in which operators of the same precedence are evaluated. This order is generally left to right (called left for short), right to left (called right for short), or not relevant.

Sự khác biệt giữa ưu tiên toán tử và tính kết hợp trong PHP là gì?

Biểu thức 1

Các loại ưu tiên của toán tử là gì?

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

Lập trình ưu tiên của nhà điều hành là gì?

Trong toán học và lập trình máy tính, thứ tự hoạt động (hoặc ưu tiên của nhà điều hành) là một tập hợp các quy tắc phản ánh các quy ước về các quy trình nào để thực hiện đầu tiên để đánh giá một biểu thức toán học nhất định.a collection of rules that reflect conventions about which procedures to perform first in order to evaluate a given mathematical expression.