© whiteMocca/Shutterstock.com
ภาษาโปรแกรม C++ และ PHP ได้กลายเป็นภาษาหลักในการเขียนโปรแกรมคอมพิวเตอร์สมัยใหม่ แต่คุณสมบัติแตกต่างกันอย่างมาก
C++ เป็นภาษาคอมไพล์ ซึ่งหมายถึง รหัสที่เขียนในนั้นจะถูกแปลเป็นรหัสเครื่องที่คอมพิวเตอร์สามารถเข้าใจได้ มักใช้สำหรับสร้างระบบปฏิบัติการ วิดีโอเกม และแอปพลิเคชันที่ใช้ทรัพยากรมากอื่นๆ ในทางกลับกัน PHP เป็นภาษาตีความที่ใช้เป็นหลักสำหรับโครงการพัฒนาเว็บ
C++ มอบความเร็วและประสิทธิภาพ ขณะที่ PHP มอบความคล่องตัวและความเป็นมิตรกับผู้ใช้สำหรับงานพัฒนาเว็บ ตัวเลือกใดก็ตามที่คุณเลือกขึ้นอยู่กับลักษณะของโครงการและข้อกำหนดของโปรแกรมเมอร์
ในบทความนี้ เราจะเปรียบเทียบ C++ และ PHP และช่วยคุณตัดสินใจว่าโปรแกรมใดเหมาะกับข้อกำหนดในการเขียนโปรแกรมของคุณมากกว่ากัน
p>
C++ กับ PHP: การเปรียบเทียบแบบเคียงข้างกัน
C++ กับ PHP: ต่างกันอย่างไร
PHP และ C++ เป็นภาษาโปรแกรมสองภาษาที่ใช้กันอย่างแพร่หลายสำหรับการสร้างแอปพลิเคชันที่หลากหลาย C++ เป็นภาษาโปรแกรมเชิงวัตถุที่ใช้โดยทั่วไปสำหรับการเขียนโปรแกรมระบบ การพัฒนาเกม และโครงการที่มีประสิทธิภาพสูง ในขณะที่ PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ที่ใช้เป็นหลักในโครงการพัฒนาเว็บ
เรามาแจกแจงความแตกต่างหลักระหว่างกันด้านล่าง
ประสิทธิภาพการทำงาน
C++ เป็นภาษาโปรแกรมประสิทธิภาพสูงที่ได้รับการปรับให้เหมาะกับความเร็ว มีการใช้กันอย่างแพร่หลายในการเขียนโปรแกรมระบบ ระบบสมองกลฝังตัว และแอปพลิเคชันคอมพิวเตอร์ประสิทธิภาพสูง โค้ด C++ ถูกคอมไพล์เป็นโค้ดเครื่อง ทำให้เร็วกว่าภาษาที่แปลแล้วเช่น PHP นักพัฒนาที่ใช้ C++ สามารถเขียนโค้ดระดับต่ำที่ปรับให้เหมาะกับสถาปัตยกรรมฮาร์ดแวร์เฉพาะ ส่งผลให้เวลาดำเนินการเร็วขึ้นและมีประสิทธิภาพมากขึ้น ในทำนองเดียวกัน คุณลักษณะต่างๆ เช่น ฟังก์ชันแบบอินไลน์และเทมเพลตทำให้สามารถใช้โค้ดซ้ำได้อย่างมีประสิทธิภาพในขณะที่ยังคงความสามารถในการพกพา
ในทางกลับกัน PHP เป็นภาษาที่ตีความได้ซึ่งออกแบบมาสำหรับการพัฒนาเว็บโดยเฉพาะ เนื่องจากโค้ดทำงานบนฝั่งเซิร์ฟเวอร์ของ PHP แทนที่จะถูกคอมไพล์ ประสิทธิภาพอาจช้าลงเมื่อเทียบกับภาษาที่คอมไพล์อย่าง C++ อย่างไรก็ตาม การออกแบบที่ปรับให้เหมาะสมของ PHP ทำให้เหมาะสำหรับการจัดการคำขอเว็บอย่างรวดเร็วเมื่อปรับให้เหมาะสมสำหรับงานนี้ นอกจากนี้ คุณลักษณะต่างๆ เช่น การแคช opcode และการคอมไพล์แบบ just-in-time ใน PHP ช่วยปรับปรุงประสิทธิภาพเพิ่มเติมโดยการลดเวลาดำเนินการโค้ด
การจัดการหน่วยความจำ
C++ นำเสนอเครื่องมือการจัดการหน่วยความจำระดับต่ำ เพื่อให้นักพัฒนาสามารถจัดการการใช้หน่วยความจำได้ด้วยตนเอง ซึ่งช่วยให้เขียนโค้ดที่มีประสิทธิภาพซึ่งลดการใช้พื้นที่และความเสี่ยงของหน่วยความจำรั่ว C++ มีคุณลักษณะต่างๆ เช่น พอยน์เตอร์และการอ้างอิง ซึ่งเปิดใช้งานการจัดการหน่วยความจำโดยตรง
ในทางตรงกันข้าม PHP เป็นภาษาระดับสูงที่ให้การจัดการหน่วยความจำอัตโนมัติผ่านกลไกการรวบรวมขยะ นักพัฒนาไม่จำเป็นต้องจัดการหน่วยความจำอย่างชัดเจนอีกต่อไป เนื่องจาก PHP จะอนุมัติการจัดสรรและการจัดสรรคืนโดยอัตโนมัติ ขออภัย วิธีการอัตโนมัตินี้อาจนำไปสู่การใช้หน่วยความจำที่สูงขึ้นและประสิทธิภาพการทำงานช้าลงเมื่อเทียบกับการจัดการหน่วยความจำ C++ ด้วยตนเอง
ไวยากรณ์และการพิมพ์
C++ เป็นภาษาที่พิมพ์แบบคงที่ซึ่งกำหนดให้นักพัฒนาซอฟต์แวร์ต้องประกาศ ชนิดข้อมูลของตัวแปรเมื่อสร้าง การทำเช่นนี้ทำให้คอมไพเลอร์ตรวจสอบข้อผิดพลาดประเภทในขณะคอมไพล์ ซึ่งลดโอกาสเกิดข้อผิดพลาดรันไทม์ นอกจากนี้ C++ ยังมีไวยากรณ์ที่ซับซ้อนกว่า PHP ซึ่งอาจทำให้การเรียนรู้และการเขียนโค้ดมีความท้าทายมากขึ้น
ในทางกลับกัน PHP เป็นภาษาที่พิมพ์แบบไดนามิกซึ่งไม่ต้องการให้นักพัฒนาประกาศประเภทข้อมูล ของตัวแปร สิ่งนี้ทำให้การเขียนโค้ดใน PHP ง่ายขึ้นและเร็วขึ้นมากเมื่อเทียบกับไวยากรณ์ที่ซับซ้อนกว่าของ C++ การไม่มีการพิมพ์แบบคงที่อาจทำให้ผู้เริ่มต้นตรวจจับข้อผิดพลาดของประเภทในระหว่างการพัฒนาได้ง่ายขึ้น ซึ่งนำไปสู่ข้อผิดพลาดรันไทม์
Application Domain
C++ เป็นภาษาโปรแกรมเอนกประสงค์ที่เหมาะสำหรับหลาย ๆ คน วัตถุประสงค์ต่างๆ เช่น ระบบปฏิบัติการ ซอฟต์แวร์ระบบ ระบบฝังตัว การประมวลผลประสิทธิภาพสูง และเกม ความเร็ว ประสิทธิภาพ และความยืดหยุ่นของ C++ ทำให้เหมาะสำหรับการสร้างแอปพลิเคชันที่ซับซ้อนแต่เน้นประสิทธิภาพเป็นหลัก
ในทางกลับกัน PHP เป็นภาษาการเขียนโปรแกรมที่เน้นเว็บซึ่งออกแบบมาเพื่อการพัฒนาเว็บ ด้วยเครื่องมือนี้ คุณสามารถสร้างหน้าเว็บแบบไดนามิก แอปพลิเคชัน และสคริปต์ฝั่งเซิร์ฟเวอร์ที่ทำงานบนเว็บเซิร์ฟเวอร์ได้อย่างง่ายดาย นอกจากนี้ PHP ยังทำงานได้ดีกับฐานข้อมูลและมีเครื่องมือและไลบรารีสำหรับการพัฒนาเว็บจำนวนมากเพื่อลดความซับซ้อนในการสร้างเว็บแอปพลิเคชัน
Object-Oriented Programming (OOP)
C++ คือการเขียนโปรแกรมเชิงวัตถุ ภาษาที่รองรับการห่อหุ้ม การสืบทอด และความหลากหลาย นักพัฒนา C++ สามารถใช้คลาสเพื่อสร้างอ็อบเจกต์และเขียนโค้ดเชิงอ็อบเจกต์ ซึ่งใช้ซ้ำได้และดูแลรักษาง่ายกว่า นอกจากนี้ C++ ยังรองรับการสืบทอดหลายรายการ ทำให้คลาสสามารถสืบทอดคุณสมบัติจากคลาสแม่หลายคลาสได้
ในทางกลับกัน PHP เป็นภาษาลูกผสมที่รวบรวมทั้งกระบวนทัศน์การเขียนโปรแกรมเชิงขั้นตอนและเชิงวัตถุ นักพัฒนาที่ใช้ PHP สามารถเขียนโค้ดเชิงขั้นตอน — เรียบง่ายและเข้าใจง่าย — หรือโค้ดเชิงวัตถุซึ่งเป็นแบบแยกส่วนและนำมาใช้ซ้ำได้ นอกจากนี้ PHP รองรับการสืบทอดตามคลาสแต่ไม่อนุญาตให้มีการสืบทอดหลายรายการ
C++ ให้ประสิทธิภาพการทำงานสูงและการควบคุมระบบ ในขณะที่ PHP เป็นที่รู้จักในด้านความเป็นมิตรกับผู้ใช้
©whiteMocca/Shutterstock.com
ความสามารถในการพกพา
โค้ด C++ ถูกคอมไพล์เป็นโค้ดเครื่องที่ทำงานแบบเนทีฟบนแพลตฟอร์มเป้าหมาย ทำให้พกพาได้สะดวก ขออภัย การคอมไพล์ C++ ใหม่สำหรับแพลตฟอร์มต่างๆ อาจต้องใช้เวลาและความพยายามเป็นพิเศษ โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชันขนาดใหญ่
ในทางกลับกัน PHP เป็นภาษาที่ตีความได้ซึ่งทำงานบนแพลตฟอร์มใดๆ ที่มีตัวแปล PHP ติดตั้งอยู่ สิ่งนี้ทำให้ PHP พกพาสะดวกและง่ายต่อการปรับใช้ นอกจากนี้ ความเป็นอิสระของแพลตฟอร์มหมายความว่าโค้ด PHP สามารถทำงานได้อย่างราบรื่นในระบบปฏิบัติการใดๆ โดยไม่จำเป็นต้องแก้ไข
สภาพแวดล้อมการพัฒนา
C++ เป็นภาษาที่นักพัฒนาต้องใช้ทั้งโค้ด เอดิเตอร์และคอมไพเลอร์สำหรับเขียน ทดสอบ และดีบักโค้ด เครื่องมือแก้ไขโค้ดนำเสนอการเน้นไวยากรณ์ การเติมโค้ด และเครื่องมือดีบั๊ก ซึ่งทำให้การเขียนโค้ดง่ายขึ้น คอมไพเลอร์ C++ แปลซอร์สโค้ดเป็นรหัสเครื่องที่ทำงานบนแพลตฟอร์มเป้าหมาย อย่างไรก็ตาม นักพัฒนาอาจต้องติดตั้งไลบรารีหรือการอ้างอิงเพิ่มเติมเพื่อพัฒนาแอปพลิเคชันโดยใช้ C++; การเพิ่มจะเพิ่มความซับซ้อนให้กับสภาพแวดล้อมการพัฒนา
ในทางกลับกัน สามารถพัฒนา PHP ได้โดยใช้โปรแกรมแก้ไขข้อความที่ไม่ซับซ้อนหรือสภาพแวดล้อมการพัฒนาแบบบูรณาการที่มีคุณสมบัติครบถ้วน (IDE) โปรแกรมแก้ไขโค้ด PHP นำเสนอคุณสมบัติต่างๆ เช่น การเน้นไวยากรณ์ การเติมโค้ด และเครื่องมือดีบั๊กเพื่อให้เขียนและบำรุงรักษาโค้ดได้ง่ายขึ้น นอกจากนี้ เนื่องจาก PHP ทำงานโดยตรงบนเว็บเซิร์ฟเวอร์โดยไม่ต้องพึ่งพาการติดตั้งเพิ่มเติม นักพัฒนาไม่จำเป็นต้องลงทุนในส่วนประกอบเพิ่มเติมสำหรับการพัฒนาแอปพลิเคชันด้วยโค้ด PHP
Error Handling
C++ จัดเตรียมสิ่งต่างๆ กลไกจัดการข้อผิดพลาด เช่น การจัดการข้อยกเว้น การจัดการข้อยกเว้นทำให้โค้ดสามารถกู้คืนจากข้อผิดพลาดโดยไม่ทำให้โปรแกรมหยุดทำงาน นอกจากนี้ C++ ยังมีรหัสข้อผิดพลาดและค่าส่งคืนที่นักพัฒนาสามารถใช้เพื่อจัดการกับข้อผิดพลาดแบบดั้งเดิม
เมื่อเกิดข้อผิดพลาด การจัดการข้อผิดพลาด PHP จะดำเนินการผ่านการรายงานข้อผิดพลาด ซึ่งจะแสดงข้อความแสดงข้อผิดพลาดบนหน้าจอ นักพัฒนาซอฟต์แวร์สามารถปรับแต่งการตั้งค่าเหล่านี้เพื่อแสดงข้อผิดพลาดในระดับต่างๆ ได้ตามความต้องการ PHP ยังมีบล็อก try-catch สำหรับจัดการข้อยกเว้น อย่างไรก็ตาม กลไกนี้มีความน่าเชื่อถือน้อยกว่าระบบจัดการข้อยกเว้นของ C++
การปรับใช้
โดยทั่วไปแล้วแอปพลิเคชัน C++ จำเป็นต้องรวบรวมเป็นไฟล์เรียกทำงานที่สามารถเรียกใช้งานได้บนแพลตฟอร์มเป้าหมาย สิ่งนี้จะเพิ่มความซับซ้อนให้กับกระบวนการปรับใช้ เนื่องจากนักพัฒนาซอฟต์แวร์ต้องรวบรวมโค้ดของตนแยกกันสำหรับแต่ละแพลตฟอร์มที่สนับสนุน และติดตั้งไลบรารีรันไทม์ที่จำเป็นและการอ้างอิงที่อาจจำเป็นในระบบเป้าหมาย
ในทางกลับกัน แอปพลิเคชัน PHP ปรับใช้ได้อย่างรวดเร็วและง่ายดายโดยการคัดลอกไฟล์ PHP ไปยังเว็บเซิร์ฟเวอร์ด้วยตัวแปล PHP ที่ติดตั้งไว้ สิ่งนี้ทำให้การปรับใช้แอปพลิเคชัน PHP ง่ายขึ้นมากเมื่อเทียบกับ C++ เนื่องจากไม่จำเป็นต้องใช้ไลบรารีรันไทม์หรือการอ้างอิงเพิ่มเติม ทำให้กระบวนการปรับใช้ง่ายขึ้น
C++ เทียบกับ PHP: 11 ข้อเท็จจริงที่ต้องรู้
C++ และ PHP เป็นภาษาการเขียนโปรแกรมสองภาษาที่ใช้กันทั่วไปในการพัฒนาแอปพลิเคชันซอฟต์แวร์ C++ เป็นภาษาคอมไพล์ ในขณะที่ PHP เป็นภาษาที่แปลความหมาย โดยเฉลี่ยแล้ว C++ จะทำงานเร็วกว่าและมีประสิทธิภาพมากกว่า PHP ในระบบสมัยใหม่ PHP ถูกใช้อย่างกว้างขวางสำหรับการพัฒนาเว็บ ในขณะที่ C++ สามารถ นำไปใช้กับแอปพลิเคชันที่หลากหลายมากขึ้น เช่น ซอฟต์แวร์ระบบและเกม C++ มีการจัดการหน่วยความจำระดับต่ำ ในขณะที่ PHP ไม่มี นอกจากนี้ การเรียนรู้ PHP อาจง่ายกว่าสำหรับผู้เริ่มต้นมากกว่าการเรียนรู้ C++ ตั้งแต่เริ่มต้น C++ ต้องการการเรียนรู้เพิ่มเติมเพื่อให้เชี่ยวชาญ แต่สามารถทำได้ สร้างโค้ดที่มีประสิทธิภาพและทรงพลังกว่า C++ มีการพิมพ์ที่แข็งแกร่งกว่า PHP ซึ่งช่วยตรวจจับข้อผิดพลาดก่อนที่จะสร้างความเสียหายระหว่างรันไทม์ PHP เป็นภาษาสคริปต์ ในขณะที่ C++ ถูกคอมไพล์ นอกจากนี้ C++ ยังมีไวยากรณ์ที่ซับซ้อนกว่า PHP คู่กัน C++ สามารถ ใช้สำหรับสร้างแอปพลิเคชันแบบสแตนด์อโลน ในขณะที่ PHP มักทำงานร่วมกับเว็บเซิร์ฟเวอร์
C++ กับ PHP: อันไหนดีกว่ากัน? คุณควรใช้ภาษาใด
เมื่อเลือกระหว่าง C++ และ PHP คำตอบสุดท้ายจะขึ้นอยู่กับความต้องการและความต้องการเฉพาะของโครงการของคุณ
หากคุณต้องการภาษาที่ใช้กันอย่างแพร่หลายสำหรับการเขียนโปรแกรมระบบและ แอปพลิเคชันประสิทธิภาพสูง C++ อาจเป็นทางออกที่ดีที่สุดของคุณ ให้ประสิทธิภาพที่ดีขึ้น ควบคุมการจัดการหน่วยความจำได้มากขึ้น ตลอดจนการเข้าถึงไลบรารีและเครื่องมือต่างๆ ที่ออกแบบมาโดยเฉพาะสำหรับการเขียนโปรแกรมระดับระบบ
ในทางกลับกัน PHP อาจเป็นตัวเลือกที่เหมาะสมที่สุดหากคุณต้องการภาษาที่ออกแบบมาโดยเฉพาะสำหรับ การพัฒนาเว็บ มีการผสานรวมกับ HTML โดยตรง ทำให้เป็นตัวเลือกยอดนิยมในหมู่นักพัฒนาเว็บ นอกจากนี้ PHP ยังมีเฟรมเวิร์กและเครื่องมือมากมายที่ออกแบบมาเพื่อลดความซับซ้อนของงานและเพิ่มประสิทธิภาพในระหว่างการพัฒนาเว็บ
การตัดสินใจขั้นสุดท้ายระหว่าง C++ และ PHP ขึ้นอยู่กับความต้องการส่วนบุคคล ความซับซ้อนของโปรเจ็กต์ และประสบการณ์ในการเขียนโปรแกรม หากคุณพอใจกับโค้ดระดับต่ำแต่ต้องการประสิทธิภาพสูงและการควบคุมระบบ C++ อาจเป็นตัวเลือกที่ดีกว่า ในทางกลับกัน หากความง่ายในการเรียนรู้และการใช้งานเป็นคุณสมบัติหลักสำหรับโครงการพัฒนาเว็บ PHP อาจเหมาะสมที่สุด
เป็นที่น่าสังเกตว่าทั้ง C++ และ PHP ถูกใช้อย่างแพร่หลายในอุตสาหกรรม ทำให้ทั้งสองภาษาเป็นตัวเลือกที่ยอดเยี่ยมสำหรับโอกาสในการจ้างงานในอนาคต นอกจากนี้ การเลือกภาษาโปรแกรมอาจไม่สำคัญเท่ากับปัจจัยอื่นๆ เช่น การออกแบบและสถาปัตยกรรม ดังนั้น ไม่ว่าคุณจะเลือกภาษาการเขียนโปรแกรมใด ให้สร้างแผนที่มีประสิทธิภาพซึ่งรวมแนวทางปฏิบัติที่ดีที่สุดไว้ด้วย
การตัดสินใจระหว่าง C++ และ PHP ขึ้นอยู่กับความต้องการและความต้องการส่วนบุคคลของคุณ เมื่อพิจารณาองค์ประกอบเหล่านี้อย่างรอบคอบและทุ่มเทความพยายามอย่างเพียงพอในการเรียนรู้และเชี่ยวชาญภาษาใดภาษาหนึ่ง คุณจะมั่นใจได้ว่าโครงการของคุณจะประสบความสำเร็จในขณะที่ปลดปล่อยศักยภาพในการเขียนโปรแกรมทั้งหมดของคุณ
C++ กับ PHP: อะไรแตกต่างและอะไรดีกว่ากัน ? คำถามที่พบบ่อย (คำถามที่พบบ่อย)
ภาษา C++ หรือ PHP ภาษาใดยากต่อการเรียนรู้
ทั้งสองภาษามีช่วงการเรียนรู้ที่แตกต่างกัน แต่ C++ มีแนวโน้มที่จะ มีความท้าทายมากขึ้นเนื่องจากความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับแนวคิดวิทยาการคอมพิวเตอร์ เช่น การจัดการหน่วยความจำ พอยน์เตอร์ และโครงสร้างข้อมูล ในทางกลับกัน PHP เสนอทางเลือกที่ง่ายกว่าและอาจง่ายกว่าสำหรับผู้เริ่มต้น — โดยเฉพาะอย่างยิ่งในการพัฒนาเว็บ — แม้ว่าทั้งสองอย่างสามารถได้รับจากการฝึกฝนและความทุ่มเทก็ตาม
ภาษาใดดีกว่าสำหรับการพัฒนาเว็บ C++ หรือ PHP?
PHP ได้รับการออกแบบมาโดยเฉพาะโดยคำนึงถึงการพัฒนาเว็บเป็นหลัก ทำให้การสร้างเว็บไซต์และแอปพลิเคชันโดยใช้ภาษานี้รวดเร็วและง่ายกว่า C++ แม้ว่าจะใช้ทั้งสองอย่างได้ แต่การตั้งค่าเว็บเซิร์ฟเวอร์และการรักษาประสิทธิภาพของแอปพลิเคชันจำเป็นต้องทำงานมากขึ้น
ภาษาใดดีกว่าสำหรับการพัฒนาซอฟต์แวร์ระบบ C++ หรือ PHP
C++ มีข้อได้เปรียบด้านประสิทธิภาพมากกว่า และเหมาะสำหรับการพัฒนาซอฟต์แวร์ระบบในอุดมคติ เนื่องจากความสามารถในการสร้างแอปพลิเคชันประสิทธิภาพสูง สามารถใช้ C++ ในระบบปฏิบัติการ ไดรเวอร์อุปกรณ์ ระบบฝังตัว และโครงการซอฟต์แวร์ระดับระบบอื่นๆ ในทางกลับกัน PHP ไม่ได้ออกแบบมาเพื่อสิ่งนี้โดยเฉพาะ แต่ทำหน้าที่เป็นภาษาสำหรับพัฒนาเว็บแทน
ภาษาใดมีโอกาสในการทำงานมากกว่า C++ หรือ PHP
ทั้งสองภาษามีโอกาสในการทำงานที่แตกต่างกัน C++ มีตำแหน่งที่ให้ค่าตอบแทนสูงในการเขียนโปรแกรมระบบ การพัฒนาเกม และการคำนวณทางวิทยาศาสตร์ ในขณะที่ PHP มีความโดดเด่นในด้านการพัฒนาเว็บ อีคอมเมิร์ซ และระบบการจัดการเนื้อหา อย่างไรก็ตาม ทั้งคู่มีความต้องการอย่างมากในตลาดงาน
ภาษาใดดีกว่าสำหรับผู้เริ่มต้น C++ หรือ PHP?
PHP มีความเรียบง่ายและผู้ใช้-เป็นมิตรกว่า C ++ ให้ช่วงการเรียนรู้ที่สั้นกว่าซึ่งทำให้โปรแกรมเมอร์ใหม่ไม่น่ากลัว C++ ต้องการความรู้ด้านเทคนิคที่ลึกซึ้งมากขึ้น ซึ่งอาจพิสูจน์ได้ว่ามีผู้ที่เพิ่งเริ่มพัฒนาเว็บมากเกินไป นอกจากนี้ PHP ยังต้องใช้เวลาตั้งค่าน้อยลงเพื่อให้ทำงานได้อย่างราบรื่น จึงเป็นตัวเลือกที่เหมาะสำหรับมือใหม่ที่สนใจในการพัฒนาเว็บ