การดำเนินการกับการเปลี่ยนแปลง 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 “ประเภทข้อมูล”) และการค้นหาจำนวนต่ำสุดและสูงสุดของชุดตัวเลข ตารางต่อไปนี้แสดงฟังก์ชันทางคณิตศาสตร์อย่างง่าย:
การทำงาน | คำอธิบาย |
---|---|
พื้น() | ใช้พารามิเตอร์จริงตัวเดียว (โดยปกติจะเป็นตัวเลขทศนิยมที่มีความแม่นยำแปรผัน) และหมุนจำนวนเต็มที่ใหญ่ที่สุดที่เล็กกว่าหรือเก่ากว่าพารามิเตอร์จริง (ปัดเศษลง) |
เพดาน() | ฟังก์ชันเหล่านี้ย่อมาจากคำว่าเพดาน ฟังก์ชันใช้พารามิเตอร์จริงตัวเดียว (โดยปกติจะเป็นจำนวนจุดลอยตัวที่มีความแม่นยำสูง) และหมุนจำนวนเต็มที่น้อยที่สุดซึ่งมากกว่าหรือต่ำกว่าพารามิเตอร์จริง (ปัดเศษขึ้น) |
กลม() | ใช้พารามิเตอร์จริงตัวเดียว (ค่าคือจำนวนจุดลอยตัวของความแม่นยำของตัวแปร) แล้วหมุนจำนวนเต็มที่ใกล้ที่สุด |
เอบีเอส() | ค่าสัมบูรณ์ของตัวเลข ถ้าพารามิเตอร์จริงที่เป็นตัวเลขมีค่าเป็นลบ ฟังก์ชันจะหมุนจำนวนบวก ถ้าพารามิเตอร์จริงเป็นค่าบวก ฟังก์ชันจะหมุนพารามิเตอร์จริงเอง |
นาที() | ยอมรับพารามิเตอร์จริงที่เป็นตัวเลขจำนวนมาก (หรืออย่างน้อยหนึ่งรายการ) และหมุนค่าน้อยที่สุดของค่าพารามิเตอร์จริงทั้งหมด |
สูงสุด() | ยอมรับพารามิเตอร์จริงที่เป็นตัวเลขได้มากเท่าๆ กัน (หรืออย่างน้อยหนึ่งตัว) และหมุนค่าที่ใหญ่ที่สุดของพารามิเตอร์จริง |
ตัวอย่างเช่น ผลลัพธ์ของไวรัสผิวหนังมีอายุมากกว่า 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 (หรือมีค่าเป็นทวีคูณ) และขึ้นอยู่กับรากที่สองด้วย นอกจากนี้ ค่าคงที่เหล่านี้ยังมีอยู่ก่อนประเภทอื่นๆ ในรีลีสล่าสุด ด้วยเหตุผลหลายประการ รายการค่าคงที่ได้ลดลงอีกครั้งจนเหลือค่าคงที่ทางคณิตศาสตร์ที่ระบุจำนวนเท่าๆ กัน:
คงที่ | คำอธิบาย |
---|---|
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 "ค่า/ฟังก์ชัน | $ฟังก์ชั่น | ";) เสียงสะท้อน"
---|---|
".sprintf("%.4f",$input)" | "; foreach($func_array เป็น $func) ( echo "; printf("%4.4f", $func($input)); echo " | ";) เสียงสะท้อน"
ก้นของการใช้ฟังก์ชันตรีโกณมิติใน 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 สามารถพบได้ในตารางด้านล่าง:
การทำงาน | คำอธิบาย |
---|---|
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 ไปอีกก้าวแล้ว และในอนาคตคุณจะยิ่งใกล้ชิดมากขึ้นเมื่อคุณพยายามอย่างหนักเพื่อเอาชนะความยากลำบาก