คำถามติดแท็ก php

คำถามเกี่ยวกับ PHP ซึ่งเป็นภาษาสคริปต์อเนกประสงค์ที่ใช้กันอย่างแพร่หลายซึ่งเหมาะอย่างยิ่งสำหรับการพัฒนาเว็บ

4
ตกลงเพื่อแนะนำวิธีการที่ใช้เฉพาะระหว่างการทดสอบหน่วยหรือไม่
เมื่อเร็ว ๆ นี้ฉันกำลังใช้วิธีการจากโรงงาน TDDing วิธีการคือการสร้างวัตถุธรรมดาหรือวัตถุห่อในมัณฑนากร วัตถุตกแต่งอาจเป็นหนึ่งในหลายประเภทที่ขยาย StrategyClass ในการทดสอบของฉันฉันต้องการตรวจสอบว่าคลาสของวัตถุที่ส่งคืนเป็นไปตามที่คาดไว้หรือไม่ มันง่ายมากที่จะส่งคืนอ็อบเจ็กต์ธรรมดา แต่จะทำอย่างไรเมื่อมันถูกห่อไว้ในมัณฑนากร? ฉันใช้รหัสใน PHP ดังนั้นฉันจึงสามารถใช้ext/Reflectionเพื่อหาคลาสของวัตถุที่ถูกห่อ แต่ดูเหมือนว่าฉันจะมีความซับซ้อนมากเกินไปและค่อนข้างกฎเกณฑ์ของ TDD แต่ฉันตัดสินใจที่จะแนะนำgetClassName()ว่าจะส่งคืนชื่อคลาสของวัตถุเมื่อถูกเรียกจาก StrategyClass เมื่อเรียกจากมัณฑนากรอย่างไรก็ตามมันจะคืนค่าที่ส่งคืนโดยวิธีเดียวกันในวัตถุที่ตกแต่ง รหัสบางอย่างเพื่อให้ชัดเจนยิ่งขึ้น: interface StrategyInterface { public function getClassName(); } abstract class StrategyClass implements StrategyInterface { public function getClassName() { return \get_class($this); } } abstract class StrategyDecorator implements StrategyInterface { private $decorated; public function …
12 php  tdd 

5
ข้อดีของวิธีการหลายวิธีมากกว่าสวิตช์
ฉันได้รับการตรวจสอบโค้ดจากผู้พัฒนาระดับสูงในวันนี้โดยถามว่า "อย่างไรก็ตามอะไรคือสิ่งที่คุณคัดค้านการมอบหมายหน้าที่โดยใช้คำสั่งสวิตช์?" ฉันได้อ่านในหลาย ๆ ที่เกี่ยวกับวิธีการปั๊มการโต้เถียงผ่านวิธีสลับการโทรเป็นวิธีการที่ไม่ดี OOP ไม่สามารถขยายได้ ฯลฯ อย่างไรก็ตามฉันไม่สามารถหาคำตอบที่ชัดเจนสำหรับเขาได้ ฉันต้องการจะทำสิ่งนี้ให้กับตัวเองซักครั้ง นี่คือคำแนะนำเกี่ยวกับรหัสการแข่งขันของเรา (php ใช้เป็นตัวอย่าง แต่สามารถใช้ได้ในระดับสากล): class Switch { public function go($arg) { switch ($arg) { case "one": echo "one\n"; break; case "two": echo "two\n"; break; case "three": echo "three\n"; break; default: throw new Exception("Unknown call: $arg"); break; } } } class …

5
เมื่อใดควรที่จะลดการทำงานของ RDBMS แทนที่จะทำในโค้ด?
โอเคฉันจะจัดการกับมัน: ฉันเป็นผู้เขียนโค้ดที่ดีกว่าฉันที่ฐานข้อมูลและฉันสงสัยว่าความคิดเกี่ยวกับ "วิธีปฏิบัติที่ดีที่สุด" อยู่ที่เรื่องของการคำนวณแบบ "ง่าย" ในแบบสอบถาม SQL เทียบกับ รหัสเช่นตัวอย่าง MySQL นี้ (ฉันไม่ได้เขียนฉันแค่ต้องรักษามัน!) - นี่จะส่งคืนชื่อผู้ใช้และอายุของผู้ใช้ในเหตุการณ์ครั้งสุดท้าย SELECT u.username as user, IF ((DAY(max(e.date)) - DAY(u.DOB)) < 0 , TRUNCATE(((((YEAR(max(e.date))*12)+MONTH(max(e.date))) -((YEAR(u.DOB)*12)+MONTH(u.DOB)))-1)/12, 0), TRUNCATE((((YEAR(max(e.date))*12)+MONTH(max(e.date))) - ((YEAR(u.DOB)*12)+MONTH(u.DOB)))/12, 0)) AS age FROM users as u JOIN events as e ON u.id = e.uid ... เปรียบเทียบกับการยกรหัส "หนัก": ค้นหา: …
12 php  mysql 

3
docblock เป็นประเภทคำแนะนำซ้ำซ้อนเมื่อใช้การพิมพ์ที่เข้มงวด
ฉันมี codebase ส่วนตัวขนาดใหญ่มากซึ่งมีการพัฒนามาประมาณสิบปีแล้ว ฉันไม่ได้ใช้ phpDocumentor แต่เนื่องจากการใช้ส่วน docblock ได้กลายเป็นมาตรฐานในโครงการโอเพ่นซอร์สฉันได้ใช้การเขียน docblock สำหรับวิธีสาธารณะทั้งหมดในที่เก็บของฉันเช่นกัน บล็อกส่วนใหญ่มีเพียงคำอธิบายขนาดเล็กและคำแนะนำสำหรับพารามิเตอร์ทั้งหมดและประเภทผลตอบแทน ด้วยการมาถึงของการวิเคราะห์แบบคงที่คำใบ้ประเภทนี้ช่วยให้ฉันค้นหาความไม่สอดคล้องและข้อบกพร่องที่อาจเกิดขึ้นได้มากมาย เมื่อเร็ว ๆ นี้ฉันได้แปลง codebase ทั้งหมด (ตอนนี้ทำงานบน PHP7.2) เพื่อให้พารามิเตอร์ทั้งหมดและส่งคืนค่าชนิดที่บอกใบ้เท่าที่จะเป็นไปได้โดยใช้ typehints ของ PHP และตอนนี้ฉันสงสัยว่า ... docblock typehints redundant เหล่านี้ไม่ใช่หรือ มันขอให้ทำงานค่อนข้างน้อยเพื่อให้ docblock ทั้งหมดสอดคล้องกับรหัสที่เปลี่ยนแปลงตลอดเวลาและเนื่องจากพวกเขาไม่ได้เพิ่มข้อมูลใหม่ฉันสงสัยว่ามันเป็นการดีที่จะลบออกทั้งหมดหรือไม่ ในมือเดียวการลบเอกสารรู้สึกไม่ดีแม้ว่าจะซ้ำซ้อน ในที่อื่น ๆ ฉันรู้สึกเหมือนได้ทำลายสิ่งที่ต้องทำซ้ำ ๆ ในชีวิตประจำวันแบบที่ไม่ต้องทำซ้ำ - ตัวคุณเอง
12 php  comments 

4
ทำไมการใช้ conjunctions ในเมธอดจึงตั้งชื่อแผนการประชุมที่ไม่ดี? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ในทีมของฉันเราทำงานอย่างใกล้ชิดกับสถาปนิกซอฟต์แวร์เพียงไม่กี่คน พวกเขาอนุมัติการตัดสินใจการออกแบบทั้งหมดของโครงการของเราทำการทบทวนโค้ด ฯลฯ โครงการของเราประกอบด้วยฟังก์ชันแบ็คเอนด์ส่วนใหญ่ที่ใช้ใน PHP โดยใช้เฟรมเวิร์ก Symfony 2 ดังนั้น syntactically รหัส, การตั้งชื่อแบบแผนและโครงสร้างโครงการดูเหมือนเกือบจะเหมือนกับสิ่งที่ Java จะมีลักษณะ (Symfony 2 สนับสนุนโครงสร้างดังกล่าว) ฉันกำลังพูดถึงเรื่องนี้เพราะอนุสัญญาเฉพาะ Java ยังใช้ในกรณีของเรา (ถ้าเป็นไปได้) เมื่อเร็ว ๆ นี้พวกเขาชี้ให้เห็นบางสิ่งบางอย่างที่ผมพบที่แปลกมาก: วิธีการทั้งหมดที่ควรจะมีในสันธานเช่นชื่อของพวกเขาgetEntityOrNull, setValueOrExceptionฯลฯ การตั้งชื่อแบบนี้รู้สึกผิดกับฉันมาก แต่ฉันไม่สามารถหาข้อโต้แย้งที่เป็นรูปธรรมหรือบทความ / หน้าเว็บออนไลน์ที่ท้าทายเรื่องนี้โดยเฉพาะได้ สิ่งเดียวที่ฉันคิดไว้คือ: ข้อมูลดังกล่าวควรมีอยู่ในคำอธิบายประกอบของวิธีเช่น@returnหรือ@throws การใช้คำสันธาน ("และ", "หรือ" ฯลฯ ) ในชื่อวิธีมักจะแนะนำว่าหลักการความรับผิดชอบเดี่ยวไม่ได้รับการเคารพอย่างเหมาะสม อะไรคือข้อโต้แย้งที่เป็นรูปธรรมอื่น ๆ ต่ออนุสัญญาการตั้งชื่อนี้

7
ในภาษาที่มุ่งเน้นวัตถุวัตถุควรทำการดำเนินการกับตัวเองเมื่อใดและควรจะดำเนินการกับวัตถุเมื่อใด
สมมติว่ามีPageคลาสซึ่งแสดงชุดคำสั่งสำหรับตัวแสดงผลหน้า และสมมติว่ามีRendererคลาสที่รู้วิธีแสดงหน้าบนหน้าจอ เป็นไปได้ที่จะจัดโครงสร้างโค้ดด้วยวิธีที่ต่างกันสองวิธี: /* * 1) Page Uses Renderer internally, * or receives it explicitly */ $page->renderMe(); $page->renderMe($renderer); /* * 2) Page is passed to Renderer */ $renderer->renderPage($page); ข้อดีและข้อเสียของแต่ละวิธีคืออะไร เมื่อใดจะดีกว่า คนอื่นจะดีกว่าเมื่อไหร่? พื้นหลัง เมื่อต้องการเพิ่มพื้นหลังเพิ่มเติมเล็กน้อย - ฉันค้นหาตัวเองโดยใช้วิธีการทั้งสองในรหัสเดียวกัน ฉันกำลังใช้ห้องสมุดของบุคคลที่ 3 รูปแบบไฟล์ PDF TCPDFที่เรียกว่า บางแห่งในรหัสของฉันฉันต้องมีสิ่งต่อไปนี้เพื่อให้การแสดงผล PDF ทำงานได้ $pdf = new TCPDF(); $html = "some …

1
อัลกอริทึมในการสร้างขอบและจุดยอดออกไปด้านนอกจากจุดเริ่มต้นที่มีหลายหลากสูงสุดเท่ากับ 3
ฉันกำลังสร้างเกม 2d สำหรับเว็บไซต์ที่มีขนาดใหญ่มาก (โดยทั่วไปมีขนาดใหญ่มาก) เริ่มแรกจักรวาลประกอบด้วยดาว 6 ดวงที่อยู่ห่างจากจุดกำเนิดเท่ากัน (0, 0) งานของฉันคือการสร้างดาวให้มากขึ้นซึ่งจะมี "เส้นทาง" (ขอบ) ที่เชื่อมต่อซึ่งกันและกัน ฉันจะออกแบบอัลกอริทึมที่ตรงตามข้อ จำกัด เหล่านี้ได้อย่างไร: ดวงดาวถูกสร้างแบบสุ่มออกไปด้านนอก (เช่น (x, y) พิกัดสำหรับดาวดวงใหม่จะค่อยๆออกไปด้านนอกจาก (0, 0) ในทุกทิศทางโดยเฉพาะในรูปแบบเกลียว ขอบจะไม่ข้าม แม้ว่าจะมีความแตกต่างบ้าง แต่ดาวดวงใหม่ไม่ควรอยู่ไกลหรืออยู่ใกล้ดาวดวงอื่นมากเกินไป (เช่นต้องมีรัศมีต่ำสุด) ไม่มีดาว / จุดควรมีหลายหลากมากกว่า 3 ระบุว่าทั้งหมดนี้จะถูกเก็บไว้ในฐานข้อมูลอัลกอริทึมไม่สามารถมีราคาแพงเกินไป กล่าวอีกนัยหนึ่งฉันชอบที่จะได้รับสิ่งที่ซับซ้อน O (n) (ฉันไม่รู้ว่าสิ่งนี้เป็นไปได้หรือไม่) โดยพื้นฐานแล้วสิ่งที่ฉันกำลังมองหาคือกาแลคซีที่มีลักษณะเป็นดาวหางโดยที่ดวงดาวเป็นจุดบนกราฟและการเดินทางระหว่างดวงดาวจะถูกแสดงด้วยขอบระหว่างดาวเหล่านั้น ขั้นตอนเฉพาะที่ฉันต้องแก้ไขคือ: สร้างจุดในบริเวณใกล้เคียงกับดวงดาวอื่นที่ยังไม่ได้เป็น 3 เท่า ค้นหาดาวดวงแรกที่ยังไม่มีพหุคูณเท่ากับ 3 ซึ่งจะไม่สร้างความขัดแย้งให้กับขอบ หากดาวอยู่ห่างจากหน่วย x อย่างน้อยที่สุดให้สร้างขอบระหว่างจุดสองจุด ฉันพยายามหาวิธีแก้ปัญหา แต่ทักษะคณิตศาสตร์ของฉัน …

2
หลักการแห้งในแนวปฏิบัติที่ดี?
ฉันพยายามทำตามหลักการ DRY ในการเขียนโปรแกรมของฉันอย่างหนักที่สุดเท่าที่จะทำได้ เมื่อไม่นานมานี้ฉันได้เรียนรู้รูปแบบการออกแบบใน OOP แล้วและฉันก็ทำซ้ำตัวเองค่อนข้างมาก ฉันสร้างรูปแบบ Repository พร้อมกับรูปแบบ Factory และ Gateway เพื่อจัดการกับความคงทนของฉัน ฉันใช้ฐานข้อมูลในแอปพลิเคชันของฉัน แต่ไม่ควรทำเช่นนี้เพราะฉันควรจะสามารถสลับเกตเวย์และเปลี่ยนไปใช้ความพยายามชนิดอื่นได้หากฉันต้องการ ปัญหาที่ฉันสร้างเพื่อตัวเองคือฉันสร้างวัตถุเดียวกันสำหรับจำนวนตารางที่ฉันมี commentsตัวอย่างเหล่านี้จะเป็นวัตถุที่ฉันต้องการที่จะจัดการกับตาราง class Comment extends Model { protected $id; protected $author; protected $text; protected $date; } class CommentFactory implements iFactory { public function createFrom(array $data) { return new Comment($data); } } class CommentGateway implements iGateway …

5
ฉันควรใช้ JSON เพื่อใช้ JSON
ฉันกำลังสร้างเว็บไซต์บล็อกเพื่อการเรียนรู้โดยใช้แบ็คเอนด์ PHP / MySQl อินพุตผู้ใช้ทั้งหมดได้รับการจัดการด้วยแบบฟอร์มที่ส่งในคำขอ POST การใช้ JSON จะทำให้มันสะอาดขึ้นหรือรักษาหรือเพิ่มคุณสมบัติได้ง่ายขึ้นหรือไม่ หรือฉันแค่เพิ่มรูปแบบการแลกเปลี่ยนโดยไม่มีเหตุผล? ดังนั้นโดยพื้นฐานแล้วฟังก์ชั่นใดที่จะใช้งานได้ดีที่สุดโดยใช้ JSON
11 php  json 

2
รองรับหลายภาษาใน PHP, วิธีปฏิบัติที่ดีที่สุดหรือ?
ฉันกำลังแปลแอปพลิเคชัน php ของฉันให้เป็นภาษาท้องถิ่น ฉันมีปัญหาในการเลือกวิธีที่ดีที่สุดในการบรรลุเป้าหมายเดียวกัน วิธีที่ 1: ขณะนี้กำลังจัดเก็บคำที่จะแปลในอาร์เรย์ในไฟล์ php <?php $values = array ( 'welcome' => 'bienvenida' ); ?> ฉันใช้ฟังก์ชันเพื่อแยกและคืนแต่ละคำตามความต้องการ วิธีที่ 2: ฉันควรใช้ไฟล์ txt ที่จัดเก็บสตริงเหมือนกันหรือไม่ <?php $welcome = 'bienvenida'; ?> คำถามของฉันเป็นวิธีที่ดีกว่าในแง่ของความเร็วและความพยายามในการพัฒนาแบบเดียวกันและเพราะเหตุใด แก้ไข: ฉันต้องการทราบว่าวิธีใดในสองวิธีที่เร็วกว่าในการตอบสนองและทำไมจึงเป็นเช่นนั้น นอกจากนี้การปรับปรุงใด ๆ ในรหัสข้างต้นจะได้รับการชื่นชม !!
11 php  localization 

5
ทำไมชั้นเรียนของฉันถึงแย่กว่าลำดับชั้นของหนังสือ (OOP เริ่มต้น)
ฉันอ่านPHP วัตถุรูปแบบและการปฏิบัติ ผู้เขียนพยายามสร้างแบบจำลองบทเรียนในวิทยาลัย เป้าหมายคือการส่งออกประเภทบทเรียน (การบรรยายหรือการสัมมนา) และค่าใช้จ่ายสำหรับบทเรียนขึ้นอยู่กับว่าเป็นบทเรียนราคาชั่วโมงหรือคงที่ ดังนั้นผลลัพธ์ควรเป็น Lesson charge 20. Charge type: hourly rate. Lesson type: seminar. Lesson charge 30. Charge type: fixed rate. Lesson type: lecture. เมื่ออินพุตเป็นดังนี้: $lessons[] = new Lesson('hourly rate', 4, 'seminar'); $lessons[] = new Lesson('fixed rate', null, 'lecture'); ฉันเขียนสิ่งนี้: class Lesson { private $chargeType; private $duration; …

1
การประเมินเนมสเปซ PHP
ฉันอยู่ในช่วงเปิดตัวโครงการ PHP โอเพนซอร์สซึ่งฉันหวังว่าจะถูกใช้โดยผู้พัฒนารายอื่นในโครงการของตนเอง โครงการไม่รองรับ namespaces ในปัจจุบันและฉันพยายามประเมินว่าควรใช้ namespaces หรือแบบแผนการตั้งชื่อ PEAR ของ Dir_Subdir_Class ซึ่งดูเหมือนว่าจะได้รับประโยชน์ทางเทคนิคเดียวกันทั้งหมดโดยไม่มีข้อเสีย ความซื่อสัตย์ไม่ใช่ทางเลือกที่ง่าย บางจุดของการพิจารณากับ namespaces: อีกวิธีหนึ่งที่โครงการของฉันพยายามสร้างความแตกต่างด้วยการจัดทำ API ที่ง่ายกว่าโครงการที่คล้ายกันอื่น ๆ เนื่องจากเนมสเปซเป็นของใหม่และเพราะมันซับซ้อนกว่าแบบแผนการตั้งชื่อ PEAR การแนะนำให้ใช้ใน codebase จะทำให้โครงการของฉันใช้งานได้ง่ายขึ้น ด้วยการใช้พวกเขาทำให้สูญเสียความแตกต่างในแง่ของความง่ายในการใช้งาน ในขณะที่ฉันเห็นประโยชน์บางประการต่อ namespaces พวกเขาดูเหมือนจะไม่สามารถแก้ปัญหาที่ต้องแก้ไขในผลิตภัณฑ์ PHP ที่ทันสมัยซึ่งใช้หลักการตั้งชื่อ PEAR ความขัดแย้งของการตั้งชื่อในขณะที่ใช้โครงการของฉันควรน้อยที่สุดหากไม่มีอยู่จริง นี้บทความให้ฉันหยุดบางส่วนในการนำ namespaces การดำเนินการของพวกเขาได้รับน้อยกว่าที่เป็นตัวเอก ฉันยังลังเลที่จะกระโดดขึ้นไปบนเกวียนที่ไม่สามารถไปได้ทุกที่ เนื่องจากเนมสเปซเป็นฟีเจอร์ใหม่สำหรับ PHP ฉันยังไม่มั่นใจว่ามันจะกลายเป็นมาตรฐาน ความเข้ากันได้ โค้ด PHP เกือบทั้งหมดที่เคยเขียนไม่ได้ใช้เนมสเปซเพราะเป็นคุณสมบัติใหม่ ห้องสมุดอื่น ๆ จะเข้ากันไม่ได้หากไม่มีการแปลง บางจุดสำหรับการใช้เนมสเปซ: ความเข้าใจ หากเนมสเปซกลายเป็นมาตรฐานและเป็นแนวปฏิบัติที่ดีที่สุดโครงการของฉันอาจถูกมองว่าไม่เป็นมืออาชีพและล้าสมัยอย่างรวดเร็วหากไม่มีพวกเขา การแข่งขัน …
11 php  namespace 

4
การมีเลขหน้าลดภาระเซิร์ฟเวอร์หรือไม่ (ทฤษฎี)
ฉันสงสัยว่าอะไรคือเหตุผลเบื้องหลังการให้เลขหน้า? มันใช้เพราะมันช่วยลดภาระบนเซิร์ฟเวอร์เนื่องจากเราจะ จำกัด จำนวนแถวที่ส่งคืนต่อหน้าทางเทคนิคหรือไม่ ฉันต้องการที่จะทำอะไรบางอย่างโดยไม่ต้องแบ่งหน้า แต่เนื่องจากฉันใหม่กับสิ่งนี้ (ฉันเป็นมือสมัครเล่น) เริ่มสงสัยว่ามันใช้ได้หรือไม่
11 php  pagination 

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

5
Linux ให้ประโยชน์อะไรบ้างเมื่อพัฒนาด้วย PHP สำหรับเว็บ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังจะเริ่มโครงการ PHP ขนาดใหญ่กับเพื่อน นี่เป็นครั้งแรกที่ฉันใช้ PHP และฉันสงสัยว่าฉันควรจะลองพัฒนาบน Linux เพราะมันเป็นที่นิยมมาก ฉันเคยมีประสบการณ์เกี่ยวกับ Linux มาแล้วและการเลือกบรรณาธิการไม่ยากเพราะฉันรู้ว่า vim (แม้ว่าฉันจะดู VS.PHP และมันทำให้ฉันกลับจากการเปลี่ยนแปลง) การใช้ Linux เมื่อพัฒนา PHP (หรือภาษาเว็บใด ๆ ) ให้ประโยชน์แก่ฉันหรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.