Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обращение к переменным в классе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dedyshka
Отправлено: 06 Марта, 2011 - 02:03:19
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




Кто знает, как в классе обратиться к переменной из общего кода, в который включен этот класс?

Пример.
Общий код:

PHP:
скопировать код в буфер обмена
  1. <?
  2. $var = 100;
  3. include 'myclass.php';
  4. $obj=new myclass();
  5. echo $obj->get_var()
  6. ?>


И сам файл myclass.php:
PHP:
скопировать код в буфер обмена
  1. <?
  2. class myclass
  3. {
  4.    public function get_var() {
  5.       $a=$var;
  6.       return $a;
  7.    }
  8. }
  9. ?>


Я наверное криво описал, но суть должна быть ясна. Скажите, пожалуйста, как в классе обратиться к переменной $var, которая дана в другом месте, куда включается класс?

(Отредактировано автором: 06 Марта, 2011 - 02:05:38)

 
 Top
OrmaJever Модератор
Отправлено: 06 Марта, 2011 - 02:07:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




передать эту переменую как параметр к методу get_var()
PHP:
скопировать код в буфер обмена
  1. <?
  2. $var = 100;
  3. include 'myclass.php';
  4. $obj=new myclass();
  5. echo $obj->get_var($var)
  6. ?>
  7. <?
  8. class myclass
  9. {
  10.    public function get_var($var) {
  11.       $a=$var;
  12.       return $a;
  13.    }
  14. }
  15. ?>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
dedyshka
Отправлено: 06 Марта, 2011 - 02:17:28
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




OrmaJever
ага, спасибо, я понял сразу это, как написал пост) чё-то я поспешил в панике на форум сюда писать)
жалко, что тут нельзя удалять свои посты(
 
 Top
OrmaJever Модератор
Отправлено: 06 Марта, 2011 - 02:31:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Есть ещё один вариант но его лутше НЕ использовать (ухудшает производительность.)
PHP:
скопировать код в буфер обмена
  1. <?
  2. $var = 100;
  3. include 'myclass.php';
  4. $obj=new myclass();
  5. echo $obj->get_var()
  6. ?>
  7. <?
  8. class myclass
  9. {
  10.    public function get_var() {
  11.       global $var;
  12.       $a=$var;
  13.       return $a;
  14.    }
  15. }
  16. ?>

Но ещё раз скажу лутше передавать параметром!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
ALEN
Отправлено: 06 Марта, 2011 - 09:08:11
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




OrmaJever
вот не люблю я такие вот конструкции, как global - что-то они не всегда надежны.
Лучше просто передавать переменную в класс.

PHP:
скопировать код в буфер обмена
  1. <?
  2. $var = 100;
  3. include 'myclass.php';
  4. $obj=new myclass();
  5. $obj->var=$var;
  6. echo $obj->get_var()
  7. ?>
  8. <?
  9. class myclass
  10. {
  11.    public function get_var() {
  12.       $a=$this->var;
  13.       return $a;
  14.    }
  15. }

?>
 
 Top
JustUserR
Отправлено: 06 Марта, 2011 - 12:39:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




OrmaJever пишет:
Но ещё раз скажу лутше передавать параметром!
В действительности осуществление использование передачи целевого информационного поля в аргументе предполагаемой функции, может обепечивать равную или меньшую вычислительную эффективность по причине требования копирования элемента в области внутреннего трактования в соответственный поток кода, в то время как использование операции global предполагает включение обращения к внешнему объекту по ссылке


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB