سلام و عرض ادب
در دقیقه 52 که استاد در مورد coflict resolution توضیح میدن، به اشتباه کیورد insteadof رو instanceof فرمودن و فکر میکنم در ادامه همین باعث شد که موضوع رو اشتباه توضیح بدن.
به کد زیر دقت کنید:
<?php
trait Game
{
function play() {
echo "Playing a game";
}
}
trait Music
{
function play() {
echo "Playing music";
}
}
class Player
{
use Game, Music {
Music::play insteadof Game;
}
}
$player = new Player();
$player->play(); //Playing music
اینجا trait Music و trait Game دوتا متد همنام دارن. وقتی که تو کلاس Player این دوتا use شده، برای جلوگیری از کانفلیکت از این کد استفاده شده:
Music::play insteadof Game;
یعنی به جای متد playی که در trait Game هست،متد play که در trait Music هست رو اجرا کن.
insteadof اینجا به معنی عبارت : "به جای" به کار رفته.
این نکته رو عرض کردم که اگه کسی از دوستان متوجه موضوع نشده، مشکلش حل شه، وگرنه شکی در تسلط و دانش استاد آوند نیست.