Petunjuk:
RUN
di dalam editor untuk menjalankan program.<?php
trait Perintah {
public function jalankan() {
echo "Menjalankan perintah.\n";
}
}
trait Lari {
public function jalankan() {
echo "Berlari cepat.\n";
}
}
class Manusia {
use Perintah, Lari {
Perintah::jalankan as jalankanPerintah;
Lari::jalankan insteadof Perintah;
}
}
$manusia = new Manusia();
$manusia->jalankan();
$manusia->jalankanPerintah();
?>
Kode di atas memperlihatkan cara menyelesaikan konflik method
yang memiliki nama sama dalam dua trait
di PHP, yaitu Perintah
dan Lari
, yang keduanya memiliki method jalankan()
. Pada class Manusia
, digunakan use
dengan resolusi konflik melalui insteadof
untuk menetapkan bahwa method jalankan()
dari trait Lari
yang akan digunakan, sementara method dari trait Perintah
tetap dapat diakses dengan memberikan alias jalankanPerintah
menggunakan kata kunci as
. Akibatnya, pemanggilan $manusia->jalankan()
akan menampilkan "Berlari cepat." dan $manusia->jalankanPerintah()
akan menampilkan "Menjalankan perintah.".