$callback = new _GetArrayValueCallback($key);
return array($callback, 'get');
}
+
+ /** Returns the callback for '$x -> $x->prop';
+ * @param $property The property to retrieve
+ * @return a callback
+ */
+ public static function arrayValueCallback($property)
+ {
+ $callback = new _GetObjectPropertyCallback($property);
+ return array($callback, 'get');
+ }
}
/** Iterates over an array.
}
}
+// Wrapper class for 'objectPropertyCallback' (get property ->$blah of the given object)
+class _GetObjectPropertyCallback
+{
+ private $property;
+
+ public function __construct($property)
+ {
+ $this->property = $property;
+ }
+
+ public function get($obj)
+ {
+ $p = $this->property;
+ return @$obj->$p;
+ }
+}
+
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>