Kipaumlio cha Mbinu Wakati wa Kufanya Kazi na Traits katika OOP katika PHP
Ikiwa katika darasa na katika trait kuna mbinu yenye jina moja, basi mbinu ya darasa itabadilisha mbinu ya trait:
<?php
trait TestTrait
{
// Mbinu yenye jina method:
public function method()
{
return 'trait';
}
}
class TestClass
{
use TestTrait;
// Mbinu ile ile yenye jina method:
public function method()
{
return 'test';
}
}
$test = new TestClass;
echo $test->method(); // itatoa 'test' - mbinu ya darasa yenyewe ndiyo ilifanya kazi
?>
Iwapo darasa lenyewe halina mbinu kama hiyo, lakini kuna mzozo wa majina ya mbinu za trait na mbinu za darasa la mzazi, basi mbinu za trait zenye kipaumlio:
<?php
trait TestTrait
{
// Mbinu yenye jina method:
public function method()
{
return 'trait';
}
}
// Darasa la mzazi:
class ParentClass
{
// Mbinu yenye jina method:
public function method()
{
return 'parent';
}
}
// Darasa linarithi mbinu method kutoka kwa mzazi:
class TestClass extends ParentClass
{
use TestTrait;
}
$test = new TestClass;
echo $test->method(); // itatoa 'trait', kwani trait ina kipaumlio
?>