Inheritance: use trait A, use trait B
コード例 #1
0
ファイル: class-traits-5.php プロジェクト: jestintab/zendphp
{
    public function smallTalk()
    {
        echo 'b' . "\n";
    }
    public function bigTalk()
    {
        echo 'B' . "\n";
    }
}
class Talker
{
    use A, B {
        A::smallTalk insteadof B;
        B::bigTalk insteadof A;
    }
}
class Aliased_Talker
{
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}
$oAT = new Aliased_Talker();
echo $oAT->bigTalk();
echo $oAT->smallTalk();
$oT = new Talker();
echo $oT->smallTalk();
echo $oT->bigTalk();
コード例 #2
0
ファイル: trait.php プロジェクト: yogendra9891/basic
trait A
{
    public function smallTalk()
    {
        echo 'a';
    }
    public function bigTalk()
    {
        echo 'A';
    }
}
trait B
{
    public function smallTalk()
    {
        echo 'b';
    }
    public function bigTalk()
    {
        echo 'B';
    }
}
class Aliased_Talker
{
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
    }
}
$b = new Aliased_Talker();
$b->smallTalk();
コード例 #3
0
ファイル: trait2.php プロジェクト: yogendra9891/basic
    public function smallTalk()
    {
        echo 'b';
    }
    public function bigTalk()
    {
        echo 'B';
    }
}
class Talker
{
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
    }
}
class Aliased_Talker
{
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}
$t = new Talker();
$t->smallTalk();
$t->bigTalk();
echo "<br>";
$al = new Aliased_Talker();
$al->talk();
$al->bigTalk();
コード例 #4
0
ファイル: conflict_traits.php プロジェクト: possientis/Prog
}
class Aliased_Talker
{
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}
$a = new Talker();
$a->smallTalk();
// expecting 'b'
$a->bigTalk();
//expecting 'A'
echo PHP_EOL;
$a = new Aliased_Talker();
$a->smallTalk();
// expecting 'b'
$a->bigTalk();
// expecting 'A'
$a->talk();
// expecting 'B'
echo PHP_EOL;
trait HelloWorld
{
    public function sayHello()
    {
        echo 'Hello World!';
    }
}
// Change visibility of sayHello