PHP 5 objects support special __get() and __set() methods to access "virtual" properties that do not actually existing, but instead are emulated existing data.

<?php
class foo {
    private 
$int_data = array();

    function 
__get($var_name) {
        return 
$this->int_data[$var_name];
    }

    function 
__set($var_name$value)
    {
        
$this->int_data[$var_name] = urlencode($value);
    }
}

$a = new foo();
$a->bar "random value";
echo 
$a->bar// will print random+value
?>