我在网上搜索了很多,但是找不到很多人在谈论PHP时在面试问题或一般性问题中提出的答案。
哪些OOP概念在PHP中不可用?
我已经听到并读过很多次了,PHP并不是一种完全的OOP语言,但是当我用谷歌搜索时,我找不到那个面向对象的概念在PHP中不可用。
请引导我。
谢谢
[PHP中没有内置的类型转换用户定义对象的内置方法(尽管有一些解决方法)。
<?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
[其他语言(通常为强类型)所具有的东西正在重载,这意味着您可以有两个或多个具有相同名称的方法,但参数不同,但PHP没有它。
<?php
Class Foo{
public function bar(){
echo 'normal bar';
}
public function bar($arg){
echo 'special bar with arg '. $arg;
}
}
$f = new Foo();
您收到此错误:Fatal error: Cannot redeclare Foo::bar() in