การดำเนินการกับการเปลี่ยนแปลง PHP (ตัวดำเนินการ) การกระทืบจำนวนและการดำเนินการทางคณิตศาสตร์ใน PHP เสร็จสมบูรณ์

โกลอฟนา / ข้อมูลคอริสนา

โปรแกรมที่จำเป็นต้องสร้างการคำนวณเชิงตัวเลข ทางวิทยาศาสตร์ หรือทางสถิติขั้นสูง ไม่น่าจะมองว่าสถานการณ์ทางอินเทอร์เน็ตของฉันเป็นตัวเลือกที่น่าดึงดูดสำหรับตำแหน่งนี้ อย่างไรก็ตาม แม้จะกล่าวไปแล้วทั้งหมด PHP ก็มีชุดฟังก์ชันที่ยอดเยี่ยมซึ่งจะครอบคลุมงานทางคณิตศาสตร์ส่วนใหญ่ที่เกิดขึ้นในกระบวนการสร้างสคริปต์สำหรับอินเทอร์เน็ต นอกจากนี้ ภาษา PHP ยังมอบความสามารถขั้นสูงหลายประการ เช่น เลขคณิตที่มีความแม่นยำสูง รวมถึงคุณสมบัติของไลบรารีแฮชและไลบรารีการเข้ารหัส

นักพัฒนาภาษา PHP ได้นำแนวทางเบื้องต้นมาใช้อย่างสมบูรณ์ และไม่ได้ทำการทดสอบบ่อยครั้งเพื่อเรียกใช้ล้อที่กำหนดสำหรับเครื่องหมายที่กำหนดอีกครั้ง ทางด้านขวามือ มีฟังก์ชันทางคณิตศาสตร์พื้นฐานมากมายที่พบใน PHP และเป็นเพียงการล้อมฟังก์ชันอะนาล็อกของฟังก์ชันเหล่านี้ใน C

การดำเนินการทางคณิตศาสตร์

การดำเนินการทางคณิตศาสตร์ส่วนใหญ่ใน PHP ของเราเกิดขึ้นในรูปแบบของฟังก์ชัน มากกว่าในรูปแบบของการดำเนินการ นอกเหนือจากการดำเนินการอัปเดตแล้ว PHP ยังใช้การดำเนินการห้ารายการในการดำเนินการทางคณิตศาสตร์อย่างง่าย เช่นเดียวกับการดำเนินการทางลัดที่ช่วยให้คุณสามารถเพิ่มนิพจน์ส่วนเพิ่มและส่วนลดที่สั้นลงได้ เช่นเดียวกับการกำหนด

การดำเนินการทางคณิตศาสตร์

การดำเนินการทางคณิตศาสตร์พื้นฐานห้ารายการประกอบด้วยการดำเนินการที่นำมาใช้ในเครื่องคิดเลขมัลติฟังก์ชั่น รวมถึงการดำเนินการ submodulo (%) คำอธิบายสั้น ๆ ของการดำเนินการทางคณิตศาสตร์มีอยู่ในตาราง:

การดำเนินการทางคณิตศาสตร์
การดำเนินการ คำอธิบาย
+ หมุนผลรวมของค่าของตัวถูกดำเนินการสองตัว
- เนื่องจากมีตัวถูกดำเนินการสองตัว ค่าของตัวถูกดำเนินการทางขวาจึงถูกหารด้วยค่าของตัวถูกดำเนินการทางซ้าย หากไม่มีตัวถูกดำเนินการทางขวา การดำเนินการจะหมุนค่าของตัวถูกดำเนินการด้วยเครื่องหมายย้อนกลับ
* หมุนค่าของตัวถูกดำเนินการสองตัว
/ หมุนผลลัพธ์จุดลอยตัวของค่าของตัวถูกดำเนินการทางซ้ายด้วยค่าของตัวถูกดำเนินการทางขวา
% หมุนส่วนเกินของค่าทั้งหมดของตัวถูกดำเนินการทางซ้ายด้วยค่าสัมบูรณ์ของตัวถูกดำเนินการทางขวา

เมื่อการดำเนินการทางคณิตศาสตร์ที่อธิบายไว้สามรายการแรก (+,-,*) ถูกลบออกจากโปรแกรม การติดตามจะถูกเพิ่ม ดังนั้นเมื่อการดำเนินการเหล่านี้ถูกลบ จะมีการสร้างค่าจุดทศนิยมแบบขยายที่มีความแม่นยำเพิ่มขึ้นหรือมีจำนวนมากขึ้น สิ่งสำคัญที่ควรทราบ: ถ้าตัวถูกดำเนินการของการดำเนินการเป็นเลขจำนวนเต็ม ผลลัพธ์จะเป็นเลขจำนวนเต็ม และถ้าคุณต้องการให้ตัวถูกดำเนินการตัวใดตัวหนึ่งเป็นตัวเลขทศนิยมที่มีความแม่นยำสองเท่า ผลลัพธ์ก็คือจุดลอยตัว ตัวเลขที่มีความแม่นยำสูง ส่วนขยายประเภทเดียวกันนี้จะมีให้ในระหว่างการดำเนินการขั้นสุดท้ายของส่วนย่อย นอกจากนี้ยังมีผลกระทบเพิ่มเติมที่ทำให้ผลลัพธ์กลายเป็นจำนวนจุดลอยตัวที่มีความแม่นยำเพิ่มขึ้น เนื่องจากการหารจะไม่ทำงานหากไม่มีส่วนเกิน (ทั้งหมด)

การดำเนินการแบบโมดูโล (%) ในภาษา PHP ยอมรับตัวถูกดำเนินการจำนวนเต็ม และการดำเนินการนี้จำกัดอยู่ที่จำนวนจุดลอยตัวที่มีความแม่นยำต่ำกว่า และตัวเลขจะถูกแปลงเป็นจำนวนเต็มในขั้นแรก (โดยใช้ส่วนช็อตที่กำหนด) ผลลัพธ์ของการดำเนินการดังกล่าวคือเลขจำนวนเต็ม

การดำเนินการเพิ่มและลด

สิ่งสำคัญคือไวยากรณ์ของภาษา PHP จะต้องทำให้ง่ายขึ้นจากภาษา C และโปรแกรม C มีชื่อเสียงในด้านความรักในการเขียนและเขียนด้วยภาษา C การดำเนินการเพิ่มและลดค่าที่นำมาจากภาษา C ช่วยให้คุณสามารถแสดงนิพจน์ต่างๆ เช่น $count = $count + 1 ได้สั้นยิ่งขึ้น ซึ่งมักใช้ในโปรแกรม

การดำเนินการเพิ่ม (++) ใช้เพื่อเพิ่มหนึ่งให้กับค่าของการเปลี่ยนแปลง ซึ่งจะขยายการดำเนินการ และการดำเนินการลด (--) จะเพิ่มหนึ่งให้กับค่าของการเปลี่ยนแปลง

ผิวหนังของการผ่าตัดทั้งสองนี้มีสองประเภท - คำต่อท้าย(ในรูปแบบนี้ เครื่องหมายของการดำเนินการจะอยู่ด้านหลังการเปลี่ยนแปลงโดยตรง ในขณะที่การดำเนินการขยายออกไป) และ คำนำหน้า(ในแบบฟอร์มนี้ สัญลักษณ์ของการดำเนินการจะถูกวางไว้ด้านหน้าการเปลี่ยนแปลงโดยตรง เมื่อมีการขยายการดำเนินการ) ทั้งสองประเภทที่แตกต่างกันอาจมีผลข้างเคียงเหมือนกันเมื่อเปลี่ยนค่าของการเปลี่ยนแปลงและการดำเนินการส่วนต่อท้ายและคำนำหน้าจะหมุนค่าที่แตกต่างกันเมื่อเป็นผลที่ตามมา การดำเนินการส่วนต่อท้ายทำงานในลักษณะที่ค่าที่เปลี่ยนแปลงได้มีการเปลี่ยนแปลงหลังจากหมุนค่าแล้ว และการดำเนินการของคำนำหน้าทำงานในลักษณะที่ค่ามีการเปลี่ยนแปลงในตอนแรก และจากนั้นค่าที่เปลี่ยนแปลงได้จะถูกหมุนอีกครั้งอย่างมีนัยสำคัญ ความสำคัญที่ระบุสามารถระบุได้โดยใช้การดำเนินการลดและเพิ่มที่กำหนดให้กับตัวดำเนินการ:

รหัสพีเอชพี $นับ = 0; $ผล = $นับ++; echo "ผลลัพธ์ของการเพิ่ม $count++: ".$result"
"; $count = 0; $result = ++$count; echo "ผลลัพธ์ของการเพิ่มจำนวน ++$: ".$result"
";

ตัวดำเนินการต่อไปนี้จะสร้างไอคอนถัดไปในหน้าต่างเบราว์เซอร์:

การดำเนินการเพิ่มขึ้น

ในแอปพลิเคชันนี้ ตัวดำเนินการ $result = $count++ จะเทียบเท่ากับตัวดำเนินการโดยสมบูรณ์:

รหัสพีเอชพี $ผล = $นับ; $นับ = $นับ + 1;

ลำดับของตัวดำเนินการ $result = ++$count เทียบเท่ากับตัวดำเนินการต่อไปนี้:

รหัสพีเอชพี $นับ = $นับ +1; $ผล = $นับ;

ปฏิบัติการที่ได้รับมอบหมาย

การดำเนินการเพิ่ม (และลด) ช่วยให้คุณสามารถเปลี่ยนรหัสที่จำเป็นในการเพิ่มรหัสหนึ่งให้กับค่าของการเปลี่ยนแปลง แต่ไม่อนุญาตให้ใช้ความเร็วของรหัสที่ได้รับการเปลี่ยนแปลงซึ่งเป็นผลมาจากการเพิ่มค่าให้กับตัวเลขอื่นหรือผลลัพธ์ ของการคำนวณการดำเนินการทางคณิตศาสตร์อื่นๆ โชคดีที่การดำเนินการทางคณิตศาสตร์ทั้งห้ารายการสามารถกำหนดให้กับการดำเนินการที่คล้ายกันได้ (+=, -=, *=, /= และ %=) ซึ่งช่วยให้คุณสามารถกำหนดการเปลี่ยนแปลงในนิพจน์สั้น ๆ เดียวให้กับผลลัพธ์ของการดำเนินการทางคณิตศาสตร์ที่อยู่เหนือค่า ของการเปลี่ยนแปลง ตัวอย่างเช่น โอเปอเรเตอร์

โค้ด PHP $count = $count * 3;

เราช่วยย่อการแนะนำตัวแบบนี้ให้สั้นลงได้ไหม

รหัส PHP $count *= 3;

ฟังก์ชันทางคณิตศาสตร์อย่างง่าย

ขั้นตอนต่อไปของการคอมไพล์โปรแกรม ซึ่งสอดคล้องกับข้อเท็จจริงที่ว่าการดำเนินการทางคณิตศาสตร์จะหยุดชะงัก จะนำไปใช้กับฟังก์ชันต่างๆ จำนวนมาก ฟังก์ชั่นช่วยให้คุณสามารถแก้ปัญหาต่างๆ เช่น การแปลงจากประเภทตัวเลขหนึ่งไปเป็นอีกประเภทหนึ่ง (บทความ div “ประเภทข้อมูล”) และการค้นหาจำนวนต่ำสุดและสูงสุดของชุดตัวเลข ตารางต่อไปนี้แสดงฟังก์ชันทางคณิตศาสตร์อย่างง่าย:

ฟังก์ชันคณิตศาสตร์ PHP อย่างง่าย
การทำงาน คำอธิบาย
พื้น() ใช้พารามิเตอร์จริงตัวเดียว (โดยปกติจะเป็นตัวเลขทศนิยมที่มีความแม่นยำแปรผัน) และหมุนจำนวนเต็มที่ใหญ่ที่สุดที่เล็กกว่าหรือเก่ากว่าพารามิเตอร์จริง (ปัดเศษลง)
เพดาน() ฟังก์ชันเหล่านี้ย่อมาจากคำว่าเพดาน ฟังก์ชันใช้พารามิเตอร์จริงตัวเดียว (โดยปกติจะเป็นจำนวนจุดลอยตัวที่มีความแม่นยำสูง) และหมุนจำนวนเต็มที่น้อยที่สุดซึ่งมากกว่าหรือต่ำกว่าพารามิเตอร์จริง (ปัดเศษขึ้น)
กลม() ใช้พารามิเตอร์จริงตัวเดียว (ค่าคือจำนวนจุดลอยตัวของความแม่นยำของตัวแปร) แล้วหมุนจำนวนเต็มที่ใกล้ที่สุด
เอบีเอส() ค่าสัมบูรณ์ของตัวเลข ถ้าพารามิเตอร์จริงที่เป็นตัวเลขมีค่าเป็นลบ ฟังก์ชันจะหมุนจำนวนบวก ถ้าพารามิเตอร์จริงเป็นค่าบวก ฟังก์ชันจะหมุนพารามิเตอร์จริงเอง
นาที() ยอมรับพารามิเตอร์จริงที่เป็นตัวเลขจำนวนมาก (หรืออย่างน้อยหนึ่งรายการ) และหมุนค่าน้อยที่สุดของค่าพารามิเตอร์จริงทั้งหมด
สูงสุด() ยอมรับพารามิเตอร์จริงที่เป็นตัวเลขได้มากเท่าๆ กัน (หรืออย่างน้อยหนึ่งตัว) และหมุนค่าที่ใหญ่ที่สุดของพารามิเตอร์จริง

ตัวอย่างเช่น ผลลัพธ์ของไวรัสผิวหนังมีอายุมากกว่า 3 ค่าที่เหลือของไวรัสผิวหนังเมื่อคลิกฟังก์ชันก็เก่ากว่า 3 เช่นกัน:

รหัสพีเอชพี $result = min(3, abs(-3), max(round(2.7), ceil(2.3), floor(3.9))));

Viroblennya ของหมายเลข vipadkovyh

ใน PHP มีตัวสร้างตัวเลขสุ่มสองตัว (คลิกที่นี่เพื่อดูฟังก์ชันเพิ่มเติม แรนด์()і mt_rand()- ฟังก์ชั่นสามประการที่มีความสำคัญเท่ากันนั้นสัมพันธ์กับสกินของเครื่องกำเนิดเหล่านี้: ฟังก์ชั่นการตั้งค่าซัง ( แซนด์()і mt_srand()) ฟังก์ชันนั้นเองเป็นฟังก์ชันที่เลือกจำนวนเต็มที่ใหญ่ที่สุดที่ตัวสร้างสามารถหมุนได้ (( รับแกรนด์แม็กซ์()і mt_getrandmax()- ฟังก์ชัน getrandmax() และ mt_getrandmax() จะหมุนค่าของตัวเลขที่ใหญ่ที่สุดที่สามารถหมุนได้โดย rand() หรือ mt_rand() บนแพลตฟอร์ม Windows ค่านี้จะถูกล้อมรอบด้วยค่า 32768

ตัวเลือกฟังก์ชันเฉพาะสำหรับการสร้างตัวเลขตัวแปรเสมือน เช่น ฟังก์ชัน rand() สามารถพบได้ในไลบรารีที่ใช้ในการคอมไพล์ล่าม PHP นอกจากนี้ ในตัวสร้าง mt_rand() มักจะใช้ฟังก์ชันการสร้างตัวเลขตัวแปรหลอก (mt - ย่อมาจาก Mersenne Twister) เสมอ และผู้เขียนเอกสารการปฏิบัติงานสำหรับฟังก์ชัน mt_rand() ยืนยันว่าฟังก์ชันนี้ มันยัง มีความเร็วและความเร็วมากขึ้น (จากมุมมองของการเข้ารหัส) ไม่มีแรนด์ ()

เมื่อใช้ PHP เวอร์ชันต่างๆ สำหรับแพลตฟอร์มที่แตกต่างกัน ดูเหมือนว่าฟังก์ชัน rand() และ mt_rand() จะสร้างตัวเลขที่ดูน่าพึงพอใจ โดยไม่ได้ระบุค่าดั้งเดิมก่อน คุณไม่ควรไว้วางใจศัตรูเช่นนี้ ประการแรก โปรแกรมที่มีฟังก์ชันสร้างตัวเลขสุ่มโดยไม่ต้องระบุค่า cob นั้นง่ายต่อการถ่ายโอนไปยังแพลตฟอร์มอื่น และกล่าวอีกนัยหนึ่งคือรับประกันการทำงานที่เชื่อถือได้ของฟังก์ชันที่กำหนดโดยไม่ต้องระบุค่า cob

วิธีการทั่วไปในการระบุค่า cob สำหรับตัวสร้างตัวเลข cob ของ PHP (โดยใช้ฟังก์ชัน mt_srand() หรือ srand() มีดังต่อไปนี้:

รหัสพีเอชพี mt_srand((สองเท่า)ไมโครไทม์()*1000000);

ตัวดำเนินการนี้ระบุค่านาฬิกาของเครื่องกำเนิดไฟฟ้า เท่ากับจำนวนไมโครวินาทีที่ผ่านไปจนถึงชั่วโมงจากวินาทีที่เหลือทั้งหมด (การแคสต์ตัวดำเนินการนี้ให้พิมพ์ double นั้นไม่จำเป็น เนื่องจากฟังก์ชัน microtime() จะหมุนแถวที่ถือเป็นจำนวนเต็มในการคูณ และไม่ได้อยู่ในการดำเนินการของการส่งพารามิเตอร์ไปยังฟังก์ชัน) แนะนำให้อ่านและป้อนตัวดำเนินการ สำหรับการระบุค่า cob โดยระบุว่าฉันไม่ค่อยเข้าใจถึงความสำคัญของโอเปอเรเตอร์นี้ คุณสามารถวางโอเปอเรเตอร์นี้ไว้ที่ด้านสกินของ PHP เพียงครั้งเดียว ก่อนฟังก์ชันรอง mt_rand() หรือ rand() และโอเปอเรเตอร์นี้จะตรวจสอบให้แน่ใจว่าจุดที่ถูกต้องเปลี่ยนแปลง และจะไม่เปลี่ยนลำดับแบบสุ่มทันที

วิธีการเฉพาะในการรับค่าซังนี้ได้รับการพิจารณาอย่างลึกซึ้งโดย fakhivtsy เหล่านี้ ซึ่งจะเข้าใจความแตกต่างทั้งหมดของการสร้างตัวเลขความจุหลอกอย่างสมบูรณ์ เพื่อที่ว่าสำหรับทั้งหมดนั้น เราจะปราศจากผลลัพธ์ที่ดีที่สุดอีกครั้งจาก ความพยายามใดๆ ก็ตามของโปรแกรมเมอร์ อย่างน้อยมันก็ "ยุ่งยาก"

แน่นอนว่าฟังก์ชันการหมุนเลขจำนวนเต็มหลอกได้รับการออกแบบมาให้หมุนเฉพาะเลขจำนวนเต็ม และเลขจำนวนเต็มสุ่มจากช่วงที่กำหนดสามารถแปลงเป็นตัวเลขที่คล้ายกันโดยมีจุดลอยตัวได้อย่างง่ายดาย (เช่น ตัวเลขจากช่วงถึง ID 0.0 ถึง รวม 1.0) สำหรับไวรัสเพิ่มเติมบน rand() / getrandmax() หลังจากคำแนะนำเหล่านี้ ระยะสามารถปรับขนาดและทำลายได้ตามความจำเป็น ก้นชี้ต่ำ:

รหัสพีเอชพี // สมมติว่าเราต้องสร้างตัวเลขสุ่มจาก 100.0 ถึง 120.0 $random = 100.0 + 20.0 * mt_rand() / mt_getrandmax(); สะท้อน $ สุ่ม"
// สร้างจำนวนเต็ม (100 - 120) สะท้อนรอบ($สุ่ม);

ลองอัปเดตหน้าเว็บด้วยโค้ดนี้สองสามครั้งเพื่อเริ่มต้นสร้างตัวเลขสุ่ม

ค่าคงที่ทางคณิตศาสตร์

PHP เวอร์ชัน 4.0 มีค่าคงที่ทางคณิตศาสตร์เพียงค่าเดียว ตามที่อธิบายไว้ในเอกสารประกอบ - M_PI (ค่าของตัวเลข π ซึ่งแสดงเป็นจำนวนจุดลอยตัวที่มีความแม่นยำเท่ากัน) และตั้งแต่เวอร์ชัน PHP 4.0.2 เป็นต้นไป จะมีการนำเสนอค่าคงที่ใหม่ๆ มากมาย ค่าคงที่ใหม่เหล่านี้ส่วนใหญ่มีค่าไม่เกิน π (หรือมีค่าเป็นทวีคูณ) e (หรือมีค่าเป็นทวีคูณ) และขึ้นอยู่กับรากที่สองด้วย นอกจากนี้ ค่าคงที่เหล่านี้ยังมีอยู่ก่อนประเภทอื่นๆ ในรีลีสล่าสุด ด้วยเหตุผลหลายประการ รายการค่าคงที่ได้ลดลงอีกครั้งจนเหลือค่าคงที่ทางคณิตศาสตร์ที่ระบุจำนวนเท่าๆ กัน:

ค่าคงที่ทางคณิตศาสตร์ PHP
คงที่ คำอธิบาย
M_PI π
M_PI_2 พาย/2
M_PI_4 พาย/4
M_1_PI 1/π
M_2_PI 2/π
M_2_SQRTPI 2 / ตร.ม.(π)
ฉัน
M_SQRT2 ตารางวา(2)
M_SQRT1_2 1 / ตารางวา(2)
M_LOG2E ล็อก2(อี)
M_LOG10E บันทึก(จ)
M_LN2 ล็อก(2)
M_LN10 ล็อก(10)

การตรวจสอบรูปแบบตัวเลข

ภาษา PHP มีฟังก์ชันเล็กๆ ที่ให้คุณตรวจสอบความถูกต้องของการแทนตัวเลขได้ แม้ว่าจะมีการควบคุมประเภทอย่างกว้างขวางใน PHP ทุกวัน ขอแนะนำให้ดำเนินการตรวจสอบโค้ดเหล่านี้เมื่อจำเป็นเพื่อให้คุณสามารถทำนายลักษณะของผลลัพธ์ที่แยกออกมาได้ และเลือกวิธีที่สั้นที่สุด Ib ของพวกเขาด้วย การเตรียมการ

การตรวจสอบครั้งแรกและง่ายที่สุดใช้กับฟังก์ชันชัยชนะ is_numeric()- เช่นเดียวกับการแปลงอื่นๆ ส่วนใหญ่ ฟังก์ชัน is_numeric จะส่งกลับผลลัพธ์บูลีน - จริง หากพารามิเตอร์ถูกส่งผ่านเป็นข้อมูลตัวเลขประเภทใดๆ (แบบมีลายเซ็นหรือไม่ได้ลงนาม จำนวนเต็มหรือจุดลอยตัว) เนื่องจากมีความแตกต่างทางคณิตศาสตร์ เนื่องจากจะหมุนเวียนค่าที่อนุญาต ค่าตัวเลข

สำหรับฟังก์ชั่นเพิ่มเติม is_int()і is_floatคุณสามารถคำนวณจำนวนเป้าหมายและปืนลูกซองได้ การกลับรายการอีกสองครั้งและการพับสามครั้ง: ฟังก์ชัน is_finite()і is_อนันต์()อนุญาตให้การกลับตัวเดียวกันระบุชื่อ (และหมายเลขที่ท้ายหรือท้ายสุด) อย่างไรก็ตาม หากพูดอย่างเคร่งครัด ช่วงของค่าที่ฟังก์ชันเหล่านี้ถูกขยายจะต้องไม่รวมถึงความไม่สอดคล้องกันที่เกิดขึ้นจริง (และซึ่งสามารถยืนยันได้หรืออีกนัยหนึ่งคือ ตัวเลขใดที่อาจมีค่ามากอนันต์?) จำเป็นต้องเลือกระหว่างช่วงของค่าจุดลอยตัวที่อนุญาตในระบบเฉพาะ

ด้านล่างนี้คือก้นของ vikor ของฟังก์ชันเหล่านี้:

รหัสพีเอชพี is_numeric(4); // จริง is_numeric(25 - 6); // จริง is_numeric("25"); // จริง is_numeric("25 - 6"); // false is_int(4); // จริง is_int(4.2); // false is_int("4"); // false - ได้รับการตรวจสอบ, ตรวจสอบฟังก์ชันเพิ่มเติม is_numeric() is_float(4); // false is_float(4.0); // จริง is_float(M_PI); // จริง

การออกแบบระบบตัวเลขใหม่

เพื่อวัตถุประสงค์ในการแปลงค่าตัวเลขโดยตรงและย้อนกลับจากคำสั่งภายนอก พื้นฐานของระบบตัวเลข 10 จะถูกสร้างขึ้นในระบบภายใน นอกจากนี้ คุณสามารถบอกล่าม PHP ว่าคำสั่งปัจจุบัน ตัวเลขสูงสุดที่ระบุไว้ มีการใช้ขาตั้ง 8 (ซึ่งคุณต้องป้อนก่อนตัวเลขที่ต่อสาย 0) หรือเลขฐานสิบหกที่ระบุบนฐาน 16 (ซึ่งคุณต้องป้อนคำนำหน้า 0x ก่อนตัวเลข)

อย่างไม่น่าเชื่อหลังจากกลับตัวเลขจากข้อมูลภายนอกข้อมูลภายในจะถูกเก็บไว้ในหน่วยความจำในรูปแบบสองเท่าและการคำนวณทางคณิตศาสตร์และคณิตศาสตร์หลักทั้งหมดจะดำเนินการในระบบปฏิบัติการแทนที่ 2 นอกจากนี้ภาษา PHP ยังมี จำนวนฟังก์ชันในการแปลงตัวเลขให้เป็นหนึ่งซึ่งเป็นพื้นฐานของระบบการคำนวณก่อนอีกฟังก์ชันหนึ่ง ข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันคำแนะนำเหล่านี้อยู่ในตารางด้านล่าง:

หน้าที่ของการสร้างระบบตัวเลขขึ้นมาใหม่
การทำงาน คำอธิบาย
บินเดค() รับพารามิเตอร์อนุกรมตัวเดียว ซึ่งเป็นเลขจำนวนเต็มคู่ (ตัวเลขบนฐาน 2) และหมุนการแสดงอนุกรมของตัวเลขนี้ตามระบบตัวเลข 10
เดคบิน() คล้ายกับ BinDec() ยกเว้นว่าจะแปลงระบบตัวเลขจาก 10 เป็นระบบตัวเลขฐาน 2
ต.ค.ธ.ค.() คล้ายกับ BinDec() ยกเว้นว่าจะแปลงระบบเลขฐาน 8 เป็นระบบเลขฐาน 10
ธ.ค.ต.ค.() คล้ายกับ BinDec() ยกเว้นว่าจะแปลงระบบเลขฐาน 10 เป็นระบบเลขฐาน 8
เลขฐานสิบหก() คล้ายกับ BinDec() ยกเว้นว่าจะแปลงเลขฐาน 16 เป็นระบบเลขฐาน 10
DecHex() คล้ายกับ BinDec() ยกเว้นว่าจะแปลงระบบตัวเลข 10 เป็นระบบตัวเลข 16
base_convert() ยอมรับพารามิเตอร์แถว (ซึ่งแทนจำนวนเต็มที่เอื้อต่อการแปลง) และพารามิเตอร์จำนวนเต็มสองตัว (เอาต์พุตและฐาน) หมุนแถวเพื่อสร้างตัวเลขใหม่ ในแถวนี้ ตัวเลขที่สูงกว่า 9 (ตั้งแต่ 10 ถึง 35) จะแสดงด้วยสัญลักษณ์ a-z ฉันออกไปแล้ว และฉันจะโยนความผิดให้อยู่ระหว่าง 2-36

ฟังก์ชันทั้งหมดสำหรับการแปลงระบบตัวเลขเป็นฟังก์ชันที่มีวัตถุประสงค์พิเศษ เช่น การแปลงตัวเลขจากฐานหนึ่งไปยังอีกฐานหนึ่ง ผู้ร้ายคือฟังก์ชัน base_convert() ซึ่งยอมรับพารามิเตอร์เพิ่มเติมจากค่าของฐานเริ่มต้นและฐานผลลัพธ์

โปรดทราบว่าฟังก์ชันทั้งหมดสำหรับการแปลงระบบตัวเลขยอมรับพารามิเตอร์แถวและหมุนค่าสตริง หรือคุณสามารถแปลงพารามิเตอร์ตัวเลขได้สิบตัวและอาศัยการแปลงที่ถูกต้องของล่าม PHP กล่าวอีกนัยหนึ่งคือตัวเลือกในการใช้ DecBin("1234") และ DecBin(1234) เพื่อให้ได้ผลลัพธ์เดียวกัน

เลขชี้กำลังและลอการิทึม

ภาษา PHP มีฟังก์ชันเลขชี้กำลังและลอการิทึมมาตรฐานสองประเภท - สำหรับการทำงานในฐาน 10 และฐาน 10 (ดังแสดงในตาราง)

ใน PHP ฟังก์ชัน exp() ได้ถูกถ่ายโอนเพื่อส่งคืนตัวเลข e จากตัวบ่งชี้ขั้นตอน เช่นเดียวกับฟังก์ชันรายวันที่มีพารามิเตอร์เดียว ซึ่งสามารถใช้เพื่อส่งคืนตัวเลข 10 ไปยังตัวบ่งชี้ขั้นตอน สามารถใช้ฟังก์ชันนี้และฟังก์ชัน pow() ที่มีพารามิเตอร์สองตัว โดยตั้งค่า 10 เป็นพารามิเตอร์ตัวแรก

คุณจะพบว่าฟังก์ชันเอ็กซ์โพเนนเชียลและลอการิทึมที่มีการทดแทนนี้ให้ผลตอบแทนแบบหนึ่งต่อหนึ่งโดยการตรวจสอบเอกลักษณ์ของผลลัพธ์ดังนี้

รหัสพีเอชพี $test_449 = 449.0; $test_449 = ธาร(10, ประสบการณ์(log(log10($test_449)))))); เสียงก้อง "test_449 = $test_449"; // test_449 = 449

ฟังก์ชันตรีโกณมิติ

งานแปล PHP ของเรามีชุดฟังก์ชันตรีโกณมิติพื้นฐานมาตรฐาน ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่แสดงในตาราง:

ฟังก์ชันตรีโกณมิติ
การทำงาน คำอธิบาย
ปี่() ไม่ยอมรับพารามิเตอร์และหมุนเข้าใกล้ค่าของตัวเลข π (3.1415926535898) สามารถใช้แทนกันได้กับค่าคงที่ M_PI
บาป() ยอมรับพารามิเตอร์ตัวเลขเป็นเรเดียนและหมุนไซน์ของพารามิเตอร์ในรูปแบบของจำนวนจุดลอยตัวที่มีความแม่นยำเพิ่มขึ้น
คอส() ยอมรับพารามิเตอร์ตัวเลขเป็นเรเดียนและหมุนโคไซน์ของพารามิเตอร์ในรูปแบบของตัวเลขทศนิยมด้วยความแม่นยำที่เพิ่มขึ้น
สีแทน() ยอมรับพารามิเตอร์ตัวเลขในหน่วยเรเดียนและหมุนแทนเจนต์ของพารามิเตอร์ในรูปแบบของจำนวนจุดลอยตัวของความแม่นยำของตัวแปร
สิน() ยอมรับพารามิเตอร์ตัวเลขและหมุนส่วนโค้งของพารามิเตอร์เป็นเรเดียน ข้อมูลอินพุตต้องอยู่ในช่วง -1 ถึง 1 (ฟังก์ชันการปฏิเสธข้อมูลอินพุตที่อยู่นอกช่วงนี้จะส่งผลให้ปฏิเสธ NAN) ผลลัพธ์จะแตกต่างกันไปในช่วงตั้งแต่ -π/2 ถึง π/2
เอคอส() ยอมรับพารามิเตอร์ตัวเลขและหมุนโคไซน์ส่วนโค้งของพารามิเตอร์เป็นเรเดียน ข้อมูลอินพุตจะต้องอยู่ในช่วง -1 ถึง 1 (ฟังก์ชั่นการลบข้อมูลอินพุตที่อยู่นอกช่วงนี้คือการลบ NAN ผลลัพธ์จะอยู่ในช่วงตั้งแต่ 0 ถึง π
อาทัน() ยอมรับพารามิเตอร์ตัวเลขและหมุนอาร์กแทนเจนต์ของพารามิเตอร์เป็นเรเดียน ผลลัพธ์จะแตกต่างกันไปในช่วงตั้งแต่ -π/2 ถึง π/2

ด้านล่างนี้เป็นตัวอย่างของตารางพับสำหรับคำนวณฟังก์ชันตรีโกณมิติสำหรับฟังก์ชัน "มาตรฐาน":

รหัสพีเอชพี ฟังก์ชั่น display_trigonometry($func_array, $input_array) ( // ส่วนหัวของฟังก์ชัน echo " ";) เสียงสะท้อน"// ป้อนข้อมูลตาราง foreach($input_array as $input) ( echo " "; foreach($func_array เป็น $func) ( echo " ";) เสียงสะท้อน"";) เสียงสะท้อน"
ค่า/ฟังก์ชัน$ฟังก์ชั่น
".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));

ก้นของการใช้ฟังก์ชันตรีโกณมิติใน PHP

การลบค่าแทนเจนต์ที่มีขนาดใหญ่ (หรือไม่มีนัยสำคัญ) ออกไปนั้นเกิดจากการที่สัญญาณในทางทฤษฎีมีค่าเท่ากับศูนย์ แต่ในความเป็นจริงแล้วเศษส่วนจะแบ่งย่อยจากศูนย์เนื่องจากการปัดเศษ

การคำนวณด้วยความแม่นยำเพียงพอ (โดยใช้ฟังก์ชัน BC)

ประเภทจำนวนเต็มและประเภทจุดลอยตัวที่มีความแม่นยำแปรผันเหมาะสำหรับปัญหาทางคณิตศาสตร์ส่วนใหญ่ที่เกิดขึ้นในสถานการณ์ออนไลน์สำหรับอินเทอร์เน็ต เช่นเดียวกับการบันทึกข้อมูลสกิน และค่าที่แสดงโดยประเภทเหล่านี้จะถูกถ่ายโอนไปยังหน่วยความจำคอมพิวเตอร์ ดังนั้น ขนาดและความถูกต้องของการแสดงตัวเลขประเภทเหล่านี้ย่อมทำให้เกิดข้อจำกัด

อย่างบ้าคลั่ง ช่วงของค่าที่แน่นอนของประเภทเหล่านี้อาจอยู่ในสถาปัตยกรรมของคอมพิวเตอร์เซิร์ฟเวอร์ และค่าของตัวเลขจำนวนเต็มสามารถอยู่ในช่วงตั้งแต่ -2 31 -1 ถึง 2 31 -1 และตัวเลขที่มีจุดลอยตัวมี มีความแม่นยำต่ำกว่าและสามารถแสดงตัวเลขได้อย่างแม่นยำโดยประมาณ มีตั้งแต่ 13 ถึง 14 หลักที่สิบ ในทางกลับกัน สำหรับงานที่สูงขึ้น ซึ่งส่งผลให้มีช่วงข้อมูลที่กว้างขึ้นและมีความแม่นยำมากขึ้นในการถ่ายโอน PHP ของเรา ฟังก์ชันทางคณิตศาสตร์ที่มีความแม่นยำพอสมควร(เรียกอีกอย่างว่าฟังก์ชัน BC - ในนามของยูทิลิตี้การคำนวณที่มีความแม่นยำมาก โดยพิจารณาจากคุณสมบัติของระบบ Unix)

อาจกลายเป็นว่าฟังก์ชันที่มีความแม่นยำเพียงพอไม่รวมอยู่ในการคอมไพล์ล่าม PHP โดยเฉพาะอย่างยิ่งหากผู้ใช้ดำเนินการคอมไพล์ดังกล่าวอย่างอิสระ ซึ่งผู้ใช้จำเป็นต้องรู้ว่าในขั้นตอนนั้น จะต้องเปิดใช้งานห้องอาบน้ำการกำหนดค่าก่อน พารามิเตอร์คลังสินค้าของธง --เปิดใช้งาน-bcmath- หากต้องการตรวจสอบว่าใครมีสิทธิ์เข้าถึงฟังก์ชันที่ได้รับมอบหมาย ให้ลองคำนวณนิพจน์ bcadd("1", "1") หากข้อความเกี่ยวกับข้อผิดพลาดถูกลบออก ซึ่งเกี่ยวข้องกับฟังก์ชันที่ไม่ได้ระบุ คุณจะต้องกำหนดค่าการกำหนดค่าใหม่และคอมไพล์ล่าม PHP ใหม่

ในฟังก์ชัน BC ในฐานะพารามิเตอร์และค่าที่ถูกหมุน ไม่ใช่ประเภทตัวเลขที่มีค่าคงที่ที่กำหนด แต่เป็นแถวที่ถูกหมุน แฟรกเมนต์ในภาษา PHP ของแถว dovzhin ถูกจำกัดด้วยจำนวนหน่วยความจำที่มีอยู่ ตัวเลขที่ปรากฏในโครงร่างอาจส่งผลให้เกิด dowzhin การคำนวณหลักจะใช้เวลาหลายสิบปี และมีการคาดเดากันมากมายว่าผู้คนจะหนีไปได้อย่างไรด้วยความช่วยเหลือจากแกะและกระดาษ (เนื่องจากผู้คนสามารถตุนเทอร์พีนได้โดยเร็วที่สุด) ฟังก์ชัน BC ที่ทำงานด้วยตัวเลขจำนวนเต็มจะทำงานได้อย่างแม่นยำและช่วยให้คุณสามารถคำนวณตัวเลขได้มากเท่าที่จำเป็น และในฟังก์ชันที่ทำงานด้วยตัวเลขที่มีจุดที่ลอยอยู่ การคำนวณจะถูกคำนวณตามค่าที่ระบุอย่างแน่นอน ข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน BC สามารถพบได้ในตารางด้านล่าง:

ฟังก์ชันทางคณิตศาสตร์ที่มีความแม่นยำเพียงพอ (ฟังก์ชัน BC)
การทำงาน คำอธิบาย
bcadd() ยอมรับพารามิเตอร์ชุดข้อมูลสองตัวที่แสดงถึงตัวเลข และพารามิเตอร์จำนวนเต็มที่จำเป็นซึ่งแสดงถึงค่าตัวคูณมาตราส่วน หมุนผลรวมของพารามิเตอร์สองตัวแรกในมุมมองแถวด้วยจำนวนตำแหน่งที่สิบในผลลัพธ์ ซึ่งระบุโดยพารามิเตอร์พร้อมค่าของตัวคูณมาตราส่วน เนื่องจากพารามิเตอร์จะขึ้นอยู่กับค่าของตัวคูณสเกลไม่ใช่งาน งานจึงถูกแทนที่ด้วยตัวคูณสเกล
บีซีซับ() คล้ายกับ bcadd() ยกเว้นว่าจะหมุนผลลัพธ์ของพารามิเตอร์อื่นจากพารามิเตอร์แรก
บีซีมุย() คล้ายกับ bcadd() ยกเว้นว่าจะหมุนผลลัพธ์ของการคูณพารามิเตอร์
บีซีดิฟ() คล้ายกับ bcadd() ยกเว้นว่ามันจะหมุนผลลัพธ์ของพารามิเตอร์แรกไปยังอีกพารามิเตอร์หนึ่ง
บีซีเอ็มดี() หมุนโมดูล (ส่วนเกิน) จากส่วนย่อยของพารามิเตอร์แรกไปยังอีกพารามิเตอร์หนึ่ง ส่วนของค่าที่หมุนจะถูกแปลงเป็นประเภททั้งหมด ฟังก์ชันไม่ยอมรับพารามิเตอร์ที่มีค่าของตัวคูณสเกล
บีซีพาว() เพิ่มพารามิเตอร์แรกให้กับขั้นตอน โดยระบุพารามิเตอร์อื่น จำนวนตำแหน่งที่สิบในผลลัพธ์จะถูกระบุด้วยตัวคูณมาตราส่วนเช่นเดียวกับในงาน
bcsqrt() หมุนรากที่สองของพารามิเตอร์ในตำแหน่งที่สิบซึ่งสอดคล้องกับค่าของตัวคูณสเกลที่ไม่ผูกมัด
บีสเกล() ตั้งค่าปัจจัยมาตราส่วนสำหรับการคลิกครั้งถัดไปของฟังก์ชัน BC

ฟังก์ชันเหล่านี้ส่วนใหญ่ใช้พารามิเตอร์ที่เหลือเป็นปัจจัยสเกลที่ไม่ผูกมัด (จำนวนเต็ม) ซึ่งหมายความว่ามีตำแหน่งหนึ่งในสิบรวมอยู่ในผลลัพธ์ เนื่องจากพารามิเตอร์ดังกล่าวไม่ใช่งาน ดังนั้นตัวคูณมาตราส่วนจึงถูกใช้เพื่อกำหนดตัวคูณมาตราส่วน ซึ่งในทางกลับกันสามารถติดตั้งได้โดยใช้ฟังก์ชัน bcscale() ค่าที่ระบุสำหรับค่านี้ (ค่าที่กำหนดหากสคริปต์ไม่ขัดขวางการเรียกฟังก์ชัน bcscale()) ก็สามารถระบุได้ในไฟล์การเริ่มต้น php.ini เช่นกัน

ด้านล่างนี้เป็นตัวอย่างของฟังก์ชันไวคอร์ที่มีความแม่นยำเพียงพอสำหรับการคำนวณการคำนวณทางคณิตศาสตร์ทั้งหมดได้อย่างแม่นยำ รหัสที่น่ารังเกียจ Vikonanny:

รหัสพีเอชพี สำหรับ ($x = 1; $x< 25; $x++) { echo "$x$x= ".bcpow($x, $x)"
"; }
แม่นยำยิ่งขึ้นคือการคำนวณปริมาณทางดาราศาสตร์โดยใช้ฟังก์ชันเพิ่มเติม BC

หากเราคำนวณประเภทจำนวนเต็มของ PHP การแปลงจำนวนเต็มก็จะทำได้ดีก่อนสิ้นสุดการคำนวณ ดังนั้นในอีกส่วนหนึ่งของรอบการคำนวณ เราจึงใช้วิธีการหาจำนวนที่ใกล้ที่สุดโดยมีจุดลอยตัว .

การตัดแบบฟอร์ม Masivi 1 2 3 4 5 6 7 8 9 10

การดำเนินการเชิงตรรกะมีอยู่ในทุกภาษาการเขียนโปรแกรม PHPไม่มีตำหนิ นอกเหนือจากเรื่องง่ายๆ แล้ว การคูณ การบวก และความชัดเจนยังเกิดขึ้นในเรื่องที่เป็นตัวเลขและมากเกินไป ซึ่งตอนนี้เราจะพูดถึงและวิเคราะห์พวกมันด้วย vikoryst และก้นรายงาน

ชายเสื้อด้านในหมายถึงการแสดงส่วนทั้งหมดเป็นชายเสื้อ เช่น ถ้าเราหาร 5 ด้วย 2 เราก็ลบ 2 ไม่ใช่ 2.5

ด้วยความแตกแยกมากเกินไป ทุกสิ่งจึงแตกต่าง มีส่วนเกินด้านล่างเป็นจำนวนเต็ม ตัวอย่างเช่น โดยการหารห้าอันเดียวกัน คุณจะลบไม่ใช่ 2 แต่เป็น 1 ดังนั้น เมื่อหาร 5 ด้วย 2 เราจะลบ 2 แล้วบวก 1 เข้ากับส่วนเกิน

วิธีพิชิตฟิลด์ย่อยทั้งหมดใน PHP

ตัวอย่างเช่น ใน Python ฟิลด์ย่อยนี้ถูกกำหนดโดยใช้ตัวดำเนินการแบบง่าย: "//"

และใน PHPการหาเงินจะไม่ง่ายนัก แต่กระบวนการนี้ไม่อนุญาตให้คุณเรียนรู้เพิ่มเติมเกี่ยวกับภาษาของคุณ

มาดูกันว่าจะสามารถนำไปใช้ได้อย่างไร

ยู PHPในเวอร์ชันที่ 7 ฟังก์ชันจะมีลักษณะดังนี้:

Intdiv();

ในเวอร์ชันเก่า ฟังก์ชันนี้มีลักษณะดังนี้:

วิธีการเดียวกันนี้ใช้ได้กับทุกเวอร์ชัน:

พื้น();

จะจัดได้อย่างไร?

ตัวอย่างเช่น ลองใช้ฟังก์ชันแรกแล้วตัดสินใจว่าจะจบลงในลักษณะเดียวกันโดยประมาณ

$ผล = intdiv(10, 3); สะท้อน $ ผลลัพธ์;

PHP อ่อนแอเกินไป

เพื่อที่จะเอาส่วนเกินทั้งหมดออกจากพื้นไป PHPเพียงเพิ่มตัวดำเนินการ "%"

$i = 10% 3; เสียงสะท้อน $i;

เช่นเดียวกับบาชิโมะ ทุกสิ่งไม่จำเป็นต้องมีคำอธิบายเล็กๆ น้อยๆ

คุณจะซบเซาได้ที่ไหน?

ความรู้รอบด้านทั้งป PHPพวกมันจะมีสีสันมากยิ่งขึ้นหากคุณต้องการกลับตัวเลขสองตัว สร้างตัวเลขกลับหัว (เป็นที่นิยมทางด้านขวา) หรือตัวอย่าง โปรแกรมชื่อ FizzBuzz ประเด็นก็คือ คุณสามารถเขียนวงจรได้ตั้งแต่ 1 ถึง 100 ซึ่งหารแต่ละตัวเลขด้วย 3 และ 5 ถ้าตัวเลขหารด้วย 3 ให้ 0 เราจะเขียน Fizz ถ้ามันหารด้วย 5 แล้ว Buzz และถ้า เมื่อหาร і 5, і 3 แล้ว เราก็ลบ 0 ออกจากส่วนเกิน จากนั้นเราเขียน FizzBuzz นี่ยิ่งได้รับความนิยมมากขึ้นบนอินเทอร์เน็ต เมื่อคุณเขียนมันเอง คุณก็สามารถเขียนเกี่ยวกับตัวคุณเองได้

หรือเช่น เราสามารถใช้ตัวเลข 452 เพื่อพิมพ์ตัวเลขทั้งหมด (4, 5, 2)

วิสโนวอค

น่าแปลกที่ส่วนที่ซ้ำซ้อนของอบเชยและผลไม้ที่เหี่ยวเฉาออกมาบ่อยครั้ง และการเลือกพวกมันออกมาไม่ใช่เรื่องง่ายเหมือนใน Python แต่ก็ยังมีความสำคัญ

ตอนนี้คุณอยู่ใน croc ใกล้กับโปรแกรมวิดีโอแล้ว PHPและในอนาคตคุณจะใกล้ชิดยิ่งขึ้นเมื่อคุณเอาชนะความยากลำบากอย่างขยันขันแข็ง

การดำเนินการกับการเปลี่ยนแปลง PHP (ตัวดำเนินการ)

เพื่อจุดประสงค์นี้ ให้ใช้กลุ่มที่แตกต่างกัน

ตัวดำเนินการคือสิ่งที่ประกอบด้วยค่าหนึ่งค่าขึ้นไป (viraziv ตามที่กล่าวไว้ในศัพท์แสงการเขียนโปรแกรม) ซึ่งสามารถคำนวณเป็นค่าใหม่ได้ (ดังนั้นโครงสร้างทั้งหมดจึงถือเป็น viraz) ผลลัพธ์จะแสดงฟังก์ชันหรือโครงสร้างอื่นๆ ที่หมุนเวียนค่า (เช่น พิมพ์()) โดยผู้ปฏิบัติงานที่รับผิดชอบในการแก้โครงสร้างทางกายภาพ (เช่น เสียงสะท้อน()) เนื่องจากไม่ได้เปลี่ยนอะไรเลย

การดำเนินการทางคณิตศาสตร์ใน PHP

คุณจำการซุ่มโจมตีทางคณิตศาสตร์ของโรงเรียนได้ไหม? ย้ายตัวดำเนินการที่ต่ำกว่าทำสิ่งเดียวกัน

การดำเนินการภายใต้ ("/") จะหมุนประเภทคำพูดเสมอ ซึ่งหมายความว่าค่าจะเป็นจำนวนเต็ม (หรือแถวที่แปลงเป็นจำนวนเต็ม) มิฉะนั้นผลลัพธ์จะแตกต่างออกไป

การดำเนินการคำนวณส่วนเกินในส่วน” % ใช้งานได้กับจำนวนเต็มเท่านั้น ดังนั้นการย่อให้เป็นเศษส่วนอาจทำให้เกิดผลลัพธ์ที่ผิดได้

ซุ้มประตู Mozhlive vikoristannya ลำดับความสำคัญของการดำเนินการทางคณิตศาสตร์บางอย่างเหนือการดำเนินการอื่นๆ และการเปลี่ยนแปลงลำดับความสำคัญเมื่อส่วนโค้งของ vicoristan ในนิพจน์ทางคณิตศาสตร์สอดคล้องกับกฎทางคณิตศาสตร์พื้นฐาน

การดำเนินการเพิ่มและลด

PHP เช่นเดียวกับ C รองรับการเพิ่มและตัวดำเนินการคำนำหน้าและ postfix

ตัวดำเนินการ Postfix สำหรับการเพิ่มขึ้นและการลดลง

เช่นเดียวกับในภาษา ตัวดำเนินการเหล่านี้จะเพิ่มหรือเปลี่ยนค่าของตัวแปร และในภาษาให้หมุนค่าของตัวแปร $กก่อนการเปลี่ยนแปลง ตัวอย่างเช่น:

$a=10;
$ข=$a++;
เสียงก้อง "a=$a, b=$b"; // ป้อน a = 11, b = 10

อย่างที่คุณว่าข้าวโพดสด $ขได้รับคุณค่าของการเปลี่ยนแปลง $กแล้วที่เหลือก็เพิ่มขึ้น ดังนั้นจึงปรากฎว่ามีการกำหนดความหมายให้กับตัวแปร $ขมันอาจจะซับซ้อนมากขึ้น - เพิ่มขึ้นเมื่อใดก็ได้ $กจะมีเพิ่มเติมหลังจากการคำนวณนี้

ตัวดำเนินการคำนำหน้าสำหรับการเพิ่มขึ้นและการลดลง

นอกจากนี้ยังมีตัวดำเนินการเพิ่มและลดตามที่ระบุไว้ ไม่ใช่อยู่หลังชื่อของการเปลี่ยนแปลง แน่นอนว่าให้หมุนค่าของการเปลี่ยนแปลงหลังการเปลี่ยนแปลง ก้น:

$a=10;
$ข=--$ก;
เสียงก้อง "a=$a, b=$b"; // พิมพ์ a = 9, b = 9

การดำเนินการเพิ่มและลดการดำเนินการมักจะซบเซาในทางปฏิบัติ เช่น กลิ่นเหม็นจะสังเกตได้เกือบทุกรอบ สำหรับ .

เสียงสะท้อน "

การเพิ่มขึ้นภายหลัง

" ;
$a = 5;
echo "บูตหลัก 5:" . $a++. -
\n" ;

\n" ;

เอคโค่ "

เพิ่มคำนำหน้า

" ;
$a = 5;
echo "การบูตหลัก 6:" . ++$ก. -
\n" ;
echo "การบูตหลัก 6:" . $a -
\n" ;

เอคโค่ "

การลดลงภายหลัง

" ;
$a = 5;
echo "บูตหลัก 5:" . $a- . -
\n" ;

\n" ;

เอคโค่ "

คำนำหน้าลดลง

" ;
$a = 5;
echo "การบูตหลัก 4:" . - $ก. -
\n" ;
echo "การบูตหลัก 4:" . $a -
\n" ;
?>

การดำเนินการสตริง

PHP มีโอเปอเรเตอร์สองตัวสำหรับการทำงานเป็นแถว ประการแรกคือตัวดำเนินการต่อข้อมูล (".") ซึ่งจะหมุนการรวมกันของอาร์กิวเมนต์ด้านซ้ายและขวา อีกอันคือตัวดำเนินการมอบหมายที่มีการต่อข้อมูลซึ่งเพิ่มอาร์กิวเมนต์ที่ถูกต้องไปทางซ้าย เรามาชี้ประเด็นเฉพาะกัน:

$a = "สวัสดี";
$ข = $ก. "โลก!" - // $b วางแถว "Hello World!"

$a = "สวัสดี";
$a .= "โลก!" - // $a วางแถว "Hello World!"
?>

การดำเนินการระดับบิต

การดำเนินการเหล่านี้มีจุดมุ่งหมายสำหรับการดำเนินการ (การติดตั้ง/การกำจัด/การตรวจสอบ) ของกลุ่มการรบสำหรับการเปลี่ยนแปลงทั้งหมด บิตของจำนวนเต็มไม่มีอะไรมากไปกว่าตัวเลขของตัวเลขเดียวกันที่เขียนในระบบตัวเลขสองหลัก ตัวอย่างเช่น ในระบบคู่ เลข 12 ดูเหมือน 1100 และ 2 ดูเหมือน 10 ปรากฎว่า 12|2 ให้หมายเลข 14 แก่เรา (1110 สำหรับการเข้าสองครั้ง) หากการเปลี่ยนแปลงไม่ทั้งหมดก็แสดงว่าหมด
ในตอนแรกจะมีการปัดเศษ จากนั้นก่อนที่มันจะหยุดนิ่งด้วยตัวดำเนินการที่ต่ำกว่า

ในการแทนตัวเลขหนึ่งตัว จะใช้ 32 บิต:

  • 0000 0000 0000 0000 0000 0000 0000 0000 – ค่าศูนย์;
  • 0000 0000 0000 0000 0000 0000 0000 0001 – ce 1;
  • 0000 0000 0000 0000 0000 0000 0000 0010 – เซ 2;
  • 0000 0000 0000 0000 0000 0000 0000 0011 – เซส 3;
  • 0000 0000 0000 0000 0000 0000 0000 0100 – เซ 4;
  • 0000 0000 0000 0000 0000 0000 0000 0101 – TSE 5;
  • 0000 0000 0000 0000 0000 0000 0000 1111 - CE 15;

ตัวดำเนินการ Bitwise:

ก้น ชื่อ ผลลัพธ์
$a & $b บิตไวส์ "ฉัน" บิตเดียวที่ติดตั้งคือทั้ง $a และ $b
$a | $ข โปบิตอฟ "หรือ" บิตที่ติดตั้งไว้คือ $a หรือ $b
$a^$b Viklyuchne หรือ มีการติดตั้งเพียงสองบิต เนื่องจากติดตั้งเพียง $a หรือ $b เท่านั้น
~$ก จดทะเบียนแล้ว บิตเหล่านี้ได้รับการติดตั้งแล้ว แต่ไม่ได้ติดตั้งทั้ง $a หรืออย่างอื่น
$ก<< $b ด้านซ้ายถูกทำลาย บิตทั้งหมดของ $a ที่แลกเปลี่ยนได้จะถูกวางไว้ที่ตำแหน่ง $b ทางด้านซ้าย (ตำแหน่งสกินคือ “คูณด้วย 2”)
$ก >> $ข Zsuv ถนัดขวา บิตทั้งหมดของ $a ที่แลกเปลี่ยนได้จะถูกวางไว้ที่ตำแหน่ง $b ทางด้านขวา (ตำแหน่งสกินอาจถือว่า "หารด้วย 2")

การดำเนินการปรับระดับ

ตัวดำเนินการปรับสมดุล ดังที่ชื่อแนะนำ ช่วยให้คุณสามารถทำให้ค่าสองค่าเท่ากันได้

สิ่งเหล่านี้เป็นการดำเนินการที่เป็นเอกลักษณ์ของตัวเอง ดังนั้น ไม่ว่าอาร์กิวเมนต์ของพวกเขาจะเป็นประเภทใดก็ตาม พวกเขามักจะเปลี่ยนหนึ่งในสอง: เท็จหรืออย่างอื่น จริง- การดำเนินการปรับสมดุลช่วยให้คุณสามารถปรับค่าสองค่าให้เท่ากันระหว่างกันและหมุนเหมือนสมอง จริงและไม่มีทาง - เท็จ.

PHP ช่วยให้คุณสามารถเพิ่มตัวแปรสเกลาร์ได้ ไม่สามารถหมุนอาร์เรย์ของวัตถุใน PHP ได้ ไม่สามารถทำให้เท่ากันได้ (ด้วยความช่วยเหลือของตัวดำเนินการ ==) เว้นแต่ว่าการดำเนินการดังกล่าวจะดำเนินการใน PHP โดยไม่มีลำดับความสำคัญใด ๆ ดังนั้นเราจึงแปลกใจที่เมื่อเทือกเขาสองแห่งที่แตกต่างกันอย่างสิ้นเชิงต้องการความช่วยเหลือ == ดูจะแร็พ แต่เดาว่า ก่อนอีควอไลเซอร์คำสบประมาทก็แปลงเป็นคำพูด อาร์เรย์โดยเร็วที่สุดและเท่าเทียมกัน

ตื่นตาไปกับรายละเอียดเกี่ยวกับการอัพเกรดเทือกเขา

ตัวดำเนินการ:

ก้น ชื่อ ผลลัพธ์
$a == $ข ริฟโน จริงเพราะ $a เกี่ยวข้องกับ $b
$a === $b อย่างแน่นอน จริงเพราะ $a เกี่ยวข้องกับ $b และเป็นประเภทเดียวกัน (เพิ่มใน PHP 4)
$a != $b ไม่เปรียบเทียบ จริงเพราะ $a ไม่เกี่ยวข้องกับ $b
$ก<>$ข ไม่เปรียบเทียบ จริงเพราะ $a ไม่เกี่ยวข้องกับ $b
$a !== $b ไม่ใช่สิ่งเดียวกัน จริงเพราะ $a ไม่เหมือนกับ $b หรือเพราะมันมีกลิ่นต่างกัน (เพิ่มใน PHP 4)
$ก< $b เมนเช่ จริงเพราะ $a น้อยกว่า $b อย่างเคร่งครัด
$a > $b มากกว่า จริงถ้า $a มากกว่า $b อย่างเคร่งครัด
$ก<= $b โบราณมากหรือน้อย จริงเพราะ $a มีความสำคัญน้อยกว่าหรือมากกว่า $b
$a >= $b โบราณมากขึ้นหรือมากขึ้น จริงเพราะ $a ใหญ่กว่าหรือแพงกว่า $b

การดำเนินการเชิงตรรกะ

ตัวดำเนินการเชิงตรรกะจะรวมไว้สำหรับการทำงานกับเงื่อนไขเชิงตรรกะและการหมุนด้วย เท็จหรืออย่างอื่น จริง.

มาสร้างตารางตัวดำเนินการเชิงตรรกะ PHP กัน:

สิ่งสำคัญคือต้องทราบว่าการคำนวณนิพจน์เชิงตรรกะ ซึ่งเป็นสาเหตุที่ตัวดำเนินการดังกล่าวไปทางขวาเสมอ โดยที่ผลลัพธ์จึงชัดเจนอยู่แล้ว (ตัวอย่างเช่น เท็จ&&เป็นให้เสมอ เท็จ) จากนั้นการคำนวณจะถูกตัดออกไป ราวกับว่าไวรัสมีฟังก์ชันคลิก ตัวอย่างเช่น ในตัวดำเนินการ $logic = 0&&(time()>100); ฟังก์ชั่นมาตรฐาน เวลา()จะไม่ถูกเรียกเลย

ระวังการดำเนินการเชิงตรรกะ - อย่าลืมเกี่ยวกับการชนะสัญลักษณ์ เพื่อคืนความเคารพ เช่น | і || - โอเปอเรเตอร์สองตัวที่แตกต่างกันโดยสิ้นเชิง โดยตัวหนึ่งสามารถหมุนหมายเลขใดก็ได้ และอีกตัวหนึ่งเท่านั้น เท็จі จริง.

ตัวดำเนินการเพิ่มขึ้น (++) และลดลง (--) ไม่สามารถใช้ได้กับตัวแปรลอจิคัล

ตัวดำเนินการสมมูล

PHP เริ่มต้นจาก PHP4 มีตัวดำเนินการปรับสมดุลเหมือนกัน - เครื่องหมายสามเท่าของความเท่าเทียมกัน === ,
หรือตัวดำเนินการกลับรายการบน PHP สามารถทนต่อการตั้งค่าจนถึงจุดที่แถวถูกแปลงเป็นตัวเลขโดยปริยาย และเป็นเช่นนั้น
ตัวอย่างเช่น รหัสที่ไม่เหมาะสมแสดงให้เห็นว่าความหมายของการเปลี่ยนแปลงมีความสำคัญมากขึ้น:

$a=10;
$ข = "10";

และไม่สนใจคนที่ใจร้าย $กєหมายเลขและ $ข- แถว. ทีนี้มาดูก้นอื่นกัน:

$a=0; // โมฆะ
$ข = ""; // ตะเข็บเปล่า
if($a==$b) echo "ภูมิภาค a และ b"; // พิมพ์ "ภูมิภาค a และ b"

ฉันต้องการ $กі $ขเห็นได้ชัดว่าพวกเขาไม่กระตือรือร้นที่จะบอกความหมายทั่วไปของคำนี้ สคริปต์ประกาศว่ากำลังหลีกเลี่ยงกลิ่นเหม็น ทำไมคุณถึงตื่นเต้นมาก? ทางด้านขวาคือในขณะที่ตัวถูกดำเนินการตัวใดตัวหนึ่งของตัวดำเนินการเชิงตรรกะสามารถถือเป็นตัวเลขได้ ตัวถูกดำเนินการสองตัวสามารถถือเป็นตัวเลขได้ ในกรณีนี้ แถวว่างจะถูกแปลงเป็น 0 ซึ่งเท่ากับศูนย์ จึงไม่น่าแปลกใจที่ผู้ปฏิบัติงาน เสียงสะท้อนถาม.
ปัญหาถูกครอบงำโดยตัวดำเนินการสมมูล === (ความอิจฉาริษยาสามเท่า) มันเท่ากับคำจำกัดความทั้งสองหรือประเภทของคำเหล่านั้น มาเขียนตัวอย่างของเราใหม่จากเว็บไซต์ของโอเปอเรเตอร์นี้

PHP มีการดำเนินการทางคณิตศาสตร์ขั้นพื้นฐานทั้งหมด เนื่องจากตัวถูกดำเนินการสามารถใช้เป็นเป้าหมายได้ เช่นเดียวกับตัวเลขคำพูด

ตารางประกอบด้วยรายการตัวดำเนินการทางคณิตศาสตร์:
ผู้ดำเนินการเข้าสู่ระบบคำอธิบาย
โดดาวานยา + เพิ่มสองค่า
วิดนิมานยา - การเอาความหมายหนึ่งไปจากอีกความหมายหนึ่ง
การคูณ * คูณสองค่า
โพดิล / แบ่งค่าหนึ่งออกเป็นอีกค่าหนึ่ง
ลบส่วนเกินออกจากด้านล่าง % การแบ่งค่าหนึ่งไปยังอีกค่าหนึ่งและส่วนเกินกลับด้าน (หารด้วยโมดูลัส)
เพิ่มขึ้น ++ การย่อตัวเลขทีละหนึ่ง
ลดลง -- บันทึกทางลัดการเปลี่ยนตัวเลขทีละตัว
อูนาร์เน ซาเปเรเชอร์เนีย - การแปลงจำนวนบวกให้เป็นจำนวนลบ หรือการแปลงจำนวนลบให้เป็นจำนวนบวก

การแบ่งตัวดำเนินการ การคูณ ส่วนย่อย ส่วนย่อยตามโมดูลและการบวก

ตัวดำเนินการคูณ แบ่งย่อย โมดูโลซับโมดูโล และการบวก อธิบายในลักษณะเดียวกับในคณิตศาสตร์ สิ่งสำคัญคือต้องให้ความเคารพต่อตัวดำเนินการของตัวดำเนินการทั้งแบบโมดูโลและแบบย่อยโมดูโล

ตัวดำเนินการย่อย ("/") หมุนตัวเลขที่มีจุดลอยตัว ยกเว้นแถวที่มีจำนวนเต็ม (หรือแถวที่เปลี่ยนเป็นจำนวนเต็ม) ซึ่งแบ่งออกเป็นจำนวนเต็ม - ซึ่งในแถวจะมีการหมุนค่าทั้งหมด

ผลลัพธ์2 = $ผลลัพธ์2
"; echo "result3 = $result3
result4 = $result4"; ?>

เมื่อหารด้วยโมดูโล ตัวถูกดำเนินการจะถูกแปลงเป็นจำนวนเต็ม (โดยเอาส่วนที่เป็นเศษส่วนออก) ให้เป็นจุดเริ่มต้นของการดำเนินการ ผลลัพธ์ของการดำเนินการเหมือนกับการแบ่งส่วน:

อูนาร์เน ซาเปเรเชอร์เนีย

ตัวดำเนินการแจงนับเอกระบุด้วยเครื่องหมาย "-" และเปลี่ยนค่าของตัวถูกดำเนินการตัวเดียวในการแจงนับ:

ในกรณีนี้ ไม่จำเป็นต้องมีแขนกลม เนื่องจาก unary lock มีลำดับความสำคัญสูงสุด แต่ช่วยจัดระเบียบโค้ดในลักษณะที่ชัดเจนว่ามีช่องสำหรับบวกตัวเลข -5 และ 4

เพิ่มขึ้น

ตัวดำเนินการเพิ่มจะแสดงด้วยเครื่องหมาย ++ และสามารถขยายได้ทั้งสองด้านของตัวถูกดำเนินการที่ดำเนินการอยู่ ค่าจะเพิ่มขึ้นทีละหนึ่ง เช่นเดียวกับการเพิ่มหนึ่งให้กับค่า ผลลัพธ์ที่แท้จริงขึ้นอยู่กับว่าตัวดำเนินการหยุดนิ่งก่อนหรือหลังตัวถูกดำเนินการที่หยุดนิ่ง โอเปอเรเตอร์นี้มักจะถูกแทนที่สำหรับการเปลี่ยนแปลง และมักจะพบในช่วงกลางของลูป (จะมีการกล่าวถึงลูปในภายหลัง)

แบบฟอร์มคำนำหน้าสำหรับการเพิ่มขึ้น

แบบฟอร์มคำนำหน้า- หากตัวดำเนินการเพิ่มถูกเพิ่มก่อนตัวถูกดำเนินการ รูปแบบสัญลักษณ์นี้หมายความว่าส่วนเพิ่มจะเพิ่มขึ้นก่อน: ค่าของตัวถูกดำเนินการจะเพิ่มขึ้นหนึ่ง และจากนั้นคำสั่งเท่านั้นจึงจะเพิ่มขึ้น:

แบบฟอร์ม Postfix สำหรับการเพิ่มขึ้น

แบบฟอร์มโพสต์ฟิกซ์มีการเขียนแตกต่างกันสองสามครั้ง - การเพิ่มขึ้นจะถูกขยายทุกครั้งหลังตัวถูกดำเนินการ ในรูปแบบ postfix การเขียนตัวถูกดำเนินการตัวแปรตัวแรกจะหมุนค่าที่สองจนกระทั่งค่าสุดท้ายเพิ่มขึ้นหนึ่ง:

ลดลง

ตัวดำเนินการลดจะแสดงด้วยเครื่องหมาย - และเมื่อแทนที่ตัวดำเนินการเพิ่ม ค่าของตัวถูกดำเนินการจะเปลี่ยนและบางครั้งไม่เพิ่มขึ้น การลดลงยังอนุญาตให้ใช้คำนำหน้าและสัญกรณ์ postfix:

การดำเนินการเชิงตรรกะมีอยู่ในทุกภาษาการเขียนโปรแกรม และ PHP ก็ไม่ควรถูกตำหนิ นอกเหนือจากเรื่องง่ายๆ แล้ว การคูณ การบวก และความชัดเจนยังเกิดขึ้นในเรื่องที่เป็นตัวเลขและมากเกินไป ซึ่งตอนนี้เราจะพูดถึงและวิเคราะห์พวกมันด้วย vikoryst และก้นรายงาน

ชายเสื้อด้านในหมายถึงการแสดงส่วนทั้งหมดเป็นชายเสื้อ เช่น ถ้าเราหาร 5 ด้วย 2 เราก็ลบ 2 ไม่ใช่ 2.5

ด้วยความแตกแยกมากเกินไป ทุกสิ่งจึงแตกต่าง มีส่วนเกินด้านล่างเป็นจำนวนเต็ม ตัวอย่างเช่น โดยการหารห้าอันเดียวกัน คุณจะลบไม่ใช่ 2 แต่เป็น 1 ดังนั้น เมื่อหาร 5 ด้วย 2 เราจะลบ 2 แล้วบวก 1 เข้ากับส่วนเกิน

วิธีพิชิตฟิลด์ย่อยทั้งหมดใน PHP

ตัวอย่างเช่น ใน Python ฟิลด์ย่อยนี้ถูกกำหนดโดยใช้ตัวดำเนินการแบบง่าย: "//"

แต่ใน PHP การหาเงินจะไม่ง่ายนัก แต่กระบวนการนี้ยังไม่รองรับความรู้ด้านภาษา

มาดูกันว่าจะสามารถนำไปใช้ได้อย่างไร

ใน PHP เวอร์ชันนี้ ฟังก์ชันจะมีลักษณะดังนี้:

ในเวอร์ชันเก่า ฟังก์ชันนี้มีลักษณะดังนี้:

วิธีการเดียวกันนี้ใช้ได้กับทุกเวอร์ชัน:

จะจัดได้อย่างไร?

ตัวอย่างเช่น ลองใช้ฟังก์ชันแรกแล้วตัดสินใจว่าจะจบลงในลักษณะเดียวกันโดยประมาณ

$ผล = intdiv(10, 3); สะท้อน $ ผลลัพธ์;

PHP อ่อนแอเกินไป

ในการแสดงส่วนเกินทั้งหมดเป็นฟิลด์ย่อยใน PHP เพียงเพิ่มตัวดำเนินการ “%”

$i = 10% 3; เสียงสะท้อน $i;

เช่นเดียวกับบาชิโมะ ทุกสิ่งไม่จำเป็นต้องมีคำอธิบายเล็กๆ น้อยๆ

คุณจะซบเซาได้ที่ไหน?

การรู้ฟิลด์ย่อยทั้งหมดใน PHP จะมีประโยชน์มากหากคุณต้องการกลับตัวเลขสองตัว สร้างการกลับตัวเลข (ขวายอดนิยม) หรือตัวอย่างเช่น โปรแกรมชื่อ FizzBuzz ประเด็นคือคุณสามารถเขียนวงจรได้ตั้งแต่ 1 ถึง 100 โดยหารตัวเลขที่กำหนดด้วย 3 และ 5 หากตัวเลขหารด้วย 3 ให้ส่วนเกินเป็น 0 เราจะเขียน Fizz หากหารด้วย 5 แล้ว Buzz และถ้า เมื่อหาร і 5, і 3 แล้ว เราก็ลบ 0 ออกจากส่วนเกิน เราก็เขียน FizzBuzz นี่ยิ่งได้รับความนิยมมากขึ้นบนอินเทอร์เน็ต เมื่อคุณเขียนมันเอง คุณก็สามารถเขียนเกี่ยวกับตัวคุณเองได้

หรือเช่น เราสามารถใช้ตัวเลข 452 เพื่อพิมพ์ตัวเลขทั้งหมด (4, 5, 2)

วิสโนวอค

น่าแปลกที่ส่วนที่ซ้ำซ้อนของอบเชยและผลไม้ที่เหี่ยวเฉาออกมาบ่อยครั้ง และการเลือกพวกมันออกมาไม่ใช่เรื่องง่ายเหมือนใน Python แต่ก็ยังมีความสำคัญ

ตอนนี้คุณเข้าใกล้การเรียนรู้การเขียนโปรแกรม PHP ไปอีกก้าวแล้ว และในอนาคตคุณจะยิ่งใกล้ชิดมากขึ้นเมื่อคุณพยายามอย่างหนักเพื่อเอาชนะความยากลำบาก

© 2024 androidas.ru - ทุกอย่างเกี่ยวกับ Android