[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изучаю ООП
Страницы: 1, 2
mmsgold
почему не выводит
class A {
private $a='a';
protected $b='b';
public function foo($a,$b) {
echo $a;
echo $b;
}
}

class B extends A {
public function bar($b) {
// echo $a; -- это понятно не выведет
echo $b;
}

}

$obj = New B;
$obj->bar();
$obj2 = New A;
$obj2->foo();


Цитата
Warning: Missing argument 1 for B::bar(), called in Z:\home\class.ru\www\privat.php on line 25 and defined in Z:\home\class.ru\www\privat.php on line 18

Warning: Missing argument 1 for A::foo(), called in Z:\home\class.ru\www\privat.php on line 27 and defined in Z:\home\class.ru\www\privat.php on line 12

Warning: Missing argument 2 for A::foo(), called in Z:\home\class.ru\www\privat.php on line 27 and defined in Z:\home\class.ru\www\privat.php on line 12

строки с ошибками, это обявления методов и их вызов
Winston
Ну так ты же не предаешь аргументы в функцию при вызове. Разве нельзя перевести текст ошибок? smile.gif
mmsgold
Winston, а почему аргумент отсутствует я же передал его функции
 private $a='a';
protected $b='b';
public function foo($a,$b) {
echo $a;
echo $b;


здесь же он должен вывести это же родительский класс
Winston
Цитата (mmsgold @ 25.06.2013 - 12:45)
аргумент отсутствует я же передал его функции

Я не вижу, чтобы ты их передал в метод
Цитата (mmsgold @ 25.06.2013 - 12:40)
$obj->bar();

Цитата (mmsgold @ 25.06.2013 - 12:40)
$obj2->foo();


А это, объявленные свойства которые нигде не используются
Цитата (mmsgold @ 25.06.2013 - 12:45)
private $a='a';
    protected $b='b';
mmsgold
мда,,, точно
mmsgold
о мой мозг!
$obj = New B;
$obj->bar($b);

$obj2 = New A;
$obj2->foo($a,$b);


а почему щас то ниче не выводит?
glock18
мой вам совет, забудьте о существовании ООП пока что
mmsgold
glock18
, низачто!
glock18
Цитата (mmsgold @ 25.06.2013 - 09:57)
glock18
, низачто!

жаль... ну а как насчет выучить основы языка хотя бы сначала?
mmsgold
glock18
вспомнил я забыл в функциях прописать указатель), чет я сегодня какойто рассеянный)
glock18
Цитата (mmsgold @ 25.06.2013 - 10:00)
glock18
вспомнил я забыл в функциях прописать указатель), чет я сегодня какойто рассеянный)

правда? не уверен, что понял это предложение. Правда почти уверен, что не этот самый "указатель" заставил меня подумать, что вам стоит повременить с ооп пока что
mmsgold
glock18, ну не знаю теорию я уже проштудировал, теперь пробую, эксперементирую, в частности с protected и private,, тут то конечно пробелы и вылазиют,, и вообще я считаю лучше практики ничего быть не может
mmsgold
Winston, кстати работает и так
class A {
public $a='a';
public $b='b';
public function foo() {
echo $this->a;
echo $this->b;
}
}

class B extends A {
public function bar() {
echo $this->a;
echo $this->b;
}

}

$obj = New B;
$obj->bar();

$obj2 = New A;
$obj2->foo();
, но все равно спасибо
glock18
Цитата (mmsgold @ 25.06.2013 - 10:07)
кстати работает и так

"и так"? Вот именно поэтому я говорю "займитесь теорией". На практику тянет, а теории нет ни шиша, пардон
mmsgold
glock18, а вот к примеру

Цитата
Чтобы получить доступ к членам класса внутри класса, необходимо использовать указатель $this, которы всегда относится к текущему объекту. Модифицированный метод Getname():

function Getname() {
echo $this->name;
}


вот ссыль http://www.php.su/learnphp/phpoo/?classes

function Setname($name) {
$this->name = $name;
}

$object->Setname("Peter"); 
$object->Getname();


ну или полный листинг примера (php4, ну я думаю это полового значения не меняет)
<?php
// Создаем новый класс Coor:
class Coor {
// данные (свойства):
var $name;

// методы:
function Getname() {
echo $this->name;
}

function Setname($name) {
$this->name = $name;
}

}


// Создаем объект класса Coor:
$object = new Coor;
// Теперь для изменения имени используем метод Setname():
$object->Setname("Nick");
// А для доступа, как и прежде, Getname():
$object->Getname();
// Сценарий выводит 'Nick'
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.