Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php php这样做有什么不妥之处呢?

php这样做有什么不妥之处呢?

Oct 10, 2016 am 11:56 AM
php

提这个问题的缘由其实是我在知乎上看了这么一个回答:

PHP编程中有哪些常见的低级错误?

http://www.zhihu.com/question...

其中提到的错误做法:
把Class当名字空间来用,method就是套了Class的function

这样做有什么不妥之处呢?

回复内容:

提这个问题的缘由其实是我在知乎上看了这么一个回答:

PHP编程中有哪些常见的低级错误?

http://www.zhihu.com/question...

其中提到的错误做法:
把Class当名字空间来用,method就是套了Class的function

这样做有什么不妥之处呢?

用过程式结构化编程就是"思想固化"?我看把"面向对象"当成放之四海而皆准的"万金油"才是"八股文般的思想固化"吧,甚至提出完全面向对象这种"一刀切极端"的编程要求.我觉得对象思想的最大好处在于封装,能把相关的函数封装起来提供给其他人调用,有命名冲突改个类名就行.如果不用类,有命名冲突的时候就需要修改多个函数的前缀了.所以说把类当命名空间用,也没什么不妥.

我们就看PHP自身,PHP提供的功能有基于函数和类的两种封装,基于函数的封装有常用的字符串操作函数和数组操作函数等,基于类的封装则有SPL库等,你会说面向对象就一定比过程式先进和方便么?我看不见得.如果真的那么热衷面向对象,难道不应该是去学所有库都基于类封装"完全面向对象"的Java么?

Java大神王垠看待面向对象编程:

“对象思想”作为数据访问的方式,是有一定好处的。 然而“面向对象”(多了“面向”两个字),就是把这种本来良好的思想东拉西扯,牵强附会,发挥过了头。 很多面向对象语言号称“所有东西都是对象”,把所有函数都放进所谓对象里面,叫做“方法”,把普通的函数叫做“静态方法”。 实际上只有极少需要抽象的时候,需要使用内嵌于对象之内,跟数据紧密结合的“方法”。 其他的时候,你其实只是想表达数据之间的变换操作,这些完全可以用普通的函数表达,而且这样做更加简单和直接。 把所有函数放进对象的做法是本末倒置的,因为函数本身并不属于对象,它们只是对象上面的变换操作。 绝大部分函数是独立于对象的,它们不能被叫做“方法”。 强制把所有函数放进它们本来不属于的对象里面,把它们全都作为“方法”,导致了面向对象代码逻辑过度复杂。 很简单的想法,非得绕好多道弯子才能表达清楚。 很多人至今不知道自己所用的“面向对象语言”里面的很多优点,都是从过程式语言继承来的。 大多数的面向对象语言里都缺乏正确的实现一等函数的机制。 Java语言是一个极致,它完全不允许将函数当作数据来传递。 你需要将全部的函数都封装进类,然后称它们为“方法”,但就像我说的,这是绑架。 缺乏一等函数是为什么Java里需要这么多“设计模式”的主要原因。 一旦有了一等函数,你将不再需要大部分的这些设计模式。

个人意见而已:

最大的不妥就是思想的固化吧,没能从过程化中走出来,理解不了面向对象编程真正改变的是什么,面向对象编程真正的优势在哪,更别说面向接口编程了。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles