powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Обращение к свойствам класса
11 сообщений из 11, страница 1 из 1
Обращение к свойствам класса
    #38826646
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Есть класс с нестатическим свойством:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class A
{
    private $b = 1;
    public function func()
    {
        return $this -> b;
    }
}

$a = new A();
echo $a -> func();



Вопрос: как правильно обращаться к нестатическому свойству:
$this -> b;
или
$this -> $b;

Первый способ работает. Второй - нет, хотя в инете и на самом php.net полно примеров с вариантом 2.
Я только начал изучать синтаксис ооп на пхп, поэтому, возможно, вопрос вам покажется глупым.
Или там что-то от чего-то зависит? Т.е. в одних случаях так, а в других - сяк?
Про обращение к статическим свойствам и константам через :: знаю, интересует именно второй доллар после "->"

Заранее спасибо!
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38826681
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Монстры ООП ) Ну не хотите ли вы сказать, что этот вопрос поставил вас в тупик?
Или проблема в том, что сейчас пятница вечер? ))
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38826708
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay$this -> b;
или
$this -> $b;

Первый способ работает. Второй - нет, хотя в инете и на самом php.net полно примеров с вариантом 2.Вы нашли такой "второй" пример в документации?
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38826712
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayинтересует именно второй доллар после "->"Доллар перед буковкой означает переменную, которая будет использована как значение или как ссылка. Разумеется, эта переменная должна быть определена. Это основы множества ЯП и ООП тут никаким боком.
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38826714
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут
В первом посте под User Contributed Notes (к примеру): $this->$foo = TRUE;
В основной документации тоже находил, но сходу ссылку не дам ...
В инете повсюду такие примеры видел ...
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38826748
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay Вот тут
В первом посте под User Contributed Notes (к примеру): $this->$foo = TRUE;Если б Вы потрудились прочесть еще несколько строк после этой, то обнаружили бы следующее:
авторgiving "Fatal error: Cannot access empty property in ...test_class.php on line 8"
И далее по тексту...

urukhayВ основной документации тоже находил, но сходу ссылку не дам ...Вы не поверите, но Вы только что дали ссыку как раз на официальную документацию
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38826894
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38826947
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay,
Вы случайно не про подобный пример говорите?
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?php
class foo {
    var $bar = 'I am bar.';
    var $arr = array('I am A.', 'I am B.', 'I am C.');
    var $r   = 'I am r.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->$baz[1] . "\n";

$start = 'b';
$end   = 'ar';
echo $foo->{$start . $end} . "\n";

$arr = 'arr';
echo $foo->$arr[1] . "\n";
echo $foo->{$arr}[1] . "\n";
?> 


Результат:
Код: php
1.
2.
3.
4.
5.
 I am bar.
 I am bar.
 I am bar.
 I am r.
 I am B.


Так вот, никогда так не делайте (за исключением крайне редких случаев, когда вам нужно обращение к свойству, имя которого вы вычисляете динамически).
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38827007
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle
Да, наверное я невнимательно читал. Каюсь :)

JeStone
Про динамическое обращение к свойствам я читал.
В принципе, необходимость в этом возникает нечасто.
Но ради любопытства: чем это опасно?
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38827009
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay,
Это не опасно. Это нечитабельно. Те, кто будут разбираться в коде после вас (да и вы сами возможно через какое-то время), вспомнят о вас много "хорошего".
...
Рейтинг: 0 / 0
Обращение к свойствам класса
    #38827015
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял. Буду иметь ввиду!
Спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Обращение к свойствам класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]