Можете ли вы определить переменные класса из метода класса в PHP? - PullRequest
1 голос
/ 10 июля 2011

Я хочу получить всю информацию о файле из таблицы файлов, но структура этой таблицы может измениться.

Итак, я хотел бы извлечь все имена полей из таблицы и использовать их для генерациипеременные класса, которые содержат информацию, затем сохраняют в них выбранные данные.

Возможно ли это?

Ответы [ 2 ]

4 голосов
/ 10 июля 2011

Да, вы можете увидеть перегрузку php.

http://php.net/manual/en/language.oop5.overloading.php

Быстрый пример: (Не это не очень хорошее использование)

<?php

class MyClass{
    var $my_vars;

    function __set($key,$value){
        $this->my_vars[$key] = $value;
    }

    function __get($key){
        return $this->my_vars[$key];
    }
}

$x = new MyClass();

$x->test = 10;
echo $x->test;

?>
3 голосов
/ 10 июля 2011

Образец

<code><?php

    class TestClass
    {

        public $Property1;

        public function Method1()
        {

            $this->Property1 = '1';
            $this->Property2 = '2';

        }

    }

    $t = new TestClass();
    $t->Method1();

    print( '<pre>' );
    print_r( $t );
    print( '
');?>

Вывод

TestClass Object
(
    [Property1] => 1
    [Property2] => 2
)

Как видите, свойство, которое не было определено, было создано только путем присвоения ему с помощью ссылки на$this.Так что да, вы можете определить переменную класса из метода класса .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...