Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » ООП на PHP

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

polsad

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 DLans:
 
Смотря как ты определяешь переменные и функции (по научному свойства и методы ))
 
Допустим (пример для PHP 5, т.к. для PHP 4 всё public)
 
class MyClass {
   protected $a;
   private     $b;
   public function zzz() {
       echo "Hello, world!!!";
   }
}
 
Доступ к переменной a только из класса MyClass и его потомков. Доступ к переменной b - только внутри класса MyClass. Доступ к функции zzz() - откуда хочешь.
 
Т.е. для данного примера, такой вариант прокатит:
 
<?php
class MyClass {
    protected $a;
    private   $b;
    public function zzz() {
        echo "Hello, world!!!";
    }
}
$z = new MyClass;
$z->zzz();
?>
 
а такой, уже нет:
<?php
class MyClass {
    protected $a;
    private   $b;
    public function zzz() {
        echo "Hello, world!!!";
    }
}
$z = new MyClass;
$z->a = 10;
?>
 

Всего записей: 17 | Зарегистр. 21-07-2006 | Отправлено: 03:14 07-08-2006 | Исправлено: polsad, 03:16 07-08-2006
DLans

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
polsad, я немного "повтыкал" в инглиш мануал..
Немного разобрался в этой теме.
Но спасибо за разъяснения!

Всего записей: 197 | Зарегистр. 05-01-2006 | Отправлено: 19:28 07-08-2006
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Небольшой вопрос, плиз. При описании класса, допустима ли такая строка:
var $variable = array(); ?
Эта строка в коде заказчика смутила меня, поскольку я точно помню, что в начале описания класса, при помощи "var" объявляются только статические переменные.  
Думаю, более правильно бы было написать  
$variable = array();  
в фукции - конструкторе класса.

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 12:59 12-09-2009 | Исправлено: israel_rider, 13:01 12-09-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider

Цитата:
при помощи "var" объявляются только статические переменные

статика описывается при помощи static
var - это устаревшее..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:52 13-09-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да. Проверил только что по мануалу. Вы правы. Оказывается, то, что я учил - это "Classes and Objects (PHP 4)", прошлый век. А я и не подозревал.  
И тем не менее, выходит, что сайт клиента построен на ООР РНР 4. А по поводу него написано следующее -  
"In PHP 4, only constant initializers for var variables are allowed. To initialize variables with non-constant values, you need an initialization function which is called automatically when an object is being constructed from the class. Such a function is called a constructor "
Поэтому, я был бы очень Вам признателен, если бы Вы ответили по существу заданного мной вопроса.

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 07:48 13-09-2009 | Исправлено: israel_rider, 07:58 13-09-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider
какого вопроса? Хотите - пишите, но это устарело и в след версии возможно уже и не существует

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 08:33 13-09-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Прочитал очередной перл от ООП5 -  
$session=& JFactory::getSession();
$value=$session->get('example');
Помоему, это уже верх безумия. Ну как это всё понимать?! Судя по второй строке, $session - это объект класса. Но что тогда в первой строке?! Разве объект класса объявляется так??!  
Да я понимаю, что надо юзать мануал по ООП5, но помогите, плиз... Объястите всёже,  чуть подробней чем в пособии, что означает первая строка.

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 13:49 26-10-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вызывается статическая функция getSession() из класса JFactory, и в $session присваивается указатель на результата работы функции

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 14:11 26-10-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
вызывается статическая функция getSession() из класса JFactory, и в $session присваивается указатель на результата работы функции

Большое спасибо. Это я понял. Уже легче. Как раз недавно вроде разобрался со "static". Но тогда, плиз, ещё вопрос. Что же всё таки такое тогда $session? Объект класса JFactory?

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 14:22 26-10-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нет, это то что возвращает функция getSession(), смотрите её реализацию
 
так понимаю это джумла? http://api.joomla.org/Joomla-Framework/JFactory.html#getSession

Цитата:
Returns a reference to the global JSession object, only creating it if it doesn't already exist.

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 14:27 26-10-2009 | Исправлено: andead, 14:31 26-10-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Написано, что getSession() возвращает ссылку на объект. То есть, получается, $session - это уже как бы объект? Если это так, тогда вроде получается логично....

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 17:31 26-10-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
"как бы" да http://www.php.ru/manual/language.references.html

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 17:35 26-10-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
andead! Ну да! Конечно! По ссылке может передаваться не только переменная, но и функция, и даже объект! Огромный сенкс! Вы мне очень помогли разобраться.  
Всё вроде становиться таким ясным и понятным, когда наконец поймёшь, но это только после....

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 17:40 26-10-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Пипл, глупая проблема, но...  
Нигде, не в каком мануале не смог найти нормального определения ключевого слова "self". Помогите, плиз, что это такое, или просто ткните ссылкой в определение.
 
Добавлено:
А, вот, нашёл на каком то форуме:
"self указывает на класс метода, а parent на его предка и действуют в контексте класса."
Это и есть правильное определение?

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 10:44 01-11-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 14:44 01-11-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Пипл, помогите, плиз, в очередной раз запутался, ООП5 жжёт
Что может означать конструкция -  
$this->$doTask();  
?  
Самое главное, я припоминаю, что то такое было гдето здесь - http://docs.php.net/manual/ru/language.oop5.php .  
Но, где именно, ни как найти не могу. Если можно, плиз, ткните ссылкой.

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 16:36 08-11-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://docs.php.net/manual/ru/functions.variable-functions.php

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 16:57 08-11-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
andead! Да! Это именно оно и есть! Огромный сенкс!

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 17:09 08-11-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите, плиз. Ни где не могу найти нормального, подробного определения, что же такое - "Subpackage". По крайне мере, здесь - http://docs.php.net/manual/ru/language.oop5.php
я такого понятия не встречал.  
Тем неменее, изучая Joomla-Framework, я нередко наталкивался на слова о том, что это типа такой "Глобальный объект"!!!!!! который содержит в себе!!!!!!!! определённые классы.  
Может быть тогда, ни какого определения не существует вообще? И термина такого тоже не существует вообще? А "Subpackage" - это просто вольное изобретение разработчиков Жумлы, которое не следует принимать слишком буквально?

Всего записей: 926 | Зарегистр. 28-07-2007 | Отправлено: 12:41 12-11-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 А "Subpackage" - это просто вольное изобретение разработчиков Жумлы, которое не следует принимать слишком буквально?

именно

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 13:11 12-11-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » ООП на PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.B0ard 2000-2026

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru