mmsgold
25.06.2013 - 13:40
почему не выводит
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 $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
25.06.2013 - 13:42
Ну так ты же не предаешь аргументы в функцию при вызове. Разве нельзя перевести текст ошибок?
mmsgold
25.06.2013 - 13:45
Winston, а почему аргумент отсутствует я же передал его функции
private $a='a';
protected $b='b';
public function foo($a,$b) {
echo $a;
echo $b;
здесь же он должен вывести это же родительский класс
Winston
25.06.2013 - 13:47
Цитата (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
25.06.2013 - 13:49
мда,,, точно
mmsgold
25.06.2013 - 13:52
о мой мозг!
$obj = New B;
$obj->bar($b);
$obj2 = New A;
$obj2->foo($a,$b);
а почему щас то ниче не выводит?
glock18
25.06.2013 - 13:56
мой вам совет, забудьте о существовании ООП пока что
mmsgold
25.06.2013 - 13:57
glock18
, низачто!
glock18
25.06.2013 - 13:58
Цитата (mmsgold @ 25.06.2013 - 09:57) |
glock18 , низачто! |
жаль... ну а как насчет выучить основы языка хотя бы сначала?
mmsgold
25.06.2013 - 14:00
glock18
вспомнил я забыл в функциях прописать указатель), чет я сегодня какойто рассеянный)
glock18
25.06.2013 - 14:02
Цитата (mmsgold @ 25.06.2013 - 10:00) |
glock18 вспомнил я забыл в функциях прописать указатель), чет я сегодня какойто рассеянный) |
правда? не уверен, что понял это предложение. Правда почти уверен, что не этот самый "указатель" заставил меня подумать, что вам стоит повременить с ооп пока что
mmsgold
25.06.2013 - 14:05
glock18, ну не знаю теорию я уже проштудировал, теперь пробую, эксперементирую, в частности с protected и private,, тут то конечно пробелы и вылазиют,, и вообще я считаю лучше практики ничего быть не может
mmsgold
25.06.2013 - 14:07
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
25.06.2013 - 14:12
Цитата (mmsgold @ 25.06.2013 - 10:07) |
кстати работает и так |
"и так"? Вот именно поэтому я говорю "займитесь теорией". На практику тянет, а теории нет ни шиша, пардон
mmsgold
25.06.2013 - 14:29
glock18, а вот к примеру
Цитата |
Чтобы получить доступ к членам класса внутри класса, необходимо использовать указатель $this, которы всегда относится к текущему объекту. Модифицированный метод Getname():
function Getname() { echo $this->name; } |
вот ссыль
http://www.php.su/learnphp/phpoo/?classesfunction Setname($name) {
$this->name = $name;
}
$object->Setname("Peter");
$object->Getname();
ну или полный листинг примера (php4, ну я думаю это полового значения не меняет)
<?php
class Coor {
var $name;
function Getname() {
echo $this->name;
}
function Setname($name) {
$this->name = $name;
}
}
$object = new Coor;
$object->Setname("Nick");
$object->Getname();
?>
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.