PHP มีการวางวัตถุอย่างไร [ปิด]


13

ฉันมีโอกาสได้พูดคุยกับเพื่อนร่วมงานที่น่าสนใจ ส่วนใหญ่เป็นสคริปต์การกระทำแฟลชหรือนักพัฒนา Java

เราได้พูดคุยเกี่ยวกับวิธีที่ php จัดการกับ OOP ฉันบอกว่า PHP สามารถจัดการ OOP ได้เกือบทุกอย่างตั้งแต่ PHP 5.2 หรือ 5.3 ฉันผิดหรือเปล่า? ฉันไม่ได้รับคำตอบว่าใช่ / ไม่ใช่ แต่ฉันต้องการรับฟังความคิดเห็นเพิ่มเติมจากนักพัฒนา


ฉันตอบว่าที่นี่
Martin Wickman

12
ภาษาไม่เลวนักเขียนโปรแกรมอยู่

@Jarrod Roberson: ภาษามีมา แต่กำเนิดแล้วทำไมล่ะ? ถ้าเป็นเช่นนั้นโปรดอ้างอิงงานวิจัยที่สนับสนุนการอ้างสิทธิ์นี้เนื่องจากฉันสนใจที่จะอ่าน
ความผิดพลาด

4
@Jarrod มีบางภาษาที่ไม่ถูกต้องตามกฎหมายโดยเฉพาะอย่างยิ่งเมื่อพวกเขาอยู่ในรุ่นแรก ๆ ของพวกเขา Actionscript, Javascript, Java และ PHP เวอร์ชันแรกนั้นเป็นที่สนใจ
Jordan

2
@JarrodRoberson ดังนั้นโปรแกรมเมอร์ที่ออกแบบ PHP ...
dan_waterworth

คำตอบ:


34

PHP 5.3 รองรับ OOP ได้ค่อนข้างดี

ปัญหาเกี่ยวกับ PHP ที่เกี่ยวกับ OOP คือ OOP นั้นเพิ่งถูกยึดติดกับภาษาในขณะที่ในภาษาอย่าง Java และ ActionScript มันเป็นส่วนหนึ่งของแนวคิดหลักแม้ว่าฉันจะพิจารณาทั้งภาษา OOP ที่ไม่ดีเพราะความหมายเชิงวัตถุไม่ดี

แม้ว่า PHP ในปัจจุบันส่วนใหญ่จะเหมาะสำหรับ OOP แต่ปัญหาคือ:

  1. ส่วนใหญ่ของรหัสฐานออกมี (ห้องสมุด, กรอบ, รหัสที่กำหนดเอง) ไม่ได้เขียนใน PHP 5.3
  2. API ส่วนใหญ่เป็นขั้นตอน arrayยังคงเป็นชนิดที่สำคัญที่สุดและใช้มากที่สุดและไม่ใช่วัตถุ
  3. โปรแกรมเมอร์ PHP ส่วนใหญ่จะใช้สไตล์การดำเนินการในอนาคตอันใกล้ PHP ไม่ได้ส่งเสริม OOP ซึ่งตรงข้ามกับ Objective-C เช่น: Objective-C มี C เป็นเซตย่อยเต็มรูปแบบและอนุญาตให้โปรแกรมโพรซีเดอร์ในหนึ่งในรูปแบบที่บริสุทธิ์ที่สุด แต่มันก็สนับสนุนการใช้ OOP อย่างชัดเจน

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

โดยส่วนตัวแล้วฉันไม่ชอบ PHP เพียงเพราะกระเป๋าสัมภาระนั้น API และทุกอย่าง
อย่างไรก็ตามเฟรมเวิร์กเป็น Flow3, Symfony, CakePHP และ Codeigniter ให้พื้นฐานที่แข็งแกร่งสำหรับ OOP และกระบวนทัศน์ที่ทรงพลังอื่น ๆ เนื่องจากข้อ จำกัด ของ ActionScript และ Java ด้วยความพยายามที่เพียงพอ (เลเยอร์ที่เป็นนามธรรมบนข้อบกพร่องของ PHP) PHP สามารถอยู่ในระดับที่เท่าเทียมกันหรือแม้แต่เหนือกว่าพวกเขา

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


4
จากความอยากรู้อยากเห็นคุณช่วยอธิบายได้ไหมว่าทำไมคุณคิดว่า Java เป็น OOP ที่ไม่ดี?
dkuntz2

2
อะแฮ่ม .. ผมอาจจะปรับปรุงคำตอบของคุณที่จะเฉพาะเจาะจงไปยัง ActionScript 3 ก่อนหน้านั้น Actionscript ไม่ได้ถูกออกแบบมาให้เป็น OO (เป็นแบบ ECMA) และแม้กระทั่ง Actionscript 2 ก็เป็นเสื้อคลุมสำหรับ AS1
Demian Brecht

1
ฉันยังสงสัยด้วยว่าทำไมคุณถึงคิดว่า Java เป็นภาษา OOP ที่ไม่ดี
ตาร์คอร์น

2
@Dessert Brecht: Douglas Crockford ดูเหมือนว่าค่อนข้างมั่นใจ JavaScript (ใด ๆ ดังนั้นสคริปต์ ECMA) คือ OO: javascript.crockford.com/javascript.html
back2dos

2
ความแตกต่างที่เป็นผลรวมที่ดี: PHP มีความสามารถในการใช้วัตถุไม่ใช่เชิงวัตถุ
vartec

11

คุณจะพบว่า " สามารถจัดการ " ไม่เหมือนกับ " รองรับ " ฉันหมายความว่าลงไปที่ nitty-gritties แม้แต่ C " ก็สามารถจัดการ " OOP ถ้าคุณจัดโครงสร้างรหัสของคุณอย่างถูกต้อง คำถามก็คือภาษานั้นนอกเหนือไปจากการทำให้ OOP ให้กำลังใจด้วยการทำให้ OOP เป็นวิธีการเขียนโปรแกรมที่เป็นธรรมชาติที่สุดหรือไม่

ในประสบการณ์ของฉัน (มี จำกัด ) ยอมรับภาษาถิ่น PHP 5.n ไม่ได้ทำสิ่งนี้ มันง่ายเกินไปที่จะหลุดออกจาก OOP และเป็นรหัสขั้นตอนอย่างหมดจด (โปรดทราบว่าฉันไม่คิดว่า PHP เป็นภาษาที่ไม่ดีด้วยเหตุนี้มีหลายเหตุผลที่ฉันคิดว่า PHP เป็นภาษาที่ไม่ดี แต่การสนับสนุน OOP ไม่ใช่หนึ่งในนั้น;))


12
ผู้ชายฉันสามารถไปเกี่ยวกับเรื่องนั้นได้ทุกเพศทุกวัยดวงจันทร์ $e = function_that_returns_an_array()[0];นี่เป็นข้อมูลโค้ดที่ล้มเหลว: $a = function_that_returns_an_array(); $e = $a[0];นี่คือสิ่งที่คุณต้องทำเพื่อแก้ไขมัน ภาษาที่ไวยากรณ์ไม่ยอมให้คุณใช้ผลลัพธ์ของการเรียกฟังก์ชั่นติ๊กฉัน นอกจากนี้บอกฉันด้วยว่าตัวเลขต่อไปนี้เป็นทศนิยม: 0246875. (คำแนะนำ: คุณจะไม่สามารถหาวิธีที่จะใช้งานเล็ก ๆ น้อย ๆ !) PHP เป็นเพียงแค่เต็มไปด้วยความโง่เขลาแบบนี้
เพียงความถูกต้องของฉันความคิดเห็นที่

6
@ มูนนี่คือการอ่านสำหรับคุณ: softwarebashing.org/blog/2009/09/php-the-ultimate-suckและtommorris.org/wiki/PHP%20Sucksมีปัญหาร้ายแรงอยู่มากมาย แต่ส่วนใหญ่เป็นเพียงนิดเดียว การเลือก สิ่งที่ฉันเกลียดเกี่ยวกับ PHP คือวัฒนธรรมมันไม่ได้มีความเป็นมืออาชีพหรือเชิงวิชาการเท่าทางเลือกคือทับทิมและงูหลาม ทางเลือกคือ nicer และดึงดูดโปรแกรมเมอร์ที่ดีที่สุด ตัวอย่างเช่น ruby ​​และ python ทั้งคู่มีเชลล์แบบโต้ตอบคุณสมบัติการใช้งานที่เหมาะสมและไวยากรณ์ที่สะอาด พวกเขาสนุกมากขึ้นในการใช้ นอกจากส่วนแบ่งการตลาดในเว็บโฮสติ้งที่ใช้ร่วมกันทำไมต้องใช้ php
Keyo

8
"มีเพียงสองภาษาเท่านั้น: คนที่บ่นและคนที่ไม่มีใครใช้" Bjarne Stroustrup เข้าฌาน
Sylverdrag


5
Stroustrup โกรธมากที่ C ++ เป็นหนึ่งในภาษาที่คนพูดถึง
เพียงความคิดเห็นที่ถูกต้องของฉัน

8

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

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

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

บางทีภาษาบางภาษาอาจเหมาะสำหรับการเรียนรู้การเขียนโปรแกรมเชิงวัตถุ แต่ฉันคิดว่ามันจะแตกต่างกันโดยนักพัฒนา สำหรับฉันมันไม่ได้คลิกจนกว่าฉันจะอ่านหนังสืออูฐของ Larry Wall เกี่ยวกับวิธี Perl (ไม่?) OOP การให้พรการอ้างอิงอย่างชัดเจนว่าเป็นของชั้นเรียนขับรถกลับบ้านโดยชี้ให้ฉันเห็นว่าตัวอย่างของวัตถุนั้นเป็นอย่างไรเมื่อเทียบกับชั้นเรียน บางคนชอบวิธีการเรียนรู้ทุกเวลาของ Java สำหรับการเรียนรู้ เนื่องจาก OOP เป็นปัญหาทางสถาปัตยกรรมมากกว่าคุณจึงเรียนรู้ได้ง่ายขึ้นหลังจากที่คุณทราบตัวแปรพื้นฐานการแสดงออกลำดับการเลือกและการทำซ้ำดังนั้นภาษาใดก็ตามที่ไม่ทำให้ OOP ของคุณมีความได้เปรียบทางการศึกษาในความคิดของฉัน

เมื่อภรรยาของฉันเข้าสู่ชั้นเรียนการเขียนโปรแกรมด้วย java เธอรู้สึกหงุดหงิดอยู่ตลอดเวลาโดยpublic static void mainใส่ทุกอย่างไว้ในชั้นเรียนซึ่งเธอยังไม่มีพื้นฐานที่จะเข้าใจ แต่ครูบอกเธอว่าเธอต้องการมัน ฉันพยายามอธิบาย แต่มันยากมากที่จะอธิบายให้คนที่เพิ่งเรียนรู้เกี่ยวกับตัวแปรที่ว่าทำไมมันจะมีประโยชน์ในการป้องกันส่วนอื่น ๆ ของรหัสจากการเข้าถึงพวกเขาและวิธีการตัดสินใจแยกมันออกมา คุณอาจยืนยันว่าการเรียนรู้การเขียนโปรแกรมตามขั้นตอนก่อนทำให้เกิดนิสัยที่ไม่ดี แต่สิ่งที่เกี่ยวกับนิสัยของการคัดลอกและวางรหัสที่คุณไม่เข้าใจ?


ดูเหมือนว่าคำว่า "วัตถุ", "ภาษา", "เชิง" และ "การเขียนโปรแกรม" ยังไม่ได้รับการเห็นด้วยและไม่ชัดเจนและมีความสัมพันธ์กันดังนั้นจึงไม่มีคำตอบดำหรือขาวที่เป็นไปได้ แต่อีกครั้ง "สีดำ" และ "สีขาว" ไม่ได้ตกลงกันและความหมายของพวกเขาจะเข้าใจยาก ฯลฯ ฯลฯ ฯลฯ
Tulains Córdova

5

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

ฉันจำคำพูดไม่ได้ แต่มันมาจากคนที่เปรียบเทียบ PHP ดิบกับการใช้ Ruby on Rails ใหม่แล้วก็ทำสิ่งนี้: Rails ทำให้การเขียนโค้ดง่ายและเขียนรหัสไม่ดี PHP ทำให้การเขียนโค้ดไม่ถูกต้องเป็นเรื่องง่ายและทำให้การเขียนโค้ดดียาก บรรทัดเกี่ยวกับ PHP นั้นจะรวมอยู่ใน OOP มันสามารถเป็นภาษา OO ที่ดีได้อย่างสมบูรณ์แบบ แต่มันก็ยากที่จะทำเช่นนั้น


4

PHP จัดหมวดหมู่

PHP เป็นเพียงภาษากาวเช่นเดียวกับ BASH หรือ Perl เป็นเรื่องที่ดี แต่ไม่เก่งเรื่องอื่นเลย ภาษาไม่ได้ถูกออกแบบ มันพัฒนาโดยการแฮ็กโค้ดหลาย ๆ ตัวเข้าด้วยกันในลักษณะที่จับจด (รหัสและแก้ไข)

ภาษารวบรวม

ตรงกันข้ามกับ PHP, Java เป็นภาษาที่รวบรวมซึ่งได้รับการออกแบบอย่างถูกต้อง มี JSR ที่กำหนดภาษากรอบงานและแนวคิดระดับองค์กรจำนวนมากเช่น EJB, JMS, ESB, Spring, Struts, Hibernate และอื่น ๆ

ซอฟต์แวร์องค์กร

ในแง่ของระบบองค์กร Java EE เป็นโซลูชันที่เหมาะสมกับวัตถุประสงค์ (Enterprise Edition) ในขณะที่ PHP ถูกใช้ใน บริษัท ที่พยายามลดต้นทุนด้วยการจ้างแรงงานราคาถูกที่มีคุณสมบัติน้อยกว่า

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

การออกแบบซอฟต์แวร์ (พูดคุยด้านสถาปัตยกรรม)

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

multithreading

PHP ไม่รองรับมัลติเธรด รหัสจะเป็นหัวข้อเดียวเสมอ สิ่งนี้ขัดขวางประสิทธิภาพการทำงานสำหรับปัญหาที่ไม่สำคัญภายใต้ภาระงานหนัก ด้วย Java EE มัลติเธรดได้รับการสนับสนุนอย่างเต็มที่ตัวอย่างเช่นผ่านทางอินเตอร์เฟสที่เรียกใช้

การสนับสนุนและมาตรฐาน

พิจารณาการปรับใช้เว็บเซอร์วิสและมาตรฐานอื่น ๆ ด้วย ในขณะที่ Java มี บริษัท ขนาดใหญ่เช่น Oracle, IBM, RedHat, Apache และอื่น ๆ อีกมากมาย PHP มีเฉพาะ Zend

ข้อสรุป

โดยสรุป PHP เป็นภาษาเชิงวัตถุที่ไม่ดี พูดอย่างเคร่งครัดมันไม่ได้เป็นเชิงวัตถุ แต่ไฮบริดซึ่งไม่ดีจากรุ่น> 5 เพราะ OOP ผสมกับการเขียนโปรแกรมตามขั้นตอน ฉันจะแนะนำ PHP เป็นกาวเช่น BASH แต่สำหรับงานที่จริงจังฉันจะใช้ Java EE

ความคิดที่เกี่ยวข้อง

ข้อตกลงหลักกับ Zend Framework 2 ล่าสุดคือพยายามเป็นเหมือน Java EE แต่ล้มเหลวอย่างสมบูรณ์ในการส่งมอบแพคเกจคุณลักษณะคุณสมบัติเครื่องมือการทำงานอัตโนมัติการตรวจสอบข้อผิดพลาดสถาปัตยกรรมการออกแบบและระบบอัตโนมัติ ทุกอย่าง

จากประสบการณ์ของฉันแพงกว่าการใช้ PHP สำหรับโครงการที่ซับซ้อนกว่ากับ Java

นอกจากนี้ยังมีข่าวลือบางอย่างเช่นว่าPHP ย่อมาจากการเขียนโปรแกรมที่น่ากลัวสวย ฉันสามารถยืนยันสิ่งเหล่านี้


3

ภาษาจัดการกับ OOP ได้ดีเพียงใด ฉันอยากจะถามว่าฉันสามารถเขียนโปรแกรมด้วยวิธี OO ได้ดีเพียงใด ฉันสามารถหัวแม่มือจมูกของฉันทุกอย่างควรจะ-a-ระดับท่าทางถ่ายโดย Java โดยการทำทุกอย่างคงที่สาธารณะ
PHP รองรับ OOP; มันไม่ได้บังคับให้ฉันเขียนในลักษณะ OO เท่านั้น ขึ้นอยู่กับว่าฉันเข้าใจและเขียนโปรแกรมได้ดีเพียงใด


2

PHP รองรับคุณสมบัติ! (เริ่มต้น 5.4) ภาษาใดก็ตามที่สามารถจัดการการใช้ซ้ำในแนวนอนได้นั้นเป็นภาษา OO ที่ดีพอในหนังสือของฉัน


1

ทีนี้เราต้องคิดถึงสิ่งที่ทำให้ภาษา OO มากขึ้นและเหตุผลอะไรที่ทำให้มันเป็นอย่างนั้น

JavaScript คือการดำเนินการ ECMAScript ซึ่งหมายถึงการทำงานในเบราว์เซอร์ environement เป็นภาษาตีความ ความจริงที่ว่ามันเป็นความคิดที่จะตีความภาษามีผลกระทบอย่างมากต่อการออกแบบประโยค / พฤติกรรม

ตัวอย่างเช่นจะไม่ติดตาม OOP แต่นอกเหนือจากนั้นมีข้อเท็จจริงมากมายเช่น OO prgrammer อาจพบว่าพฤติกรรมบางอย่างเช่นฟังก์ชั่นการยกฟังก์ชั่นทำให้เกิดความสับสนมาก

อีกครั้งมีหลายสิ่งที่มาพร้อมกับภาษา OO เช่น C ++, Java, C # จะทำให้พวกเขาคอมไพเลอร์ที่มีประสิทธิภาพเช่นการพิมพ์ที่แข็งแกร่ง อย่างไรก็ตามเนื่องจาก JS ทำงานในสภาพแวดล้อมที่ถูกตีความจึงไม่เป็นไปตามการพิมพ์ที่รัดกุมแทนจึงเป็นภาษาที่พิมพ์อย่างหลวม ๆ

นอกเหนือจากความแตกต่างด้านพฤติกรรมข้างต้นแล้วยังมีความแตกต่างทางไวยากรณ์อีกมากมายเช่น JS มีสัญกรณ์ตัวอักษรที่อาจทำให้ผู้เขียนโปรแกรม C # สับสนได้ อย่างไรก็ตาม C # ยังมี Object ตามตัวอักษรเช่นไวยากรณ์แม้ว่าจะเป็นภาษาที่รวบรวมและไวยากรณ์ดังกล่าวจะไม่ค่อยได้ใช้เพราะมันไม่ได้เป็นรูปแบบรหัส OO แบบดั้งเดิม

ขณะนี้มีอีกหนึ่งจุดที่บอกว่าภาษานั้นดี OO หรือไม่: มันพัฒนามาจาก C ++ เมื่อ Java, C # พัฒนาจาก C ++ และติดตามพฤติกรรมและไวยากรณ์ที่คล้ายคลึงกันชุมชนขนาดใหญ่จะรับรู้พฤติกรรมและไวยากรณ์ดังกล่าวเป็นสิ่งเดียว OOและคิดว่าภาษาใด ๆ ที่ไม่ยับยั้งความคล้ายคลึงกันดังกล่าวไม่ใช่แค่ OO

อย่างไรก็ตามเราอย่าลืมว่า OO เป็นแนวคิดที่เป็นนามธรรมมันไม่ได้เชื่อมโยงกับรูปแบบไวยากรณ์ใด ๆ และแม้จะไม่ได้เป็นทรัพย์สินที่มีลักษณะเฉพาะของพระเจ้า

และ PHP นั้นดีมาก OO เพียงแค่ไม่ได้มองและรู้สึกเหมือน Java, C ++, C # ไม่ทำให้ภาษา OO แย่ลง ฉันเรียนรู้ C ++ แล้ว Java และ C #

ดังนั้นจนถึงตอนนี้หัวของฉันเป็นอย่างดี OO จากนั้นฉันก็เรียนรู้ JS จากหนังสือที่ดีมาก "Wrox Pro" และมันก็ทำให้ฉันสับสนมาก ฉันเพิ่งสนุกกับพฤติกรรมและความแตกต่างทางไวยากรณ์ของ JS จากนั้นฉันก็รู้ว่า Object มีตัวอักษรเหมือนกับไวยากรณ์อยู่ใน C # และในขณะที่เรียนรู้ PHP ฉันรู้สึกราวกับว่ามันนำสิ่งต่าง ๆ จากทั้งสองโลกมาใช้

สิ่งที่เราต้องทำคือการเรียนรู้ไวยากรณ์และรายละเอียดปลีกย่อยของพฤติกรรมที่มีในขณะที่ใช้งาน OO เมื่อเราเชี่ยวชาญพวกเขาเราอาจเริ่มคิดว่านี่เป็นการใช้งาน OO ที่ดีขึ้น

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