Belajar PHP OOP Part 1.16 : Type Check & Casts

type check casts

  • Sebelumnya kita sudah tau cara melakukan konversi tipe data bukan object class
  • Khususnya untuk tipe data object, kita tidak perlu melakukan konversi secara eksplisit
  • Namun agar aman, sebelum melakukan casts, pastikan kita melakukan type check (pengecekan tipe data), dengan menggunakan kata kunci insatnceof
  • Hasil operator instanceof adalah boolean, true jika tipe data sesuai, false jika tidak sesuai


<?php

class Programmer
{
public string $name;

public function __construct(string $name)
{
$this->name = $name;
}
}


class BackendProgrammer extends Programmer{}

class FrontendProgrammer extends Programmer{}

class Company
{
public Programmer $programmer;
}

function sayHelloProgrammer(Programmer $programmer)
{
//Type Check & Casts (instanceof)
if ($programmer instanceof BackendProgrammer) {
echo "Hello Backend Programmer $programmer->name" . PHP_EOL;
} else if ($programmer instanceof FrontendProgrammer) {
echo "Hello Frontend Programmer $programmer->name" . PHP_EOL;
} else if ($programmer instanceof Programmer) {
echo "Hello Programmer $programmer->name" . PHP_EOL;
}

}
<?php

require_once "data/Programmer.php";

$company = new Company();
$company->programmer = new Programmer("Eko");
var_dump($company);

$company->programmer = new BackendProgrammer("Eko");
var_dump($company);

$company->programmer = new FrontendProgrammer("Eko");
var_dump($company);


sayHelloProgrammer(new Programmer("Eko"));
sayHelloProgrammer(new BackendProgrammer("Eko"));
sayHelloProgrammer(new FrontendProgrammer("Eko"));
type check & casts

Next Post Previous Post
No Comment
Add Comment
comment url