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

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

16
การเรียนรู้ภาษาการเขียนโปรแกรมจำนวนมากเป็นเรื่องเจ็บปวดหรือไม่?
ฉันเริ่มอาชีพการเขียนโปรแกรมของฉันกับ BASIC ในช่วงเกรด 9 ฉันเรียนรู้ BASIC เล็กน้อยโดยการเขียนโปรแกรมง่าย ๆ เพื่อเพิ่มลบและพิมพ์ จากนั้นฉันไปมหาวิทยาลัยและรับข้อมูลคอมพิวเตอร์และวิศวกรรมระบบ ในปีแรกฉันได้รับการสอน C และฉันมีความสามารถที่ดี ต่อไปฉันเรียนรู้ C ++ ในปีที่สอง มันเพิ่งสอนความรู้เกี่ยวกับ OOP ให้ฉัน ตอนนี้ฉันกำลังทำ PHP (พร้อมด้วย HTML) ฉันยังไม่เชี่ยวชาญ C ++, BASIC หรือ PHP ตอนนี้ฉันวางแผนที่จะย้ายไปที่การพัฒนาอุปกรณ์พกพา แต่ฉันรู้สึกว่าฉันไม่ได้ครอบคลุมทุกอย่างในภาษาที่ฉันเรียนรู้ มันสำคัญจริงๆหรือ
37 php  c++  c  basic 

2
PHP: จะใช้อาร์เรย์เมื่อใดและเมื่อใดที่จะใช้วัตถุสำหรับการสร้างรหัสเก็บข้อมูลส่วนใหญ่
PHP เป็นภาษากระบวนทัศน์ผสมอนุญาตให้ใช้และส่งคืนชนิดข้อมูลที่ไม่ใช่วัตถุเช่นอาร์เรย์ ฉันถามคำถามเพื่อพยายามอธิบายแนวทางบางอย่างสำหรับการเลือกอาร์เรย์กับวัตถุเมื่อตัดสินใจเลือกสิ่งที่โปรแกรมสร้างขึ้นเพื่อใช้ในสถานการณ์เฉพาะ นี่เป็นคำถามเกี่ยวกับวิธีการเข้ารหัสข้อมูลโดยใช้การสร้างภาษา PHP และเมื่อมีวิธีหนึ่งที่น่าจะเลือกมากกว่าเพื่อการส่งผ่านข้อมูล (เช่น Service-Oriented Architecture หรือบริการบนเว็บ) ตัวอย่าง สมมติว่าคุณมีประเภทรายการประกอบด้วย {cost, name, part_number, item_count} โปรแกรมของคุณเรียกร้องให้แสดงประเภทรายการดังกล่าวหลายประเภทซึ่งคุณต้องการใช้อาร์เรย์เป็นที่เก็บด้านนอกเพื่อเก็บรายการแต่ละประเภทไว้ [คุณยังสามารถใช้ PHP เป็นArrayObjectสำหรับกระบวนทัศน์ OO แต่คำถามของฉันไม่เกี่ยวกับการที่ (นอก) อาร์เรย์] คำถามของฉันเกี่ยวกับวิธีเข้ารหัสข้อมูลประเภทรายการและเกี่ยวกับกระบวนทัศน์ที่จะใช้ PHP ช่วยให้คุณใช้หรือPHP Native ArraysPHP Objects ฉันสามารถเข้ารหัสข้อมูลดังกล่าวได้สองวิธีดังนี้: //PHP's associative arrays: $ret = array( 0 => array( 'cost' => 10.00, 'name' => 'item1', 'part_number' => 'zyz-100', 'item_count' …

7
จำเป็นที่จะต้องทำการทดสอบฟังก์ชั่นที่เรียบง่าย (มีอยู่ในตัวเอง) หรือไม่?
พิจารณาสิ่งนี้: public function polynominal($a, $b, $c, $d) { return $a * pow($x, 3) + $b * pow($x, 2) + $c * $x + $d; } สมมติว่าคุณเขียนการทดสอบต่าง ๆ สำหรับฟังก์ชั่นด้านบนและพิสูจน์ตัวเองและคนอื่น ๆ ว่า "ใช้งานได้" ทำไมไม่ลองลบการทดสอบเหล่านั้นออกและใช้ชีวิตอย่างมีความสุขตลอดไป ประเด็นของฉันคือฟังก์ชั่นบางอย่างไม่จำเป็นต้องมีการทดสอบอย่างต่อเนื่องหลังจากที่พวกเขาได้รับการพิสูจน์แล้วว่าทำงานได้ ฉันกำลังมองหาตัวนับคะแนนที่บอกว่าใช่ฟังก์ชั่นเหล่านี้ยังต้องได้รับการทดสอบเพราะ: ... หรือว่าใช่สิ่งเหล่านี้ไม่จำเป็นต้องผ่านการทดสอบ ...

11
ทำไม PHP ถึงมีอินเตอร์เฟส?
ฉันสังเกตเห็นว่าใน PHP5 มีการเพิ่มส่วนต่อประสานกับภาษา อย่างไรก็ตามเนื่องจาก PHP ถูกพิมพ์อย่างหลวม ๆ ดูเหมือนว่าประโยชน์ส่วนใหญ่ของการใช้ส่วนต่อประสานจะหายไป ทำไมสิ่งนี้จึงรวมอยู่ในภาษา

3
วิธีสร้างเว็บแอปพลิเคชั่นแบบแยกส่วนอย่างสมบูรณ์ [ปิด]
ในอีกไม่กี่เดือนข้างหน้าเราจะเริ่มโครงการที่เราใช้ระบบที่เราสร้างขึ้นเพื่อลูกค้า (v1) และสร้างใหม่โดยเริ่มจากศูนย์ เป้าหมายของเรากับ v2 คือการทำให้เป็นแบบแยกส่วนเพื่อให้ลูกค้าเฉพาะรายนี้จะมีชุดโมดูลของตนเองที่ใช้จากนั้นลูกค้ารายอื่นอาจใช้ชุดโมดูลที่แตกต่างกันโดยสิ้นเชิง เคล็ดลับที่นี่คือ บริษัท A อาจมีชุดการชำระเงินและโมดูลผู้ใช้ที่เปลี่ยนวิธีการทำงานของระบบ บริษัท B อาจยึดตามขั้นตอนการชำระเงินมาตรฐาน แต่กำหนดวิธีการเรียกดูผลิตภัณฑ์ อะไรคือวิธีที่ดีในสถาปัตยกรรมแอปพลิเคชันเมื่อคุณสร้างแอปพลิเคชันตั้งแต่เริ่มต้นที่คุณต้องการให้มีการCoreใช้ร่วมกันในหมู่ลูกค้าทั้งหมดในขณะที่ยังคงความยืดหยุ่นสำหรับสิ่งที่จะแก้ไขโดยเฉพาะสำหรับลูกค้า? ฉันเคยเห็น hooks ของ CodeIgniter และไม่คิดว่ามันเป็นทางออกที่ดีเพราะเราสามารถจบได้ด้วย 250 hooks และมันยังไม่ยืดหยุ่นพอ โซลูชั่นอื่น ๆ มีอะไรบ้าง เป็นการดีที่เราไม่จำเป็นต้องลากเส้นในทราย

6
เหตุใดการใช้ 'ขั้นสุดท้าย' ในชั้นเรียนจึงไม่ดีจริงๆ
ฉันกำลังสร้างเว็บไซต์เดิมของ PHP OOP ฉันถูกล่อลวงให้เริ่มใช้ 'ขั้นสุดท้าย' ในชั้นเรียนถึง " make it explicit that the class is currently not extended by anything" สิ่งนี้อาจช่วยประหยัดเวลาได้มากถ้าฉันมาเรียนและฉันสงสัยว่าฉันสามารถเปลี่ยนชื่อ / ลบ / แก้ไขprotectedคุณสมบัติหรือวิธีการได้หรือไม่ ถ้าฉันจริงๆต้องการที่จะขยายชั้นเรียนฉันก็สามารถลบคำหลักสุดท้ายที่จะปลดล็อคสำหรับการขยาย คือถ้าฉันมาในชั้นเรียนที่ไม่มีชั้นเรียนเด็กฉันสามารถบันทึกความรู้นั้นโดยการทำเครื่องหมายชั้นเรียนเป็นที่สิ้นสุด ครั้งต่อไปที่ฉันเข้ามาฉันจะไม่ต้องค้นหา codebase อีกครั้งเพื่อดูว่ามีลูกหรือไม่ จึงช่วยประหยัดเวลาในระหว่างการรีแฟคเตอร์ ทุกอย่างดูเหมือนจะเป็นแนวคิดที่ช่วยประหยัดเวลาได้ แต่ .... ฉันมักจะอ่านว่าคลาสควรจะทำ 'ขั้นสุดท้าย' ในโอกาสที่หายาก / พิเศษเท่านั้น บางทีมันอาจทำให้เกิดการสร้างวัตถุจำลองหรือมีผลข้างเคียงอื่น ๆ ที่ฉันไม่ได้คิด ฉันพลาดอะไรไป

13
คำแนะนำด้านอาชีพ: พักกับ PHP หรือเริ่มอาชีพใหม่ในสิ่งอื่น (.Net?) [ปิด]
ฉันวางแผนที่จะย้ายไปนิวยอร์กในช่วง 6-12 เดือนที่ผ่านมาดังนั้นฉันจึงถูกบังคับให้หางานใหม่ เมื่อฉันวางแผนที่จะเริ่มชีวิตของฉันในเมืองอื่นมันอาจเป็นเวลาที่ดีที่จะคิดถึงการเปลี่ยนแปลงอาชีพ ฉันพบความคิดเห็นที่แตกต่างกันมากมายเกี่ยวกับ PHP vs .Net vs Java และนี่ไม่ใช่หัวข้อที่นี่ ฉันไม่ต้องการที่จะเริ่มการต่อสู้ใหม่เกี่ยวกับภาษาที่ดีกว่า การรู้ภาษาการเขียนโปรแกรมไม่ใช่สิ่งสำคัญที่สุดสำหรับการเป็นนักพัฒนาซอฟต์แวร์ ในการเป็นนักพัฒนาที่ดีจริงๆคุณต้องรู้จัก OOP รูปแบบการออกแบบการทดสอบ ... และภาษาเป็นเพียงเครื่องมือในการทำให้สิ่งต่างๆเกิดขึ้น กลับไปที่คำถามของฉัน ฉันมีประสบการณ์หลากหลายในด้าน IT - 1 ปีในฐานะ IT Support guy (การบริหารและการสนับสนุน Windows) มีประสบการณ์ 2 ปีในการเขียนโปรแกรมแบบฝังตัว (VB.Net 2005) และในช่วง 2 ปีที่ผ่านมาฉันทำงานกับ PHP / MySQL ฉันทำงานกับ Magento web shop ซึ่งช่วยเหลือในบางโครงการใน Symfony ซึ่งแก้ไขไซต์ Drupal ไม่กี่แห่ง ข้อกังวลหลักของฉันคือ: …

1
ด้วยเฟรมเวิร์คของ PHP ทำไมคอนเซปของ“ เส้นทาง” จึงถูกใช้?
เหตุผลที่ฉันถามนี้เพราะสคริปต์ PHP ไม่ใช่เส้นทางใช่ไหม ตัวอย่างเช่นถ้าคุณมี article.php แล้วเส้นทางของคุณเป็นเพียงhttp://mysite.com/article.php เหตุใดจึงเป็นนามธรรมเพิ่มเติมแนวคิดของเส้นทางเมื่อมันมีอยู่แล้วเป็นไฟล์ง่ายๆ?

6
ฉันควรเลือก Doctrine 2 หรือ Propel 1.5 / 1.6 และทำไม [ปิด]
ฉันต้องการได้ยินจากผู้ที่ใช้ Doctrine 2 (หรือใหม่กว่า) และ Propel 1.5 (หรือใหม่กว่า) การเปรียบเทียบส่วนใหญ่ระหว่างผู้ทำแผนที่เชิงสัมพันธ์ของวัตถุทั้งสองนั้นอ้างอิงจากเวอร์ชันเก่า - Doctrine 1 เทียบกับ Propel 1.3 / 1.4 และ ORM ทั้งสองผ่านการออกแบบที่สำคัญในการแก้ไขล่าสุดของพวกเขา ตัวอย่างเช่นการวิพากษ์วิจารณ์ส่วนใหญ่ของ Propel นั้นดูเหมือนจะอยู่กึ่งกลางของคลาส"ModelName Peer " ซึ่งถูกคัดค้านใน 1.5 ทุกกรณี นี่คือสิ่งที่ฉันได้สะสมจนถึงขณะนี้ (และฉันพยายามทำให้รายการนี้สมดุลเท่าที่จะเป็นไปได้ ... ): ขับเคลื่อน ข้อดี เป็นมิตรกับ IDE อย่างยิ่งเนื่องจากมีการสร้างรหัสจริงแทนที่จะใช้วิธีเวทมนต์ PHP ซึ่งหมายความว่าฟีเจอร์ IDE เช่นการทำให้โค้ดสมบูรณ์มีประโยชน์จริง ๆ เร็ว (ในแง่ของการใช้ฐานข้อมูล - ไม่มีการทำวิปัสสนาบนฐานข้อมูล) ล้างการโยกย้ายระหว่างเวอร์ชันสกีมา (อย่างน้อยใน 1.6 เบต้า) …
30 php  orm  doctrine 

7
สิ่งใดดีกว่า: รวม HTML ไว้ในโค้ด PHP หรือภายนอก?
ดูนี่สิ: <?php echo "Hello World"; ?> <br /> <?php echo "Welcome"; ?> และตอนนี้ดูที่นี่: <?php echo "Hello World"; echo "<br />"; echo "Welcome"; ?> ตัวอย่างใดในตัวอย่างข้างต้นที่มีการพิจารณาว่าดีกว่า (อย่างน้อยจากมุมมองประสิทธิภาพ) ฉันรู้ว่าตัวอย่างเป็นเรื่องเล็กน้อย แต่ฉันต้องการติดตามนิสัยการฝึกฝนที่ดีตั้งแต่เริ่มต้นดังนั้นเมื่อฉันมีบรรทัดมากขึ้นเรื่อย ๆ พวกเขาจะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงานหรืออะไรก็ตามในทางลบ

15
ควรที่จะกลับไปมาระหว่างภาษาการเขียนโปรแกรมสองภาษาหรือไม่? [ปิด]
ฉันเขียน PHP ค่อนข้างมากมาเกือบสองปีแล้ว ตอนนี้ฉันกำลังพัฒนา. NET (ส่วนใหญ่ c #) อย่างไรก็ตามบางครั้งฉันกลับไปและทำ php คำถามหลักของฉันคือฉันควรทำสิ่งนี้ต่อไปหรือไม่ฉันควรพัฒนาใน C # ต่อไปหรือไม่? สิ่งนี้จะเป็นอันตรายต่อฉันในระยะยาวหรือไม่ (คุณคิดว่าเป้าหมายหลักของฉันคือการไม่เป็นผู้ค้าขายทุกคน) หรือเป็นวิธีปฏิบัติที่ดีที่จะทำ

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

5
ควรใช้วิธีปฏิบัติที่ดีที่สุดในสคริปต์การเข้าสู่ระบบ PHP อย่างไร
ฉันต้องการเขียนสคริปต์การเข้าสู่ระบบอีกครั้งสำหรับเว็บไซต์ลูกค้าเพื่อให้พวกเขาปลอดภัยมากขึ้น ฉันต้องการทราบว่าแนวทางปฏิบัติที่ดีที่สุดที่ฉันสามารถนำไปใช้กับสิ่งนี้ได้อย่างไร แผงควบคุมที่มีการป้องกันด้วยรหัสผ่านนั้นมีอยู่มากมาย แต่มีเพียงไม่กี่คนที่ใช้แนวทางปฏิบัติที่ดีที่สุดในแง่ของการเขียนโค้ดความเร็วและความปลอดภัย ฉันจะใช้ PHP และฐานข้อมูล MySQL ฉันเคยใช้ md5 แต่ฉันเห็นว่า sha256 หรือ sha512 น่าจะดีกว่า (พร้อมแฮชและเกลือที่ปลอดภัย) สคริปต์การเข้าสู่ระบบบางตัวจะบันทึกที่อยู่ IP ตลอดเซสชันหรือแม้กระทั่งตัวแทนผู้ใช้ แต่ฉันต้องการหลีกเลี่ยงเนื่องจากไม่เข้ากันได้กับพร็อกซีเซิร์ฟเวอร์ ฉันยังใช้แนวปฏิบัติที่ดีที่สุดเล็กน้อยในการใช้งานเซสชันใน PHP 5 (ครั้งล่าสุดที่ฉันอ่านคือ PHP 4) ดังนั้นแนวปฏิบัติที่ดีที่สุดบางข้ออาจเป็นประโยชน์ ขอบคุณ

9
ทำไม PHP Devs หลายคนเกลียดการใช้ isset () และ / หรือฟังก์ชั่นการป้องกันที่คล้ายกันของ PHP อย่างใดอย่างหนึ่งเช่น empty ()
ใน stackoverflow ฉันเห็นปัญหานี้หมดไปตลอดเวลา: E_NOTICE? == E_DEBUG หลีกเลี่ยง isset () และ @ พร้อม error_handler ที่ซับซ้อนยิ่งขึ้น วิธีการตั้งค่า PHP ไม่ให้ตรวจสอบการเลิกค้นหาดัชนีสำหรับ $ _GET เมื่อ E_NOTICE เปิดอยู่ วิธีหยุด PHP จากการบันทึกข้อผิดพลาด PHP Notice ฉันจะปิดประกาศ PHP 5.3 ดังกล่าวได้อย่างไร แม้แต่Pekka (ผู้ที่ให้คำแนะนำ PHP ที่เป็นของแข็งจำนวนมาก) ก็เจอกับE_NOTICEสัตว์ประหลาดที่หวั่นกลัวและหวังว่าจะได้ทางออกที่ดีกว่าการใช้isset(): isset () และเปล่า () ทำให้โค้ดน่าเกลียด โดยส่วนตัวแล้วฉันใช้isset()และempty()ในหลาย ๆ ที่เพื่อจัดการการไหลของแอปพลิเคชันของฉัน ตัวอย่างเช่น: public function do_something($optional_parameter = NULL) …

10
ฉันจะแปลง ASP.NET เป็น PHP ให้กับลูกค้าที่มีศักยภาพได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันทำงานที่ร้านค้าของ Microsoft ที่ทำการพัฒนาเว็บไซต์เป็นหลัก เรามีลูกค้าที่ขอให้เราตรวจสอบ (ปรับปรุง) โมเดลข้อมูลสำหรับเว็บแอปของเขา แต่บอกว่าเขาต้องการพัฒนาแอปของเขาใน PHP (เขารู้ว่า "ผู้ชาย" ที่สามารถทำได้) เมื่อฉันถามเขาว่าทำไมเขาถึงต้องการไปกับ PHP เขาให้ชุดของการโต้แย้งมาตรฐานจากยุค 90: Microsoft เป็นสิ่งที่ชั่วร้ายและ PHP นั้นฟรี การเขียนแอป ASP.NET มีราคาแพงกว่า (ซอฟต์แวร์ฉลาด) ทำไม Facebook ถึงใช้ PHP ถ้ามันเป็นความคิดที่ไม่ดี [คลาสสิก] เขามีความคิดเห็นเพิ่มเติมอีกเล็กน้อยเกี่ยวกับค่าใช้จ่ายที่เกี่ยวข้องกับการไปใช้ NET ความจริงก็คือว่า "Microsoft มีราคาแพง" ไม่เก็บน้ำอีกต่อไปด้วยชุด "Express" ของพวกเขาคุณสามารถพัฒนาแอพ ASP.NET โดยไม่ต้องจ่ายอะไรเลยสำหรับซอฟต์แวร์ เมื่อพูดถึงการโฮสต์คุณสามารถประหยัดค่าใช้จ่ายด้วย PHP มากกว่า. NET …

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