نکته Conflict Resolution

پرسیده شده
فعالیت 964 روز پیش
دیده شده 438 بار
1

سلام و عرض ادب

در دقیقه 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 اینجا به معنی عبارت : "به جای" به کار رفته.

 

این نکته رو عرض کردم که اگه کسی از دوستان متوجه موضوع نشده، مشکلش حل شه، وگرنه شکی در تسلط و دانش استاد آوند نیست.

 

 

فایل پیوست

پویا پارسایی
پویا پارسایی

18 شهریور 00