2011-03-07 38 views
1

PHP的松散类型结构如何与PHP的面向对象特性一起使用?PHP的面向对象性质

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

在此先感谢。

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

+0

你特别指的是第一个问题?随着洒上橙子,他们一起走得很好。 – deceze 2011-03-07 09:55:59

+3

动态类型和OO没有问题。看看Python和JavaScript。那么你的问题实际上是关于什么? – 2011-03-07 09:56:26

+0

它随你输入:) – 2011-03-07 09:57:20

回答

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 
... 
+0

谢谢@Stageman。我现在很清楚。再次感谢 – ruki 2011-03-07 10:17:29

2

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

你似乎在某种程度上认为动态打字是一个“缺点”。这不是,它只是不同而已。它确实有其缺陷,但几乎每种类型的系统都是如此。

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

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

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

+0

松散地输入也意味着不安全 – ruki 2011-03-07 10:39:07

+0

@ruki关于什么? *类型安全性*与动态或强大的打字无关。 *应用程序安全性*与程序员知道自己在做什么的程度更低。你似乎来自强大/静态类型的语言,并感觉不安全的动态类型系统工作。这就是它的方式,它是*不同*,就是这样。 – deceze 2011-03-07 10:59:10

+0

对不起,我完全不同意你的看法。强迫程序员在类型上小心谨慎,避免大量的错误和错误。还有什么可以要求? – ruki 2011-03-07 11:15:30