|
|
|
| Необходимо что-бы при обращении к наследнику вызывались методы родителя и родитель сам определял значения свойств для наследников.
<?php
/****************************************/
class parent {
var $parent="parent.dat";
function OpenFile() {
$fread = fopen($foo, "r" );
}
/****************************************/
class ext_parent extends parent{
}
/****************************************/
$ext_parent = new ext_parent;
$ext_parent->OpenFileRead();
?>
|
класс parent предоставляет доступ к файлу parent.dat
класс ext_parent - наследник, доступ к файлу ext_parent.dat должен предоставить
Как правильно прописать для наследника открытие другого файла через родителя ext_parent.dat?
(Надо в теле родительского класса прописать)
без установки параметра в методе класса наследника при вызове
без установки в конструкторе наследника | |
|
|
|
|
|
|
|
для: roma67
(25.04.2012 в 00:19)
| | Так в конструкторе ext_parent переопределите название файла в переменной $this->parent | |
|
|
|
|
|
|
|
для: cheops
(25.04.2012 в 10:23)
| | А никак не узнать из какого производного класса был вызов? | |
|
|
|
|
|
|
|
для: roma67
(25.04.2012 в 21:13)
| | В базовом? Создавайте абстрактный метод, который будет перегружаться в каждом производного классе и возвращать имя класса, используйте этот абстрактный метод для получения нужного имени в базовом классе. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2012 в 10:10)
| | Можно ли назвать такой способ Виртуальным методом? | |
|
|
|
|
|
|
|
для: roma67
(26.04.2012 в 15:34)
| | Традиционно это называется полиморфизмом. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2012 в 16:20)
| | Полиморфизмом - это я понимаю, это самое общее понятие к которому можно все отнести наверное
Можно ли ваше предложение назвать виртуальным методом?
Но вопрос в том еще, что например, в СИ виртуальные методы прописываются со словом virtual.
а в PHP есть виртуальные методы подобного типа. | |
|
|
|
|
|
|
|
для: roma67
(27.04.2012 в 14:14)
| | В PHP "виртуальные" функции объявляются при помощи ключевого слова abstract и принято говорить об абстрактных функциях и классах. В PHP ООП больше похож на Java, чем на С++. | |
|
|
|
|
|
|
|
для: cheops
(27.04.2012 в 17:29)
| | Правильная ли формулировка( в понятиях):
Вызов метода родительского класса возможно через оператор расширения видимости(::)?
<?php
//....объявление классов в начале в темы
$ext_parent = new ext_parent;
$ext_parent::OpenFileRead(); // родительский метод
$ext_parent->OpenFileRead(); // переопределенный метод(перегрузка)
?>
|
Какие еще способы возможны? | |
|
|
|
|
|
|
|
для: roma67
(14.06.2012 в 17:40)
| | :: используется только для
1) вызова родительского метода внутри существующего с использованием parent
2) для вызова статических методов.
в Вашем примере первый и второй вариант вызывают переопределенный метод (родительский если он не переопределен), НО
они взаимоисключают друг друга, т.к. метод или статический или нет. и такой и такой быть не могут.
class parClass{
[static] public OpenFileRead(){
echo 'PARENT';
}
}
A::OpenFileRead;
|
class A extended parClass{
static public function OpenFileRead(){echo 'потомок';}
}
A::OpenFileRead; //потомок
|
class A extended parClass{
public function OpenFileRead(){echo 'потомок';}
}
$a = new A();
$a->OpenFileRead; //потомок
|
| |
|
|
|
|
|
|
|
для: speedsoft
(18.06.2012 в 02:09)
| | Привет speedsoft Быстрый софт, спасибо за подсказку.
Кажется я въехал во вкус после 1с
Тоже хочу стать быстрым софтом.
На классах очень легко и быстро пишется
с NetBeans не поможешь
http://softtime.ru/forum/read.php?id_forum=2&id_theme=86865&page=1
Хочу понять, что хорошего в Zend Framework.
В PhpED я не вижу ничего нужного, вот хочу попробовать
http://instanceof.org/nastroika-netbeans-dlya-raboty-s-zend-framework-v-ubuntu/
http://instanceof.org/nastroika-netbeans-dlya-raboty-s-zend-framework-v-windows/
..... внизу там ссылки на 20 страниц до создания админки и регистрации пользователей и поиска по сайту.
Может чего интересного подскажешь?
Как получить прямой доступ к MySQL на удаленном сервере
http://softtime.ru/forum/read.php?id_forum=3&id_theme=86849&page=1
Как сделать шлюз для сайта на хостинге и домашнего компа
http://softtime.ru/forum/read.php?id_forum=2&id_theme=86773&page=1 | |
|
|
|
|
|
|
|
для: roma67
(19.06.2012 в 04:51)
| | Привет. по хостингу и MySQL прокомментировал. по бобам смогу только вечером. сейчас уезжаю и буду вечером | |
|
|
|
|
автор: Рулсан12ц (15.06.2012 в 14:10) |
|
|
для: cheops
(26.04.2012 в 16:20)
| | Перегрузка функций это не полиморфизм | |
|
|
|
|
|
|
|
для: Рулсан12ц
(15.06.2012 в 14:10)
| | Молодой человек. Вы отрицаете, но не приводите своего доказательства. Это пустые звуки в воде. | |
|
|
|