Số nguyên php từ phép chia. Xử lý số và các phép toán

Hoạt động biến PHP (Toán tử)

Có nhiều nhóm khác nhau để tập thể dục.

Toán tử là một cái gì đó được tạo thành từ một hoặc nhiều giá trị (biểu thức, trong biệt ngữ lập trình) có thể được đánh giá như một giá trị mới (vì vậy toàn bộ cấu trúc có thể được coi là một biểu thức). Nó theo sau các hàm hoặc bất kỳ cấu trúc nào khác trả về một giá trị (ví dụ: in ()) là các toán tử, không giống như tất cả các cấu trúc ngôn ngữ khác (ví dụ: echo ()) mà không trả lại gì.

Các phép toán số học trong PHP

Nhớ các nguyên tắc cơ bản của trường học về số học? Các toán tử được mô tả dưới đây hoạt động theo cùng một cách.

Toán tử chia ("/") luôn trả về kiểu thực, ngay cả khi cả hai giá trị đều là số nguyên (hoặc chuỗi được chuyển đổi thành số nguyên). Nếu không, kết quả sẽ là phân số.

Phép toán tính phần dư của phép chia " % "chỉ hoạt động với số nguyên, vì vậy áp dụng nó cho phân số có thể dẫn đến kết quả không mong muốn.

Có thể sử dụng dấu ngoặc. Ưu tiên một số phép toán hơn các phép toán khác và thay đổi mức độ ưu tiên khi sử dụng dấu ngoặc đơn trong biểu thức số học tuân theo các quy tắc toán học thông thường.

Hoạt động tăng và giảm

PHP, giống như C, hỗ trợ toán tử tăng và giảm tiền tố và hậu tố.

Toán tử tăng và giảm postfix

Như trong ngôn ngữ C, các toán tử này tăng hoặc giảm giá trị của biến và trong biểu thức, chúng trả về giá trị của biến. $ a trước khi thay đổi. Ví dụ:

$ a = 10;
$ b = $ a ++;
echo "a = $ a, b = $ b"; // In a = 11, b = 10

Như bạn có thể thấy, trước tiên, biến $ bđã gán một giá trị cho một biến $ a, và chỉ sau đó giá trị thứ hai được tăng lên. Tuy nhiên, một biểu thức có giá trị được gán cho một biến $ b, nó có thể khó hơn - trong mọi trường hợp, mức tăng $ a sẽ chỉ xảy ra sau khi nó đã được tính toán.

Toán tử tăng và giảm tiền tố

Ngoài ra còn có các toán tử tăng và giảm xuất hiện thay vì sau tên biến. Theo đó, chúng trả về giá trị của biến sau khi thay đổi. Thí dụ:

$ a = 10;
$ b = - $ a;
echo "a = $ a, b = $ b"; // In a = 9, b = 9

Các phép toán tăng giảm được sử dụng rất thường xuyên trong thực tế. Ví dụ, chúng xảy ra trong hầu hết mọi chu kỳ. .

tiếng vang "

Tăng tiền tố

" ;
$ a = 5;
echo "Nên là 5:". $ a ++. "
\ n ";

\ n ";

Echo "

Tăng tiền tố

" ;
$ a = 5;
echo "Nên là 6:". ++ $ a. "
\ n ";
echo "Nên là 6:". $ a. "
\ n ";

Echo "

Giảm hậu tố

" ;
$ a = 5;
echo "Nên là 5:". $ a -. "
\ n ";

\ n ";

Echo "

Giảm tiền tố

" ;
$ a = 5;
echo "Nên là 4:". - $ a. "
\ n ";
echo "Nên là 4:". $ a. "
\ n ";
?>

Hoạt động chuỗi

PHP có hai toán tử để làm việc với chuỗi. Đầu tiên là toán tử nối ("."), Trả về nối của các đối số bên trái và bên phải. Thứ hai là toán tử gán ghép nối, nối đối số bên phải với đối số bên trái. Hãy đưa ra một ví dụ cụ thể:

$ a = "Xin chào";
$ b = $ a. "Thế giới!" ; // $ b chứa chuỗi "Hello World!"

$ a = "Xin chào";
$ a. = "Thế giới!" ; // $ a chứa chuỗi "Hello World!"
?>

Hoạt động bitwise

Các hoạt động này nhằm vận hành (thiết lập / xóa / kiểm tra) các nhóm bit trong một biến số nguyên. Các bit của một số nguyên không gì khác hơn là các bit riêng biệt của cùng một số được viết dưới dạng nhị phân. Ví dụ: trong hệ nhị phân, số 12 sẽ trông giống như 1100 và 2 sẽ giống như 10, vì vậy biểu thức 12|2 sẽ trả về cho chúng ta số 14 (1110 trong hệ nhị phân). Nếu biến không phải là số nguyên, thì nó là
Chalet được làm tròn và sau đó các toán tử sau được áp dụng cho nó.

32 bit được sử dụng để biểu diễn một số:

  • 0000 0000 0000 0000 0000 0000 0000 0000 0000 là số không;
  • 0000 0000 0000 0000 0000 0000 0000 0000 0001 là 1;
  • 0000 0000 0000 0000 0000 0000 0000 0000 0010 là 2;
  • 0000 0000 0000 0000 0000 0000 0000 0000 0011 là 3;
  • 0000 0000 0000 0000 0000 0000 0000 0100 là 4;
  • 0000 0000 0000 0000 0000 0000 0000 0101 là 5;
  • 0000 0000 0000 0000 0000 0000 0000 1111 là 15;

Toán tử bitwise:

Thí dụ Tên Kết quả
$ a & $ b Bitwise "và" Chỉ các bit được đặt trong cả $ a và $ b mới được đặt.
$ a | $ b Bitwise "hoặc" Các bit được đặt trong $ a hoặc $ b được đặt.
$ a ^ $ b Độc quyền hoặc Chỉ đặt những bit chỉ được đặt trong $ a hoặc chỉ trong $ b
~ $ a Phủ định Các bit được đặt không được đặt bằng $ a và ngược lại.
$ a<< $b Dịch trái Tất cả các bit của $ a được dịch chuyển vị trí $ b sang trái (mỗi vị trí ngụ ý "phép nhân với 2")
$ a >> $ b Chuyển sang phải Tất cả các bit của $ a được chuyển vị trí $ b sang phải (mỗi vị trí ngụ ý "chia cho 2")

Các phép toán so sánh

Các toán tử so sánh, như tên gọi của chúng, cho phép bạn so sánh hai giá trị.

Đây là loại hoạt động duy nhất, bởi vì bất kể loại đối số của chúng là gì, chúng luôn trả về một trong hai điều: sai hoặc thật... Các phép toán so sánh cho phép bạn so sánh hai giá trị với nhau và nếu điều kiện được đáp ứng, trả về thật, Và nếu không - sai.

Trong PHP, chỉ các biến vô hướng mới được phép so sánh. Mảng và đối tượng không thể được so sánh trong PHP. Chúng thậm chí không thể được so sánh để bình đẳng (sử dụng toán tử ==), nhưng PHP không đưa ra cảnh báo khi thực hiện một thao tác như vậy. Vì vậy, hãy tự hỏi một lần tại sao hai mảng hoàn toàn khác nhau khi so sánh chúng bằng cách sử dụng == đột nhiên hóa ra giống nhau, hãy nhớ rằng trước khi so sánh, cả hai toán hạng đều được chuyển đổi thành một từ mảng, sau đó được so sánh.

Để biết chi tiết về việc so sánh các mảng, hãy xem.

Toán tử so sánh:

Thí dụ Tên Kết quả
$ a == $ b Bằng THẬT nếu $ a bằng $ b.
$ a === $ b Giống hệt nhau THẬT nếu $ a bằng $ b và cùng loại. (Đã thêm trong PHP 4)
$ a! = $ b Không công bằng THẬT nếu $ a không bằng $ b.
$ a<>$ b Không công bằng THẬT nếu $ a không bằng $ b.
$ a! == $ b Không giống nhau THẬT nếu $ a không bằng $ b hoặc trong trường hợp chúng thuộc các loại khác nhau (Được thêm vào trong PHP 4)
$ a< $b Nhỏ hơn THẬT nếu $ a hoàn toàn nhỏ hơn $ b.
$ a> $ b Hơn THẬT nếu $ a lớn hơn $ b.
$ a<= $b Ít hơn hoặc bằng THẬT nếu $ a nhỏ hơn hoặc bằng $ b.
$ a> = $ b Nhiều hơn hoặc bằng THẬT nếu $ a lớn hơn hoặc bằng $ b.

Các phép toán logic

Toán tử Boolean chỉ nhằm mục đích làm việc với các biểu thức Boolean và cũng trả về sai hoặc thật.

Đây là bảng các toán tử logic PHP:

Cần lưu ý rằng việc tính toán các biểu thức logic chứa các toán tử như vậy luôn đi từ trái sang phải, trong khi, nếu kết quả đã rõ ràng (ví dụ: sai && cái gì đó luôn luôn cho sai), thì các phép tính sẽ bị hủy bỏ ngay cả khi có lệnh gọi hàm trong biểu thức. Ví dụ, trong toán tử $ logic = 0 && (time ()> 100); chức năng tiêu chuẩn thời gian () sẽ không bao giờ được gọi.

Hãy cẩn thận với các thao tác logic - đừng quên nhân đôi ký tự. Xin lưu ý rằng ví dụ | || - hai toán tử hoàn toàn khác nhau, một trong số đó có thể trả về bất kỳ số nào, và toán tử thứ hai chỉ saithật.

Các toán tử tăng (++) và giảm (-) không hoạt động với các biến boolean.

Toán tử tương đương

PHP vì PHP4 có một toán tử so sánh giống hệt nhau - dấu bằng ba === ,
hoặc nhà điều hành séc cho. PHP khá dễ chịu khi các chuỗi được chuyển đổi ngầm thành số và ngược lại.
Ví dụ, đoạn mã sau sẽ suy ra rằng giá trị của các biến là bằng nhau:

$ a = 10;
$ b = "10";

Và điều này mặc dù thực tế là biến $ a là một con số và $ b- dây. Bây giờ chúng ta hãy xem xét một ví dụ hơi khác:

$ a = 0; // số không
$ b = ""; // dòng trống
if ($ a == $ b) echo "a và b bằng nhau"; // In "a và b bằng nhau"

Mặc dù $ a$ b rõ ràng là không bằng nhau ngay cả theo nghĩa thông thường của từ này, tập lệnh sẽ tuyên bố rằng chúng giống nhau. Tại sao nó xảy ra? Thực tế là nếu một trong các toán hạng của toán tử logic có thể được coi là số, thì cả hai toán hạng đều được coi là số. Trong trường hợp này, dòng trống biến thành 0 sau đó được so sánh với số không. Không ngạc nhiên, nhà điều hành tiếng vang làm.
Vấn đề được giải quyết bằng toán tử tương đương === (ba đẳng thức). Nó không chỉ so sánh hai biểu thức, mà còn cả kiểu của chúng. Hãy viết lại ví dụ của chúng tôi bằng cách sử dụng toán tử này.

Chủ đề này rất quan trọng vì hầu như tất cả các ứng dụng đều có một số loại hoạt động tính toán. Các phép toán trên số được trình bày trong bảng dưới đây.

Các phép toán số học trong php

Tôi nghĩ rằng những nhà khai thác này không cần bất kỳ lời giải thích lớn nào. Tôi sẽ đưa ra một ví dụ về việc sử dụng từng loại trong số chúng:

\ $ num2 = ". $ num2; // Ví dụ về tính tổng: tiếng vọng "
\ $ num1 + \ $ num2 = ". ($ num1 + $ num2); // Ví dụ về phép trừ: tiếng vọng "
\ $ num1 - \ $ num2 = ". ($ num1 - $ num2); // Ví dụ về phép nhân: tiếng vọng "
\ $ num1 * \ $ num2 = ". $ num1 * $ num2; // Ví dụ về phép chia: tiếng vọng "
\ $ num1: \ $ num2 = ". $ num1 / $ num2; // Ví dụ về phần dư từ phép chia: tiếng vọng "
\ $ num1% \ $ num2 = ". $ num1% $ num2; // Ví dụ về tăng dần ở dạng tiền tố: tiếng vọng "
++ \ $ num1 = ". ++ $ num1; // Bây giờ $ num1 = 11 $ num1 = 10; // đã gán giá trị ban đầu // Ví dụ về tăng dần ở dạng tiền tố bài đăng: tiếng vọng "
\ $ num1 ++ = ". $ num1 ++; // Bây giờ $ num1 = 11 $ num1 = 10; // được gán giá trị ban đầu // Ví dụ về giảm dần ở dạng tiền tố: tiếng vọng "
- \ $ num1 = ". - $ num1; $ num1 = 10; // Ví dụ về giảm ở dạng hậu tố: tiếng vọng "
\ $ num1-- = ". $ num1 - ;?>

Kết quả của việc thực thi đoạn mã trên:

$ num1 = 10
$ num2 = 7
$ num1 + $ num2 = 17
$ num1 - $ num2 = 3
$ num1 * $ num2 = 70
$ num1: $ num2 = 1.42857142857
$ num1% $ num2 = 3
++ $ num1 = 11
$ num1 ++ = 10
- $ num1 = 9
$ num1-- = 10

Sự khác biệt giữa hình thức tiền tố và hậu tố:

  • ở dạng tiền tố(++ đứng trước biến) trước tiên, tăng một xảy ra, và sau đó kết quả được hiển thị
  • ở dạng hậu tố(++ đứng sau biến) kết quả được hiển thị đầu tiên, sau đó thực hiện tăng dần

Để bạn hiểu rõ hơn về sự khác biệt, tôi sẽ đưa ra một ví dụ cổ điển, được đưa ra trong nhiều sách giáo khoa lập trình:

// Gán giá trị cho các biến:$ num1 = 10; $ num2 = 7; $ rez = ++ $ num1 + $ num2; // kết quả sẽ là 18 tiếng vọng "
\ $ rez = ". $ rez; // Cung cấp cho $ num1 một giá trị ban đầu:$ num1 = 10; $ rez = $ num1 ++ + $ num2; // kết quả sẽ là 17 tiếng vọng "
\ $ rez = ". $ rez; Các phép toán // ++ và - cũng có thể được áp dụng cho các chuỗi$ str = "abc"; tiếng vọng "
". ++ $ str; // kết quả sẽ là chuỗi "Abd" ?>

Cần lưu ý rằng khi thêm các biến, bạn có thể sử dụng hai loại bản ghi:

  • $ num1 = $ num1 + $ num2 - ký hiệu thông thường;
  • $ num1 + = $ num2 là một ký hiệu viết tắt. Kết quả của các hoạt động này sẽ giống nhau. Ký hiệu viết tắt cũng có thể được sử dụng với phép trừ và phép nhân.

So sánh các toán tử trong php

Các toán tử so sánh được sử dụng để kiểm tra xem các điều kiện, v.v. Tuy nhiên, trong bài học này chúng ta sẽ không đề cập đến các toán tử điều kiện mà chỉ đề cập đến các toán tử so sánh. Tất cả các toán tử so sánh được hiển thị trong bảng dưới đây:

Không có gì phức tạp ở đây, nguyên tắc cũng giống như trong toán học. Điểm đặc biệt duy nhất là true là 1 và false là 0. Đây là một ví dụ chi tiết về PHP:

// Gán giá trị cho các biến:$ num1 = 10; $ num2 = 7; echo "\ $ num1> \ $ num2 =". ($ num1> $ num2); // lấy 1 (10> 7 - đúng) echo "\ $ num1 // lấy 0 (10 // Nó có thể được viết đơn giản hơn: tiếng vọng "
10 // 0 tiếng vang "
20 // 0 tiếng vang "
1 == 1 = ". (1 == 1); // 1 tiếng vọng"
0 == \ "\" = ". (0 ==" "); // 1 tiếng vọng"
0 === 0 = ". (0 === 0); // 1 tiếng vang"
0 === \ "\" = ". (0 ===" "); // 0 tiếng vang"
true = ". true; // 1 echo"
false = ". false; // 0?>

Ghi chú:

  • Nếu sai, 0 sẽ không được xuất
  • toán tử tương đương chỉ trả về 1 khi có một kết quả khớp chính xác. Ví dụ: 0 == "" là đúng, nhưng 0 === "" không còn đúng nữa vì không có kết quả khớp chính xác.

Các lập trình viên cần thực hiện tính toán số, khoa học hoặc thống kê có trách nhiệm sẽ không coi ngôn ngữ kịch bản web là ứng cử viên có thể chấp nhận được cho vai trò này. Điều đó nói lên rằng, PHP cung cấp một bộ hàm tuyệt vời giải quyết đầy đủ hầu hết các vấn đề toán học nảy sinh trong quá trình thực thi các tập lệnh web. Ngoài ra, PHP cung cấp một số tính năng nâng cao hơn như thư viện số học và băm và mật mã chính xác tùy ý.

Các nhà phát triển PHP đã thực hiện một cách tiếp cận có cơ sở và không cố gắng phát minh lại các bánh xe cho mục đích này. Vấn đề là nhiều hàm toán học cơ bản nhất được sử dụng trong PHP chỉ đơn giản là trình bao bọc xung quanh các ký tự C tương tự của các hàm đó.

Các hoạt động toán học

Hầu hết các phép toán trong PHP được thực hiện dưới dạng các hàm có sẵn, không phải dưới dạng các phép toán. Ngoài các phép toán so sánh, PHP cung cấp năm phép toán số học đơn giản, cũng như một số phép toán tốc ký cho phép bạn xây dựng các biểu thức tăng và giảm ngắn hơn, cũng như các phép gán.

Các phép tính toán học

Năm phép toán số học cơ bản bao gồm những phép toán thường thấy trong bất kỳ máy tính bốn hàm nào, cũng như phép chia theo mô đun (%). Mô tả ngắn gọn về các phép toán số học được đưa ra trong bảng:

Các phép tính toán học
Hoạt động Sự miêu tả
+ Trả về tổng các giá trị của hai toán hạng của nó
- Nếu có hai toán hạng, thì giá trị của toán hạng bên phải bị trừ cho giá trị của toán hạng bên trái. Nếu chỉ có một toán hạng bên phải, thì phép toán trả về giá trị của toán hạng này với dấu ngược lại
* Trả về tích các giá trị của hai toán hạng của nó
/ Trả về kết quả của phép chia dấu phẩy động của giá trị toán hạng bên trái cho giá trị của toán hạng bên phải
% Trả về phần còn lại của phép chia số nguyên của giá trị toán hạng bên trái cho giá trị tuyệt đối của toán hạng bên phải

Khi sử dụng ba phép toán số học đầu tiên được mô tả ở trên (+, -, *) trong chương trình, hãy nhớ rằng khi thực hiện các phép toán này, kiểu truyền từ giá trị dấu phẩy động có độ chính xác kép sang giá trị số nguyên. Điều này ngụ ý như sau: nếu cả hai toán hạng của phép toán là số nguyên, thì kết quả là số nguyên và nếu ít nhất một trong các toán hạng là số dấu phẩy động có độ chính xác kép, thì kết quả là dấu phẩy động có độ chính xác kép . Sự lan truyền cùng loại xảy ra khi thực hiện phép toán phân chia; Ngoài ra, có một hiệu ứng bổ sung là kết quả trở thành số dấu phẩy động có độ chính xác kép nếu phép chia không hoàn thành.

Thao tác modulo (%) trong PHP chấp nhận các toán hạng số nguyên và nếu thao tác này được áp dụng cho các số dấu phẩy động có độ chính xác kép, các số này sẽ được chuyển đổi trước thành số nguyên (bằng cách loại bỏ phần phân số). Kết quả của một phép toán như vậy luôn là một số nguyên.

Hoạt động tăng và giảm

Phần lớn cú pháp của PHP được kế thừa từ ngôn ngữ C, và các lập trình viên C nổi tiếng với tình yêu ngắn gọn và tự hào về nó. Các phép toán tăng và giảm, được lấy từ ngôn ngữ C, giúp nó có thể biểu diễn chính xác hơn các biểu thức như $ count = $ count + 1, thường được tìm thấy trong các chương trình khá thường xuyên.

Phép toán tăng (++) được sử dụng để thêm một vào giá trị của biến được bao hàm bởi thao tác này và phép toán giảm (-) trừ một vào giá trị của biến đó.

Mỗi thao tác trong số hai thao tác này đều có hai hương vị - hậu tố(trong biểu mẫu này, dấu hoạt động được đặt ngay sau biến mà hoạt động áp dụng) và tiếp đầu ngữ(trong biểu mẫu này, dấu phép toán được đặt ngay trước biến mà phép toán áp dụng). Cả hai phương thức đều có cùng tác dụng phụ là thay đổi giá trị của một biến, nhưng các phép toán hậu tố và tiền tố trả về các giá trị khác nhau khi được sử dụng làm biểu thức. Một hoạt động hậu tố là giá trị của một biến được thay đổi sau khi biểu thức được trả về, và một hoạt động tiền tố là giá trị được thay đổi trước và sau đó một giá trị mới được trả lại cho biến. Sự khác biệt này có thể được phát hiện bằng cách sử dụng các phép toán giảm dần và tăng dần trong các toán tử gán:

Mã PHP $ đếm = 0; $ kết quả = $ count ++; echo "Kết quả của số gia tăng $ count ++:". $ result. "
"; $ count = 0; $ result = ++ $ count; echo" Kết quả tăng lên ++ $ count: ". $ result."
";

Các toán tử này tạo ra kết quả sau trong cửa sổ trình duyệt:

Hoạt động gia tăng

Trong ví dụ này, toán tử $ result = $ count ++ hoàn toàn tương đương với các toán tử:

Mã PHP $ kết quả = $ count; $ count = $ count + 1;

Cùng với đó, toán tử $ result = ++ $ count tương đương với các toán tử sau:

Mã PHP $ count = $ count +1; $ kết quả = $ count;

Hoạt động chuyển nhượng

Các hoạt động tăng (và giảm) có thể làm giảm số lượng mã cần thiết để thêm một vào giá trị của một biến, nhưng chúng không cho phép bạn giảm số lượng mã trong đó một biến được gán kết quả của việc thêm giá trị của nó vào một số khác hoặc kết quả của việc thực hiện các phép tính số học khác. May mắn thay, tất cả năm phép tính số học đều có các phép gán tương ứng (+ =, - =, * =, / = và% =) cho phép bạn gán cho một biến trong một biểu thức ngắn gọn là kết quả của một phép toán số học trên giá trị của biến đó . Ví dụ, nhà điều hành

Mã PHP $ count = $ count * 3;

có thể được viết tắt là

Mã PHP $ count * = 3;

Các hàm toán học đơn giản

Giai đoạn tiếp theo trong sự phức tạp của chương trình so với giai đoạn chỉ sử dụng các phép toán số học là sử dụng tất cả các loại hàm. Các hàm cho phép bạn thực hiện các tác vụ như chuyển đổi từ kiểu số này sang kiểu số khác (xem bài viết Kiểu dữ liệu) và tìm số tối thiểu hoặc tối đa trong một tập hợp số. Bảng sau đây trình bày các hàm toán học đơn giản:

Các hàm toán học đơn giản trong PHP
Hàm số Sự miêu tả
sàn nhà () Lấy một tham số thực tế duy nhất (thường là số dấu phẩy động có độ chính xác kép) và trả về số nguyên lớn nhất nhỏ hơn hoặc bằng tham số thực tế đó (làm tròn xuống)
ceil () Tên của chức năng này là viết tắt của trần. Hàm nhận một tham số thực tế duy nhất (thường là số dấu phẩy động có độ chính xác kép) và trả về số nguyên nhỏ nhất lớn hơn hoặc bằng tham số thực tế đó (làm tròn lên)
vòng () Nhận một tham số thực tế duy nhất (thường là số dấu phẩy động có độ chính xác kép) và trả về số nguyên gần nhất
abs () Giá trị tuyệt đối của một số. Nếu tham số thực tế số duy nhất là số âm, thì hàm trả về số dương tương ứng; nếu tham số thực là dương, thì hàm trả về chính tham số thực
min () Chấp nhận bất kỳ số lượng tham số thực tế nào (nhưng ít nhất một) và trả về giá trị nhỏ nhất trong tất cả các giá trị tham số thực tế
max () Chấp nhận bất kỳ số lượng tham số thực tế nào (nhưng ít nhất một) và trả về giá trị lớn nhất trong tất cả các giá trị tham số thực tế

Ví dụ, kết quả của biểu thức sau là 3, vì giá trị của mỗi biểu thức với một lệnh gọi hàm cũng là 3:

Mã PHP $ result = min (3, abs (-3), max (round (2.7), ceil (2.3), floor (3.9)));

Tạo số ngẫu nhiên

PHP sử dụng hai trình tạo số ngẫu nhiên (được gọi, tương ứng, bằng cách sử dụng các hàm rand ()mt_rand ()). Ba chức năng có cùng mục đích được liên kết với mỗi trình tạo này: chức năng thiết lập giá trị ban đầu ( srand ()mt_srand ()), chính hàm để lấy một số ngẫu nhiên và một hàm chọn số nguyên lớn nhất có thể được trả về bởi trình tạo (( getrandmax ()mt_getrandmax ())). Hàm getrandmax () và mt_getrandmax () trả về số lớn nhất có thể được trả về bởi rand () hoặc mt_rand (), được giới hạn ở 32768 trên nền tảng Windows.

Việc lựa chọn hàm tạo số giả ngẫu nhiên cụ thể được sử dụng trong hàm rand () có thể phụ thuộc vào thư viện mà trình thông dịch PHP được biên dịch. Ngược lại, trình tạo mt_rand () luôn sử dụng cùng một hàm tạo số giả ngẫu nhiên (mt là viết tắt của Mersenne Twister) và tác giả của tài liệu trực tuyến cho hàm mt_rand () tuyên bố rằng hàm này cũng nhanh hơn và "nhiều hơn ngẫu nhiên "(về mặt mật mã) so với rand (). Chúng tôi không có lý do gì để nghi ngờ sự thật của những tuyên bố này, vì vậy chúng tôi thích sử dụng hàm mt_rand () hơn là rand ().

Khi sử dụng một số phiên bản PHP cho một số nền tảng, có vẻ như các hàm rand () và mt_rand () tạo ra các số ngẫu nhiên dường như hoàn toàn chấp nhận được, ngay cả khi không chỉ định giá trị ban đầu. Nhưng một ấn tượng như vậy là không đáng tin cậy. Thứ nhất, các chương trình sử dụng các hàm để tạo số ngẫu nhiên mà không chỉ định giá trị ban đầu không thể dễ dàng chuyển sang các nền tảng khác và thứ hai, hoạt động đáng tin cậy của các hàm này mà không chỉ định giá trị ban đầu sẽ không được đảm bảo.

Một cách điển hình để đặt hạt giống cho bất kỳ trình tạo số ngẫu nhiên nào của PHP (sử dụng hàm mt_srand () hoặc srand ()) như sau:

Mã PHP mt_srand ((kép) microtime () * 1000000);

Toán tử này đặt giá trị ban đầu của trình tạo, bằng số micro giây đã trôi qua kể từ cả giây cuối cùng. (Truyền nhân đôi trong toán tử này là thực sự cần thiết vì hàm microtime () trả về một chuỗi, được coi là một số nguyên trong hoạt động nhân, nhưng không phải trong hoạt động truyền tham số cho hàm.) Chúng tôi khuyên người đọc nên nhập toán tử giá trị ban đầu được chỉ định, ngay cả khi anh ta không hoàn toàn hiểu mục đích của toán tử này; chỉ cần đặt câu lệnh này trên mỗi trang PHP một lần là đủ trước khi sử dụng hàm mt_rand () hoặc rand () thích hợp và câu lệnh này sẽ đảm bảo rằng điểm bắt đầu thay đổi và do đó, một chuỗi ngẫu nhiên khác sẽ được tạo ra mỗi lần .

Phương pháp đặt giá trị ban đầu cụ thể này đã được nghiên cứu sâu sắc bởi những chuyên gia hiểu đầy đủ tất cả các sắc thái của việc tạo ra các số giả ngẫu nhiên, vì vậy nó rất có thể sẽ mãi mãi là tốt nhất so với bất kỳ nỗ lực nào của một số lập trình viên cá nhân. một cái gì đó "phức tạp" hơn.

Rõ ràng, các hàm tạo số giả ngẫu nhiên này chỉ trả về số nguyên, nhưng một số nguyên ngẫu nhiên từ một phạm vi nhất định có thể dễ dàng chuyển đổi thành số dấu phẩy động thích hợp (giả sử, một số từ 0,0 đến 1,0, bao gồm cả) bằng cách sử dụng biểu thức như rand () / getrandmax (). Sau đó, phạm vi được chỉ định có thể được thu nhỏ và thay đổi khi cần thiết. Một ví dụ đã được biểu diễn ở dưới:

Mã PHP // Giả sử chúng ta cần tạo một số ngẫu nhiên từ 100.0 đến 120.0 $ random = 100.0 + 20.0 * mt_rand () / mt_getrandmax (); echo $ ngẫu nhiên. "
"; // Tạo số nguyên (100 - 120); echo round ($ random);

Hãy thử làm mới trang bằng mã này nhiều lần để đảm bảo rằng nó đang tạo ra các số ngẫu nhiên.

Hằng số toán học

Trong PHP 4.0, chỉ có một hằng số toán học được mô tả trong tài liệu - M_PI (giá trị của π, được biểu diễn dưới dạng số dấu phẩy động có độ chính xác kép). Và kể từ PHP 4.0.2, nhiều hằng số mới đã được giới thiệu. Hầu hết các hằng số mới này dành cho π (hoặc bội của nó), e (hoặc bội của nó), và căn bậc hai; Ngoài ra, một số hằng số thuộc các loại khác. Nhưng trong các bản phát hành tiếp theo, vì một số lý do, danh sách các hằng số lại bị giảm xuống một số lượng tương đối nhỏ các hằng số toán học được xác định trước:

Hằng số toán học PHP
Hằng số Sự miêu tả
M_PI π
M_PI_2 π / 2
M_PI_4 π / 4
M_1_PI 1 / π
M_2_PI 2 / π
M_2_SQRTPI 2 / sqrt (π)
TÔI e
M_SQRT2 sqrt (2)
M_SQRT1_2 1 / sqrt (2)
M_LOG2E log 2 (e)
M_LOG10E lg (e)
M_LN2 log e (2)
M_LN10 log e (10)

Kiểm tra định dạng số

PHP cung cấp một số hàm cho phép bạn kiểm tra tính đúng đắn của việc biểu diễn các con số. Mặc dù PHP thiếu tính năng gõ mạnh, nhưng bạn nên áp dụng một số cách kiểm tra này trong mã của mình bất cứ khi nào bạn cần, để có thể dự đoán các đặc điểm của kết quả bạn nhận được và chọn cách tốt nhất để xử lý chúng.

Kiểm tra đầu tiên và đơn giản nhất là sử dụng hàm is_numeric ()... Như với hầu hết các cách kiểm tra khác, is_numeric trả về một kết quả Boolean - true nếu tham số được truyền cho nó là bất kỳ loại dữ liệu số nào (có dấu hoặc không dấu, số nguyên hoặc dấu phẩy động) hoặc một biểu thức toán học trả về một giá trị số hợp lệ.

Sử dụng các chức năng is_int ()is_float bạn có thể xác định xem số là số nguyên hay phân số. Hai lần kiểm tra khác phức tạp hơn một chút: các hàm is_finite ()là vô hạn () cho phép bạn thực hiện chính xác các kiểm tra mà tên của chúng chỉ ra (cho dù số lượng là hữu hạn hay vô hạn). Tuy nhiên, nói một cách chính xác, phạm vi giá trị được bao phủ bởi các hàm này không thể bao gồm vô hạn thực tế (và nó có thể được xác minh chút nào nếu một số có giá trị vô hạn?). Thay vào đó, nó sử dụng các giới hạn dành riêng cho hệ thống của phạm vi dấu phẩy động.

Dưới đây là một ví dụ về việc sử dụng các hàm này:

Mã PHP is_numeric (4); // true is_numeric (25 - 6); // true is_numeric ("25"); // true is_numeric ("25 - 6"); // sai is_int (4); // true is_int (4.2); // sai is_int ("4"); // false - kiểm tra này nghiêm ngặt hơn kiểm tra sử dụng hàm is_numeric () is_float (4); // sai is_float (4.0); // true is_float (M_PI); // thật

Chuyển đổi hệ thống số

Theo mặc định, PHP sử dụng cơ số 10 để chuyển đổi chuyển tiếp và lùi các giá trị số từ biểu diễn bên ngoài sang bên trong. Ngoài ra, bạn có thể cho trình thông dịch PHP biết rằng biểu diễn bên ngoài sử dụng số bát phân trong cơ số 8 (để làm điều này, bạn phải nhập 0), hoặc các số thập lục phân được chỉ định trong cơ số 16 (để làm điều này, bạn phải nhập tiền tố 0x trước số).

Tất nhiên, sau khi chuyển đổi các số từ một biểu diễn bên ngoài thành một số bên trong, chúng được lưu trữ trong bộ nhớ ở định dạng nhị phân và tất cả các phép tính số học và toán học cơ bản được thực hiện trong chính hệ điều hành ở cơ sở 2. Ngoài ra, ngôn ngữ PHP cung cấp một số hàm để chuyển đổi số từ một cơ sở của hệ thống tính toán sang một cơ sở khác. Tổng quan về các tính năng này được hiển thị trong bảng dưới đây:

Các chức năng chuyển đổi hệ thống số
Hàm số Sự miêu tả
BinDec () Nhận một tham số chuỗi đơn, là một số nguyên nhị phân (cơ số 2) và trả về biểu diễn chuỗi của số đó trong cơ số 10
DecBin () Tương tự như BinDec (), nhưng chuyển đổi từ cơ số 10 sang cơ số 2
OctDec () Tương tự như BinDec (), nhưng chuyển đổi từ cơ số 8 sang cơ số 10
DecOct () Tương tự như BinDec (), nhưng chuyển đổi từ cơ số 10 sang cơ số 8
HexDec () Tương tự như BinDec (), nhưng chuyển đổi từ cơ số 16 sang cơ số 10
DecHex () Tương tự như BinDec (), nhưng chuyển đổi từ cơ số 10 sang cơ số 16
base_convert () Lấy một tham số chuỗi (đại diện cho số nguyên được chuyển đổi) và hai tham số số nguyên (cơ số ban đầu và cơ số mong muốn). Trả về một chuỗi đại diện cho số được chuyển đổi. Trên chuỗi này, các số cũ hơn 9 (10 đến 35) được biểu thị bằng các ký tự a-z. Cả gốc và nền mong muốn phải nằm trong khoảng 2-36

Tất cả các hàm chuyển đổi hệ thống số đều là các hàm có mục đích đặc biệt để chuyển đổi các số từ cơ số cụ thể này sang cơ sở cụ thể khác. Ngoại lệ là hàm base_convert (), hàm này chấp nhận các tham số tùy ý với việc chỉ định cơ sở bắt đầu và kết quả.

Lưu ý rằng tất cả các hàm chuyển đổi số đều chấp nhận tham số chuỗi và trả về giá trị chuỗi, nhưng bạn có thể sử dụng tham số số thập phân và dựa vào trình thông dịch PHP để thực hiện chuyển đổi kiểu một cách chính xác. Nói cách khác, các tùy chọn để gọi DecBin ("1234") và DecBin (1234) tạo ra cùng một kết quả.

Số mũ và logarit

Ngôn ngữ PHP bao gồm các hàm số mũ và hàm logarit tiêu chuẩn theo hai cách khác nhau - cho phép toán trong cơ số 10 và cơ số e (được hiển thị trong bảng).

PHP cung cấp hàm exp () để nâng số e lên lũy thừa được chỉ định, nhưng không có hàm nào có một tham số có thể nâng số 10 lên lũy thừa được chỉ định. Tuy nhiên, thay vì hàm này, bạn có thể sử dụng pow () hàm có hai tham số, cho 10 là tham số đầu tiên.

Bạn có thể đảm bảo rằng các hàm số mũ và hàm số lôgarit có cùng cơ số là nghịch biến với nhau bằng cách kiểm tra tính đồng nhất của các kết quả thu được theo cách này:

Mã PHP $ test_449 = 449.0; $ test_449 = pow (10, exp (log (log10 ($ test_449)))); echo "test_449 = $ test_449"; // test_449 = 449

Hàm lượng giác

PHP cung cấp một bộ tiêu chuẩn các hàm lượng giác cơ bản, thông tin chung về bộ này được đưa ra trong bảng:

Hàm lượng giác
Hàm số Sự miêu tả
số Pi () Không sử dụng tham số và trả về giá trị gần đúng cho π (3,1415926535898). Có thể được sử dụng thay thế cho nhau với hằng số M_PI
tội () Lấy tham số số tính bằng radian và trả về sin của tham số dưới dạng số dấu phẩy động có độ chính xác kép
cos () Lấy tham số số tính bằng radian và trả về cosin của tham số dưới dạng số dấu phẩy động có độ chính xác kép
tan () Lấy tham số số tính bằng radian và trả về tang của tham số dưới dạng số dấu phẩy động có độ chính xác kép
asin () Nhận một tham số số và trả về sin nghịch đảo của tham số tính bằng radian. Dữ liệu đầu vào phải nằm trong phạm vi từ -1 đến 1 (nếu hàm nhận dữ liệu đầu vào nằm ngoài phạm vi này sẽ cho kết quả NAN). Phạm vi kết quả từ -π / 2 đến π / 2
acos () Nhận tham số số và trả về cosin nghịch đảo của tham số tính bằng radian. Dữ liệu đầu vào phải nằm trong phạm vi từ -1 đến 1 (nếu hàm nhận dữ liệu đầu vào nằm ngoài phạm vi này, sẽ dẫn đến kết quả NAN. Kết quả nằm trong phạm vi từ 0 đến π
atan () Nhận tham số số và trả về giá trị arctang của tham số tính bằng radian. Phạm vi kết quả từ -π / 2 đến π / 2

Dưới đây là ví dụ về cách lập bảng tính các hàm lượng giác cho góc "chuẩn":

Mã PHP function display_trigonometry ($ func_array, $ input_array) (// tiêu đề hàm echo " ";) tiếng vang""; // In phần còn lại của bảng foreach ($ input_array dưới dạng $ input) (echo" "; foreach ($ func_array dưới dạng $ func) (echo" ";) tiếng vang"";) tiếng vang"
Giá trị / chức năng$ func
".sprintf ("%. 4f ", $ input).""; printf ("% 4.4f ", $ func ($ input)); echo"
";) display_trigonometry (array (" sin "," cos "," tan "), array (0, M_PI / 6, M_PI / 3, M_PI / 2, M_PI));

Một ví dụ về việc sử dụng các hàm lượng giác trong PHP

Việc thu được các giá trị rất lớn (nhưng không phải là vô hạn) của tiếp tuyến là do trên lý thuyết các mẫu số phải bằng 0, nhưng trên thực tế chúng hơi khác 0 do sai số làm tròn.

Tính toán chính xác tùy ý (Sử dụng các hàm BC)

Các kiểu số nguyên và dấu phẩy động có độ chính xác kép hoàn toàn phù hợp để giải hầu hết các vấn đề toán học phát sinh khi thực thi các tập lệnh cho web, nhưng có một lượng bộ nhớ máy tính cố định để lưu trữ mỗi trường hợp của một giá trị được đại diện bởi các loại này, do đó , các hạn chế về kích thước và độ chính xác của việc biểu diễn các con số chắc chắn được áp đặt cho các loại này.

Tất nhiên, phạm vi chính xác của các loại dữ liệu này có thể phụ thuộc vào kiến ​​trúc của máy tính máy chủ, nhưng các giá trị số nguyên thường có thể nằm trong khoảng từ -2 31 -1 đến 2 31 -1 và số dấu phẩy động có độ chính xác kép có thể đại diện cho số với độ chính xác khoảng 13 đến 14 chữ số thập phân. Mặt khác, PHP cung cấp các hàm toán học chính xác tùy ý(còn được gọi là các hàm BC, sau một tiện ích tính toán chính xác tùy ý dựa trên Unix).

Nó có thể hóa ra rằng các hàm với độ chính xác tùy ý không được bao gồm trong quá trình biên dịch trình thông dịch PHP, đặc biệt nếu người dùng tự mình thực hiện quá trình biên dịch đó, vì đối với điều này, người dùng phải biết rằng trong giai đoạn cấu hình, hộp kiểm phải là bao gồm trong các thông số --enable-bcmath... Để kiểm tra xem các hàm được chỉ định có khả dụng hay không, hãy thử đánh giá biểu thức bcadd ("1", "1"). Nếu bạn nhận được lỗi cho biết một hàm không xác định, bạn sẽ cần phải tinh chỉnh lại cấu hình và biên dịch lại trình thông dịch PHP.

Các hàm BC sử dụng chuỗi thay vì các kiểu số có độ dài cố định làm tham số và giá trị trả về. Vì trong PHP, độ dài của các chuỗi chỉ bị giới hạn bởi dung lượng bộ nhớ khả dụng, các con số được sử dụng trong các phép tính có thể có độ dài bất kỳ. Các phép tính cơ bản được thực hiện ở dạng thập phân và theo nhiều cách tương tự như các phép tính mà một người có thể thực hiện với bút chì và giấy (nếu anh ta có thể thực hiện rất nhanh và có sự kiên nhẫn). Các hàm số nguyên BC chính xác và cho phép bạn sử dụng bao nhiêu chữ số tùy thích, trong khi các hàm dấu phẩy động thực hiện các phép tính đến số chữ số thập phân được chỉ định. Tổng quan về các hàm BC được hiển thị trong bảng dưới đây:

Các hàm toán học chính xác tùy ý (hàm BC)
Hàm số Sự miêu tả
bcadd () Chấp nhận hai tham số chuỗi biểu thị số và một tham số số nguyên tùy chọn cho biết hệ số tỷ lệ. Trả về tổng của hai tham số đầu tiên dưới dạng một chuỗi, với số vị trí thập phân trong kết quả được chỉ định bởi tham số với ký hiệu hệ số tỷ lệ. Nếu tham số có ký hiệu hệ số tỷ lệ không được chỉ định, thì hệ số tỷ lệ mặc định được sử dụng.
bcsub () Tương tự như bcadd (), ngoại trừ việc nó trả về kết quả của việc trừ tham số thứ hai khỏi tham số đầu tiên
bcmui () Tương tự như bcadd (), ngoại trừ việc nó trả về kết quả của việc nhân các tham số của nó
bcdiv () Tương tự như bcadd (), ngoại trừ việc nó trả về kết quả chia tham số đầu tiên cho tham số thứ hai
bcmod () Trả về mô đun (phần còn lại) của phép chia tham số đầu tiên cho tham số thứ hai. Vì giá trị trả về thuộc kiểu số nguyên nên hàm không nhận tham số có ký hiệu hệ số tỷ lệ
bcpow () Tăng tham số đầu tiên lên công suất được chỉ định bởi tham số thứ hai. Số vị trí thập phân trong kết quả được xác định bởi hệ số tỷ lệ, nếu được chỉ định.
bcsqrt () Trả về căn bậc hai của một tham số với số vị trí thập phân được chỉ định bởi giá trị của hệ số tỷ lệ tùy chọn
bcscale () Đặt hệ số tỷ lệ mặc định cho các lần gọi tiếp theo đến hàm BC

Hầu hết các hàm này lấy hệ số tỷ lệ tùy chọn (số nguyên) làm tham số cuối cùng, xác định bao nhiêu chữ số thập phân trong kết quả. Nếu không có tham số nào như vậy được chỉ định, thì hệ số tỷ lệ mặc định được sử dụng làm hệ số tỷ lệ, do đó có thể được đặt bằng cách gọi hàm bcscale (). Giá trị mặc định cho giá trị mặc định này (nghĩa là giá trị được sử dụng nếu tập lệnh không sử dụng lệnh gọi hàm bcscale ()) cũng có thể được đặt trong tệp khởi tạo php.ini.

Sau đây là một ví dụ về việc sử dụng một hàm chính xác tùy ý để thực hiện chính xác các phép toán số học số nguyên. Đang thực thi đoạn mã sau:

Mã PHP cho ($ x = 1; $ x< 25; $x++) { echo "$x$ x= ".bcpow ($ x, $ x)."
"; }
Tính toán chính xác các đại lượng thiên văn với hàm BC

Nếu kiểu số nguyên PHP thông thường được sử dụng cho các phép tính này, thì hiện tượng tràn số nguyên sẽ xảy ra rất lâu trước khi kết thúc phép tính, vì vậy phần còn lại của vòng lặp sẽ được thực hiện để nhận được số dấu phẩy động gần đúng.

Mảng Xử lý biểu mẫu 1 2 3 4 5 6 7 8 9 10

Cập nhật lần cuối: 1.11.2015

Trong PHP, chúng ta có thể sử dụng các toán tử khác nhau: số học, logic, v.v. Chúng ta hãy xem xét từng loại hoạt động.

Các phép tính toán học

    + (phép toán cộng)

    Ví dụ: $ a + 5

    - (phép tính trừ)

    Ví dụ: $ a - 5

    * (phép nhân)

    Ví dụ: $ a * 5

    / (phân công)

    Ví dụ: $ a / 5

    % (lấy phần còn lại của phép chia)

    Ví dụ: $ a = 12; echo $ a% 5; // bằng 2

    ++ (giá trị gia tăng / tăng dần từng một)

    Ví dụ ++ $ a

    Điều quan trọng là phải hiểu sự khác biệt giữa ++ $ a và $ a ++. Ví dụ:

    $ a = 12; $ b = ++ $ a; // $ b là 13 echo $ b;

    Ở đây, đầu tiên, một giá trị được thêm vào giá trị của biến $ a, và sau đó giá trị của nó tương đương với biến $ b. Sẽ khác nếu biểu thức trông giống như sau: $ b = $ a ++; ... Ở đây, đầu tiên giá trị của biến $ a được tương đương với biến $ b, sau đó giá trị của biến $ a được tăng lên.

    - (giảm / giảm giá trị một)

    Ví dụ - $ a. Ngoài ra, như trong trường hợp số tăng, có hai loại ký hiệu: - $ a và $ a--

Hoạt động chuyển nhượng

    Đặt một biến thành một giá trị cụ thể: $ a = 5

    Phép cộng theo sau là phép gán kết quả. Ví dụ: $ a = 12; $ a + = 5; echo $ a; // bằng 17

    Phép trừ theo sau là phép gán kết quả. Ví dụ: $ a = 12; $ a - = 5; echo $ a; // bằng 7

    Phép nhân theo sau là phép gán kết quả: $ a = 12; $ a * = 5; echo $ a; // bằng 60

    Phép chia theo sau là phép gán kết quả: $ a = 12; $ a / = 5; echo $ a; // bằng 2,4

    Nối các chuỗi với phép gán kết quả. Áp dụng cho hai dòng. Nếu các biến không lưu trữ chuỗi, nhưng, ví dụ, số, thì giá trị của chúng được chuyển đổi thành chuỗi và sau đó hoạt động được thực hiện: $ a = 12; $ a. = 5; echo $ a; // bằng 125 // trùng với $ b = "12"; $ b. = "5"; // bằng 125

    Lấy phần còn lại từ phép chia với phép gán tiếp theo của kết quả: $ a = 12; $ a% = 5; echo $ a; // bằng 2

Các phép toán so sánh

Các phép toán so sánh thường được sử dụng trong cấu trúc có điều kiện, khi cần so sánh hai giá trị và tùy thuộc vào kết quả của phép so sánh mà thực hiện một số hành động. Các thao tác so sánh sau đây có sẵn.

    Toán tử bình đẳng so sánh hai giá trị và nếu chúng bằng nhau, nó trả về true, ngược lại, nó trả về false: $ a == 5

    Toán tử nhận dạng cũng so sánh hai giá trị và nếu chúng bằng nhau, nó trả về true, ngược lại, nó trả về false: $ a === 5

    So sánh hai giá trị và nếu chúng không bằng nhau, trả về true, ngược lại trả về false: $ a! = 5

    So sánh hai giá trị và nếu chúng không bằng nhau, trả về true, ngược lại trả về false: $ a! == 5

    So sánh hai giá trị và nếu giá trị đầu tiên lớn hơn giá trị thứ hai, nó trả về true, ngược lại trả về false: $ a> 5

    So sánh hai giá trị và nếu giá trị đầu tiên nhỏ hơn giá trị thứ hai, nó trả về true, ngược lại, trả về false: $ a< 5

    So sánh hai giá trị và nếu giá trị đầu tiên lớn hơn hoặc bằng giá trị thứ hai, nó trả về true, ngược lại, trả về false: $ a> = 5

    So sánh hai giá trị và nếu giá trị đầu tiên nhỏ hơn hoặc bằng giá trị thứ hai, nó trả về true, ngược lại, trả về false: $ a<= 5

Nhà điều hành Bình đẳng và Danh tính

Cả hai toán tử đều so sánh hai biểu thức và trả về true nếu các biểu thức bằng nhau. Nhưng có sự khác biệt giữa chúng. Nếu hai giá trị của các kiểu khác nhau được sử dụng trong phép toán bình đẳng, thì chúng được giảm xuống còn một - giá trị mà trình thông dịch thấy là tối ưu. Ví dụ:

Rõ ràng, các biến lưu trữ các giá trị khác nhau thuộc các kiểu khác nhau. Nhưng khi so sánh, chúng sẽ được giảm xuống cùng một loại - số. Và biến $ a sẽ được giảm xuống con số 22. Và cuối cùng, cả hai biến sẽ bằng nhau.

Hoặc, ví dụ, các biến sau đây cũng sẽ bằng nhau:

$ a = sai; $ b = 0;

Để tránh những trường hợp như vậy, phép toán tương đương được sử dụng, không chỉ tính đến giá trị mà còn tính đến kiểu của biến:

$ a = "22a"; $ b = 22; if ($ a === $ b) echo "bằng"; else echo "không bằng";

Bây giờ các biến sẽ không bằng nhau.

Các toán tử bất đẳng thức! = Và! == hoạt động tương tự.

Các phép toán logic

Các phép toán boolean thường được sử dụng để kết hợp các kết quả của hai phép toán so sánh. Ví dụ, chúng ta cần thực hiện một hành động nhất định nếu một số điều kiện là đúng. Các phép toán logic sau có sẵn:

    Trả về true nếu cả hai thao tác so sánh đều trả về true, ngược lại trả về false: $ a == 5 && $ b = 6

    Tương tự với &&: $ a == 5 và $ b> 6

    Trả về true nếu ít nhất một phép toán so sánh trả về true, ngược lại trả về false: $ a == 5 || $ b = 6

    Tương tự với phép toán || : $ a< 5 or $b > 6

    Trả về true nếu hoạt động so sánh trả về false:! ($ A> = 5)

    Trả về true nếu chỉ một trong các giá trị là true. Nếu cả hai đều đúng hoặc không đúng, trả về sai. Ví dụ: $ a = 12; $ b = 6; if ($ a xor $ b) echo "true"; khác echo "sai";

    Ở đây kết quả của phép toán boolean sẽ là false, vì cả hai biến đều có một giá trị nhất định. Hãy thay đổi mã:

    $ a = 12; $ b = NULL; if ($ a xor $ b) echo "true"; khác echo "sai";

    Ở đây, kết quả sẽ là true, vì giá trị của một biến không được đặt. Nếu một biến là NULL, thì trong các phép toán logic, giá trị của nó sẽ được coi là sai

Hoạt động bitwise

Các phép toán theo chiều bit được thực hiện trên các bit riêng lẻ của một số. Các số được xem xét trong biểu diễn nhị phân, ví dụ, 2 trong biểu diễn nhị phân 010, số 7 - 111.

    & (phép nhân logic)

    Phép nhân được thực hiện từng bit, và nếu cả hai toán hạng đều có giá trị bit bằng 1 thì phép toán trả về 1, ngược lại trả về số 0. Ví dụ: $ a1 = 4; // 100 $ b1 = 5; // 101 echo $ a1 & $ b1; // bằng 4

    Ở đây, số 4 trong hệ nhị phân là 100 và số 5 là 101. Nhân các số lên từng bit và nhận được (1 * 1, 0 * 0, 0 * 1) = 100, tức là số 4 trong hệ thập phân định dạng.

    | (phép cộng hợp lý)

    Nó trông giống như phép nhân logic, hoạt động cũng được thực hiện trên các chữ số nhị phân, nhưng bây giờ một được trả về nếu ít nhất một số trong chữ số đã cho có một. Ví dụ: $ a1 = 4; // 100 $ b1 = 5; // 101 echo $ a1 | $ b1; // bằng 5

    ~ (phủ định lôgic)

    Đảo ngược tất cả các chữ số: nếu giá trị của chữ số là 1 thì nó sẽ bằng 0 và ngược lại. $ b = 5; tiếng vang ~ $ b;

    NS<

    x >> y - dịch số x sang phải bởi chữ số y. Ví dụ: 16 >> 1 dịch chuyển số 16 (là 10.000 trong hệ nhị phân) sang phải một chữ số, nghĩa là nó kết thúc bằng 1000 hoặc 8 trong hệ thập phân

Nối các chuỗi

Toán tử dấu chấm được sử dụng để nối các chuỗi. Ví dụ: hãy nối một số dòng:

$ a = "Xin chào,"; $ b = "thế giới"; echo $ a. $ b. "!";

Nếu các biến không đại diện cho chuỗi, nhưng các kiểu khác, ví dụ, số, thì giá trị của chúng được chuyển đổi thành chuỗi và sau đó thao tác nối chuỗi cũng xảy ra.

Các phép toán logic tồn tại trong tất cả các ngôn ngữ lập trình và PHP không phải là một ngoại lệ. Ngoài các phép chia, nhân, cộng hoặc trừ đơn giản, còn có các phép chia số nguyên và số dư, mà bây giờ chúng ta sẽ nói đến và cũng phân tích chúng bằng cách sử dụng các ví dụ chi tiết.

Phép chia số nguyên là kết quả của phần nguyên của phép chia. Ví dụ, nếu chúng ta chia 5 cho 2, chúng ta nhận được 2, không phải 2,5.

Với sự phân chia còn lại, mọi thứ đều khác. Đây là kết quả của phần còn lại của một phép chia cho một số nguyên. Ví dụ, chia cùng năm, bạn không nhận được 2, mà là 1, bởi vì chia 5 cho 2, chúng ta nhận được 2, và phần còn lại vẫn là 1.

Cách thực hiện phép chia số nguyên trong PHP

Ví dụ, trong Python, phép chia này được thực hiện bằng một toán tử đơn giản: "//".

Và trong PHP sẽ không dễ dàng như vậy để thực hiện điều này, nhưng quá trình này vẫn không đòi hỏi kiến ​​thức thừa về ngôn ngữ.

Hãy đưa ra một ví dụ về cách điều này có thể được thực hiện.

V PHP Phiên bản thứ bảy của hàm trông như thế này:

Intdiv ();

Trong phiên bản cũ hơn, chức năng tương tự như sau:

Ngoài ra còn có một cách cho tất cả các phiên bản:

Sàn nhà ();

Làm thế nào để đăng ký?

Ví dụ, hãy lấy chức năng đầu tiên, tất cả các chức năng còn lại được thực hiện theo cùng một cách.

$ result = intdiv (10, 3); echo $ kết quả;

Phân chia còn lại trong PHP

Để in phần còn lại số nguyên của một phép chia thành PHP, chỉ cần đặt toán tử "%".

$ i = 10% 3; echo $ i;

Như chúng ta thấy, mọi thứ khá đơn giản và không cần giải thích dài dòng.

Bạn có thể nộp đơn ở đâu?

Kiến thức về phép chia số nguyên trong PHP sẽ rất hữu ích nếu bạn cần so sánh hai số, tạo số lật (một bài tập phổ biến), hoặc, ví dụ, một chương trình có tên FizzBuzz. Bản chất của nó là bạn phải viết một chu kỳ từ 1 đến 100, chia mỗi số cho 3 và 5. Nếu số chia 3 cho 0 dư, thì chúng ta viết Fizz, nếu chia cho 5 thì Buzz, và nếu chia cả 5 và 3, chúng ta nhận được 0 ở phần dư, thì chúng ta viết FizzBuzz. Đây là một cuộc phỏng vấn việc làm rất phổ biến. Nếu bạn đã tự mình làm điều đó, thì bạn có thể tự hào về chính mình.

Hoặc, ví dụ, chúng ta phải suy ra tất cả các số của nó từ số 452 (4, 5, 2).

Phần kết luận

Tất nhiên, phép chia số nguyên và phần dư rất hữu ích và xảy ra khá thường xuyên, chúng không thuận tiện để sử dụng như trong Python, nhưng vẫn quan trọng.

Bây giờ bạn đã tiến gần hơn một bước đến việc học ngôn ngữ lập trình PHP, và trong tương lai, bạn sẽ càng trở nên gần gũi hơn nếu cùng nhau vượt qua khó khăn bằng sự siêng năng.