<?php
class Base {
private static
$cache = array();
public function &__get($name) {
if (!isset(self::$cache[$type])) { self::$cache[$type] = '';
}
return self::$cache[$type];
}
public function __set($name, $value) {
self::$cache[$type] = $value;
}
}
$b = new Base;
$b->cache = 42;
$b2 = new Base;
echo $b->cache . "\n"; // 42
echo $b2->cache . "\n"; // also 42
?>
PD9waHAKICAgIGNsYXNzIEJhc2UgewogICAgICAgIHByaXZhdGUgc3RhdGljICRjYWNoZSA9IGFycmF5KCk7CgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiAmX19nZXQoJG5hbWUpIHsKICAgICAgICAgICAgJHR5cGUgPSBnZXRfY2xhc3MoJHRoaXMpOwogICAgICAgICAgICBpZiAoIWlzc2V0KHNlbGY6OiRjYWNoZVskdHlwZV0pKSB7CiAgICAgICAgICAgICAgICBzZWxmOjokY2FjaGVbJHR5cGVdID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHNlbGY6OiRjYWNoZVskdHlwZV07CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJG5hbWUsICR2YWx1ZSkgewogICAgICAgICAgICAkdHlwZSA9IGdldF9jbGFzcygkdGhpcyk7CiAgICAgICAgICAgIHNlbGY6OiRjYWNoZVskdHlwZV0gPSAkdmFsdWU7CiAgICAgICAgfQogICAgfQoKICAgICRiID0gbmV3IEJhc2U7CiAgICAkYi0+Y2FjaGUgPSA0MjsKICAgICRiMiA9IG5ldyBCYXNlOwoKICAgIGVjaG8gJGItPmNhY2hlIC4gIlxuIjsgIC8vIDQyCiAgICBlY2hvICRiMi0+Y2FjaGUgLiAiXG4iOyAvLyBhbHNvIDQyCj8+