Не могу динамически создать динамический array

O1&g

Новичок
Не могу динамически создать динамический array

Win2003, IIS6, PHP5.2.5 как ISAPI

Вообщем нужно заполнить array (пустой) в классе информацией полученой из $_POST
PHP:
$_POST = Array
(
     ...
     [Name] = Pupkin
     [Proposal] => Array
        (
            [0] => wrtyuwruywr
            [1] => rtuywruwru
            [2] => 
        )
        ...
)
Вот допустим получаю $_POST.
Moй класс
PHP:
class A
{
    var $Name;
    var $Proposal;
    function A(){
        $this->Name = '';
        $this->Proposal = array();
    }

    function set(){
		foreach($_POST as $field => $value){
            if(!isset($this->$field){
                continue;
            }
			if(is_array($_POST[$field])){
				foreach($_POST[$field] as $i => $v){
					$this->$field[$i] = $this->cleanEntry($v); // $this->Proposal[$i]; должно быть и оно есть
					var_dump($this->$field[$i]); // works Ok // var_dump($this->Proposal[$i]); // должно быть
				}
				var_dump($this->$field); // array is empty, почему??? // должно быть var_dump($this->Proposal);
			}
			else{
				$this->$field = $this->cleanEntry($value); // works Ok
			}
		}
        	

function cleanEntry($value){
	        	// bla-bla
		        return $value;
	        }


    }
}

$xz = new A();
$xz->set();
var_dump($xz->Proposal); // пустой Array()
var_dump($xz->Name); // Pupkin
Когда дебагю то $this->Proposal и $this->$field оба пустые, где-то у меня что-то не сходится.

-~{}~ 23.04.08 14:07:

Автор оригинала: O1&g
Мля, сколько времени потерял, ну кто ж знал, что нужно и можно так делать
PHP:
...
$this->{$field}[$i] = $this->cleanEntry($v);
...
 

StUV

Rotaredom
HraKK
самым ценным комментарием было бы - "так делать нельзя" ;)
 

HraKK

Мудак
Команда форума
StUV
неа, самым ценным было бы дать ссылку на дата маппинг.
 

StUV

Rotaredom
HraKK
делись сцылкой на страницу с описанием всех возможных способов "дата маппинга" =)
 

nirex

Новичок
PHP:
<?php

class A{
    
    private $listNames = null;
    
    function __construct(){
        // init var if needed
        $this->listNames = array('kva'=>0, 'kva1'=>1, 'kva2'=>2, 'kva3'=>3);
    }
    
    
    public function makeIt()
    {
        foreach($this->listNames as $key => $value)
        {
            //eval('$this->'.$key."[{$value}]=1;");
            $this->$key = array("$value"=>1);
            if(is_array($this->$key)) $this->$key += array('dop'=>2);
           
        }        
    }        
}

$s = new A;
$s->makeIt();

foreach ($s as $k=>$v)
{
    
    echo "{$k}=>";
    var_dump($v);
}
?>
Изврат, извратом погоняет :))
А вообще лучше создать приватное свойство в который складывать все эти массивы, и проблем меньше и для понимания проще
P.S. "это я про код и его идея ))) "
 
Сверху