我搜索淨這個了很多,但無法找到答案,很多人在面試問題或一般問題詢問時,他們談論PHP ..其中OOP的概念不提供PHP
Which concepts of OOP are not available in PHP?
我聽說過很多很多次,PHP並不是一個完全的OOP語言,但是當我谷歌它時,我無法找到OOP 的哪些概念在PHP中不可用。
請親引導我。
感謝
我搜索淨這個了很多,但無法找到答案,很多人在面試問題或一般問題詢問時,他們談論PHP ..其中OOP的概念不提供PHP
Which concepts of OOP are not available in PHP?
我聽說過很多很多次,PHP並不是一個完全的OOP語言,但是當我谷歌它時,我無法找到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
東西,這人languagues(強一般類型)已經是超載,這意味着你可以有兩種以上的方法具有相同的名稱,但diferents ARGS,但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
所以,[它是什麼](http://php.net/manual/en/language.oop5.overloading .php),然後?:P但無論如何,我已經明白了你的觀點...... PHP不是很強類型的,所以我們倆最終都是「正確的」。 –
這一個似乎一個是[很好的答案(http://programmers.stackexchange.com/questions/78089/is-php-a-bad-object-oriented-language)你的問題,你怎麼看? [Here](http://programmers.stackexchange.com/questions/49842/php-structural-or-oop-based-language/50174#50174)是另一個。 –
我認爲這不是問題,但我仍然有興趣回答 –
有一些問題我可以識別這麼長時間我一直在研究編程和PHP(約6個月,我知道,我是一個noob)。儘管你可以建立一個單身人士課程,但它是基於變通辦法的,通常是不好的做法。另一個相關的觀點是你不能投一個類去實例化對象(例如'create((Book)$ bookList);')。但是我看不到任何無法在PHP中實現的OO概念。 –