Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: ООП в PHP - в свойстве указать значение другого свойства. Как?

Сообщения:  [1-6] 

 
 автор: targa   (18.01.2007 в 14:38)   письмо автору
 
   для: errinea   (18.01.2007 в 02:14)
 

Проще всего оказалось все-таки загнать определение массива в конструктор класса (я это и раньше знал но хтел этого избежать).

>>Либо попробуй переформулировать задачу...
Выйдет еще хуже :)

   
 
 автор: errinea   (18.01.2007 в 02:14)   письмо автору
 
   для: targa   (17.01.2007 в 22:23)
 

(работаю с массивами очень редко, но) попробуй ввести еще одно значение переменной
равное твоему как раз значению array2 и потом просто проверяй равняется ли данная переменная 0 или чему либо еще. При этом время обсчета скрипта несколько увеличится за счет именно проверки.
Либо попробуй переформулировать задачу...

   
 
 автор: isset   (17.01.2007 в 23:53)   письмо автору
 
   для: targa   (17.01.2007 в 22:23)
 

знаешь, если не работает значит так надо

   
 
 автор: targa   (17.01.2007 в 22:23)   письмо автору
 
   для: isset   (17.01.2007 в 21:56)
 

Раз спрашиваю значит нада :)


class class1
{
    var $array1 = array
    (
        'field1'=>array(1,2,3,4,5),
        'field2'=>array('c1'=>1, 'c2'=>'a'),
        'field3'=>0,
        'field3'=>'test'
    );

    var $array2 =
    {
        array
        (
            'id'=> 's21',
            'name'=> 'fname',
            'value1'=>'string1',
            'value2'=>$array1
        ),

        array
        (
            'id'=> 's22',
            'name'=> 'fname2',
            'value1'=>'string222',
            'value2'=>$array1
        ),

        array
        (
            'id'=> 's23',
            'name'=> 'tname',
            'value1'=>'text line',
            'value2'=>$array1
        ),

        ...

        array
        (
            'id'=> 's55',
            'name'=> 'fname',
            'value1'=>'string1',
            'value2'=>null
        ),

        array
        (
            'id'=> 's56',
            'name'=> 'fname',
            'value1'=>'string1',
            'value2'=>null
        )
    }
}


И в array2 значение поля value2 может быть либо равно массиву array1, либо null, либо массиву с такой же структурой как и array1.
Мне просто удобно предопределить массив(ы) которые будут являтся значениями свойств, и в дальнейшем ссылаться на них.

   
 
 автор: isset   (17.01.2007 в 21:56)   письмо автору
 
   для: targa   (17.01.2007 в 20:40)
 

нахрена тебе тогда свойство $array1 ?
к нему вот и обращайся

   
 
 автор: targa   (17.01.2007 в 20:40)   письмо автору
 
 

Мне нужно нечто вот такое:


class class1
{
    var $array1=array(1,2,3);

    var $array2=array
    (
        'field1'=>array(5,6,7),
        'field2'=>$array1
    );
}


чтобы потом обратившись внутри класса примерно так
$this->$array2['field2'][0] я получил соответствутющее значение (единицу в данном случае).

Но вот проблема

'field2'=>$this->array1

выдает ошибку


'field2'=>$array1

тоже


'field2'=>class1::array1

Ошибки не дает, но

$loClass = new class1();
print_r($loClass->array2['field2']);


Вместо вывода содержимого массива, выводит class1::array1

Вопрос: можно ли обратиться примерно таким способом из одного свойства к другом?

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования