Quantcast
Channel: ebene7 » Objekt
Viewing all articles
Browse latest Browse all 2

ArrayAccess und isset() / unset()

$
0
0

Letztens stellte sich mir die Frage, wie PHP ArrayAccess-Objekte behandelt, wenn isset() oder unset() mit mehreren Parametern aufgerufen wird. Werden die Methoden offsetExists() und offsetUnset() mehrfach aufgerufen oder nur einmal mit einem Array als Parameter?

PHP verhält sich an der Stelle wie man es wahrscheinlich erwartet hätte und ruft die jeweilige Methode für jeden Parameter einmal auf. Es sind also keine besonderen Bedingungen innerhalb der Logik notwendig.

Hier ein Beispiel zum Ausprobieren:

<?php
class myArray implements ArrayAccess
{
  function offsetExists($key)
  {
    echo __METHOD__ . print_r($key, true);
    return true;
  }

  function offsetUnset($key)
  {
    echo __METHOD__ . print_r($key, true);
  }

  function offsetGet($key) { return; }
  function offsetSet($key, $value) {}
}

$t = new myArray();
unset($t['tick'], $t['trick'], $t['track']); echo '<br/>';
isset($t['tick'], $t['trick'], $t['track']);

Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles