PHP是面向对象的吗?
PHP是一种面向对象的语言吗?如果没有,那么CakePHP框架呢?它是PHP的面向对象的MVC实现吗?
另外,完全使用类构建的PHP应用程序可以称为面向对象吗?
PHP是一种面向对象的语言吗?如果没有,那么CakePHP框架呢?它是PHP的面向对象的MVC实现吗?
另外,完全使用类构建的PHP应用程序可以称为面向对象吗?
不,PHP不是完全面向对象的语言。
C++和Java都不是,因为它们都有基元类型(PHP也有大量的函数集合,如和,这些函数本质上是程序性的)。据我所知,只有纯面向对象的语言是Ruby和Scala(有人可能会说后者更针对函数式编程范式)。str_replace()
is_*()
PHP可以称之为“具有对象能力的语言”。
至于用PHP编写的代码,你必须明白,仅仅因为你使用的是类,它并不能使它成为OOP。特别是如果你的代码主要基于静态类。
所以,如果你问:“CakePHP是一个OO框架吗?”,那么答案是 - 不。对它最讨人喜欢的描述是“面向类的编程”。代码库填充了静态方法和变量,其中类的作用更像是命名空间。基本上,CakePHP是一个过程代码,用语法包装,表面上模仿面向对象的代码。
是的,最新版本的 PHP 是面向对象的。也就是说,您可以自己编写类,使用继承,并且在适当的情况下,内置功能也内置在对象中(如MySQL功能)。
然而,仍然有很多松散的函数,所以关于面向对象的PHP可能存在分歧。我认为是的。是的,CakePHP是一个面向对象的框架。