<?php
class Sınıf implements ArrayAccess {
public function offsetSet($konum, $değer): void {
var_dump(__METHOD__);
}
public function offsetExists($var): bool {
var_dump(__METHOD__);
if ($var == "filanca") {
return true;
}
return false;
}
public function offsetUnset($var): void {
var_dump(__METHOD__);
}
#[\ReturnTypeWillChange]
public function offsetGet($var) {
var_dump(__METHOD__);
return "değer";
}
}
$nesne = new Sınıf;
echo "Sınıf::offsetExists() çalışır\n";
var_dump(isset($nesne["filanca"]));
echo "\nSınıf::offsetExists() ve Sınıf::offsetGet() çalışır\n";
var_dump(empty($nesne["filanca"]));
echo "\nSınıf::offsetExists() çalışır, alınacak bir şey olmadığından Sınıf::offsetGet() çalışmaz\n";
var_dump(empty($nesne["falanca"]));
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Sınıf::offsetExists() çalışır
string(21) "Sınıf::offsetExists"
bool(true)
Sınıf::offsetExists() ve Sınıf::offsetGet() çalışır
string(21) "Sınıf::offsetExists"
string(18) "Sınıf::offsetGet"
bool(false)
Sınıf::offsetExists() çalışır, alınacak bir şey olmadığından Sınıf::offsetGet() çalışmaz
string(21) "Sınıf::offsetExists"
bool(true)