Metodeprioriteit wanneer met traits gewerk word in OOP in PHP
As 'n klas en 'n trait 'n metode met dieselfde naam het, sal die metode van die klas die metode van die trait oorheers:
<?php
trait TestTrait
{
// Metode met die naam method:
public function method()
{
return 'trait';
}
}
class TestClass
{
use TestTrait;
// Dieselfde metode met die naam method:
public function method()
{
return 'test';
}
}
$test = new TestClass;
echo $test->method(); // sal 'test' vertoon - die metode van die klas self het gewerk
?>
As die klas self nie so 'n metode het nie, maar daar is 'n konflik tussen die naam van die trait se metode en die metode van die ouerklas, dan het die trait se metodes voorrang:
<?php
trait TestTrait
{
// Metode met die naam method:
public function method()
{
return 'trait';
}
}
// Ouerklas:
class ParentClass
{
// Metode met die naam method:
public function method()
{
return 'parent';
}
}
// Die klas erf die method metode van die ouer:
class TestClass extends ParentClass
{
use TestTrait;
}
$test = new TestClass;
echo $test->method(); // sal 'trait' vertoon, want die trait het voorrang
?>