PHP Portal » PHP Handbuch » ArrayAccess::offsetExists

Werbung

ArrayAccess::offsetExists


(PHP 5 >= 5.1.0)

ArrayAccess::offsetExistsPrüft, ob ein Offset-Punkt existiert

Beschreibung

abstract public boolean ArrayAccess::offsetExists ( mixed $offset )

Prüft, ob ein Offset-Punkt existiert oder nicht.

Diese Methode wird aufgerufen, wenn die Funktionen isset() oder empty() auf Objekte angewendet werden, die ArrayAccess implementieren.

Hinweis: Wenn empty() verwendet wird, wird die Funktion ArrayAccess::offsetGet() aufgerufen und untersucht, ob bereits ein Wert zugewiesen wurde, sofern ArrayAccess::offsetExists() TRUE zurückliefert.

Parameter-Liste

offset

Der zu untersuchende Offset-Punkt.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Hinweis: Der Rückgabewert wird zu boolean gecastet, sofern sonst ein nicht-boolscher Wert zurückgegeben würde.

Beispiele

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class obj implements arrayaccess { public function offsetSet($offset, $wert) { var_dump(__METHOD__); } public function offsetExists($var) { var_dump(__METHOD__); if ($var == "foobar") { return true; } return false; } public function offsetUnset($var) { var_dump(__METHOD__); } public function offsetGet($var) { var_dump(__METHOD__); return "Wert"; } } $obj = new obj; echo "Ausführung obj::offsetExists()\n"; var_dump(isset($obj["foobar"])); echo "\nAusführung obj::offsetExists() und obj::offsetGet()\n"; var_dump(empty($obj["foobar"])); echo "\nAusführung obj::offsetExists(), " ."obj:offsetGet() wird *nicht* ausgeführt, " ."wenn nichts zurückgegeben werden kann\n"; var_dump(empty($obj["foobaz"]));

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausführung obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)
Ausführung obj::offsetExists() und obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)
Ausführung obj::offsetExists(), obj:offsetGet() wird *nicht* ausgeführt, wenn nichts zurückgegeben werden kann
string(17) "obj::offsetExists"
bool(true)