哪些OOP概念在PHP中不可用
我在网上搜索了很多,但找不到很多人在面试问题或一般问题中提到PHP时提出的答案 哪些OOP概念在PHP中不可用 我已经多次听说和阅读PHP不是一种完全的OOP语言, 但是当我搜索它时,我无法找到OOP的哪些概念哪些OOP概念在PHP中不可用,php,oop,php-5.4,Php,Oop,Php 5.4,我在网上搜索了很多,但找不到很多人在面试问题或一般问题中提到PHP时提出的答案 哪些OOP概念在PHP中不可用 我已经多次听说和阅读PHP不是一种完全的OOP语言, 但是当我搜索它时,我无法找到OOP的哪些概念 在PHP中不可用。其他语言(通常为强类型)的某些功能是重载,这意味着您可以有两个或多个名称相同但参数不同的方法,但PHP没有 <?php Class Foo{ public function bar(){ echo 'normal bar'; }
在PHP中不可用。其他语言(通常为强类型)的某些功能是重载,这意味着您可以有两个或多个名称相同但参数不同的方法,但PHP没有
<?php
Class Foo{
public function bar(){
echo 'normal bar';
}
public function bar($arg){
echo 'special bar with arg '. $arg;
}
}
$f = new Foo();
PHP中没有用于用户定义对象类型转换的内置方法(尽管有一些解决方法)
函数重载
运算符重载
多重继承
这一个似乎是对你的问题的回答,你认为呢?我想这不是一个问题,但我对答案很感兴趣。在我学习编程和PHP的这么长时间里,我发现了一些问题(大约6个月,我知道,我是个书呆子)。尽管您可以构建一个单例类,但它基于变通方法,并且通常是一种不好的做法。另一个相关的问题是不能将类强制转换为对象实例(即create((Book)$bookList);
)。但我看不到任何OO概念不能在PHP中实现。这说明您的问题是毫无意义的(@AlanMachado,试试重载,在同一个类中创建两个具有相同名称的不同参数的方法:P.So,然后?:P但无论如何,我明白了你的观点…PHP不是强类型的,所以我们最终都是“正确的”。+1为好
<?php
class Book
{
public $title;
public $isbn;
}
class BookShelf
{
public static function create($booklist)
{
echo "Here are your books!";
}
}
$bookList = new Book;
BookShelf::create($bookList); // output "Here are your books!"
$bookList = new stdClass();
BookShelf::create((Book)$bookList); // output a parse error of undefined variable $bookList