OOP的哪些概念在PHP中不可用

问题描述 投票:-2回答:3

我在网上搜索了很多,但是找不到很多人在谈论PHP时在面试问题或一般性问题中提出的答案。

哪些OOP概念在PHP中不可用?

我已经听到并读过很多次了,PHP并不是一种完全的OOP语言,但是当我用谷歌搜索时,我找不到那个面向对象的概念在PHP中不可用。

请引导我。

谢谢

php oop php-5.4
3个回答
2
投票

[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

2
投票

[其他语言(通常为强类型)所具有的东西正在重载,这意味着您可以有两个或多个具有相同名称的方法,但参数不同,但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


0
投票
  1. 函数重载
  2. 操作员超载
  3. 多重继承
© www.soinside.com 2019 - 2024. All rights reserved.