__ set / __ get with array properties

Интересно, можно ли сделать что-то вроде следующего (я знаю, что код не будет работать, как задумано, просто пытаюсь донести цель):

class Form
{
    private $v = array();

    function __set($varName, $varValue)
    {
        ... do some treatment on the varValue ...
        $this->v[$varName] = $varValue;
    }

    function &__get($varName)
    {
        if(!isset($this->v[$varName]))
            $this->v[$varName] = NULL;

        return $this->v[$varName];
    }
};

Я хочу иметь возможность установить переменную например:

$ form-> Values ​​['something'] = 'dirty';

и пусть он будет запущен через функцию установки, которая вызовет некоторые операции очистки и фактически заполнит пару других массивов, таких как 'HtmlValues' и 'SqlValues', чтобы я мог просто вытащить значения, закодированные для нужного мне формата, чтобы позже я мог вызвать

echo $ form-> HtmlValues ​​['any'];

Проблема, конечно же, обычная проблема: если вы просто используете _ get, вы получите значение, которое возвращается, и даже если & _get возвращает его по ссылке и что-то вроде работы,

Я много слышал об использовании Perl в веб-разработке для сценариев CGI, но широко ли они используются сегодня? С точки зрения развития (не с административной точки зрения), стоит ли учиться? Что было бы примером того, что лучше обрабатывается на Perl, чем на PHP?

Спасибо

7
задан Alex 9 May 2011 в 16:21
поделиться