[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка в ООП
Mushegh
Пожалуйста помоготе с решением проблемы. Скрипт выдает эрор. Мне кажется все написал правильно, но что-то не-то. Большое спасибо. А вот и сам код:

<?php
class Auto{

protected $x;
protected $y;

public function __construct($x = 0, $y = 0){
$this->x = $x;
$this->y = $y;
}

public function move($x, $y){
strMove($x, $y);
}

protected function strMove($x, $y, $type = ""){
if (type == "") echo "111";
else echo "222";
}
}

class Car extends Auto{

public function __construct($x = 0, $y = 0){
parent::__construct($x,$y);
}

public function move($x,$y){
strMove($x, $y, "car");
}
}

class Truck extends Auto{

private $capacity;

public function __construct($x = 0, $y = 0, $capacity = 5000){
parent::__construct($x,$y);
$this->capacity = $capacity;
}

public function move($x,$y){
strMove($x, $y, "truck");
}
}

$auto = new Auto();
$car = new Car();
$truck = new Truck();

$auto->move(10,20);
$car->move(30,40);
$truck->move(50,50);
?>
McLotos
Что конкретно написано в ошибке?
У меня этот скрипт ругнулся на то что ты пытаешься вызвать несуществующую функцию Call to undefined function strMove()

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Mushegh
Fatal error: Call to undefined function strMove() in D:\wamp\www\3.php on line 13

# Time Memory Function Location
1 0.0970 256544 {main}( ) ..\3.php:0
2 0.0970 257760 Auto->move( ) ..\3.php:51
McLotos
почитай про области видимости
http://www.php.net/manual/ru/language.oop5.visibility.php

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Mushegh
ОК, спасибо. Пайду читать это.
Mushegh
Но если даже все класси делать public, все равно не работает
McLotos
public function move($x, $y){
strMove($x, $y);
}

а должно быть
public function move($x, $y){
$this->strMove($x, $y);
}


_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
McLotos
Я вот только смысла не понял, зачем создавать метод, который просто передает другому методу?
И зачем создавать якобы extends классы, хотя по сути просто копипаст оригинального класса?
Или это просто для изучения делается?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Mushegh
ААААААААААА, Большое спасибо. Сработало. Два дня мучаюсь над этим. Я совсем новичок. Вот захотелось учить PHP. Огромное спасибо.
Mushegh
Это просто примери изучаю из видеоуроков и разных книг.
Быстрый ответ:

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