面向对象的PHP本质

时间:2011-03-07 09:52:36

标签: php oop

PHP的松散类型结构如何与PHP的面向对象特性相结合?

另外,PHP是一种纯粹的面向对象语言吗?

提前致谢。

我的意思是指出PHP的松散类型。确切地说,我的意思是变量声明。 PHP的这个缺点如何与其面向对象的性质相结合。 PHP5是否具有纯面向对象的功能?

2 个答案:

答案 0 :(得分:4)

不,PHP不是OOP语言。事实上,他们后来实施了OOP。

PHP的丢失类型本质可以是一个bitc *,但同时它可以非常方便。我真的没有看到这个问题。如果要使用严格键入,则必须在代码中强制使用。您可以明确地将变量转换为特定类型:

$integer = (int) $stringVariableWithIntegerValue;

您可以使用===运算符强制检查类型。在我看来,PHP并不是一个完整的OOP实现,但它从5.x开始就运行良好。

$integer = 1;
$string = "1";

if($integer === $string) { // Will be false
...

if($integer == $string) { // Will be true
...

答案 1 :(得分:2)

  

我的意思是指出PHP的松散类型。确切地说,我的意思是变量声明。 PHP的这个缺点如何与其面向对象的性质相关。

你似乎认为动态打字是一种“缺点”。它不是,它只是不同。它确实有它的缺陷,但几乎所有类型的系统也是如此。

变量可以是任何类型。它也可以是一个对象。您可以在需要时明确(手动)键入检查。函数参数的对象的实际类型提示有语法糖。您可以使用鸭子类型来充分利用动态类型和对象。或者你可以不使用它。它工作正常。

  

PHP5是否具有纯面向对象的功能?

定义“纯粹”。 PHP有对象。 PHP 是面向对象的语言。当然,这不是一个“纯粹的”。 PHP的OOP感觉相当疯狂(就是这样),但它可以在不杀死小猫的情况下完成工作。