Как отправить атрибутов для классов расширенные?
class Veiculos
{
protected $tipo = "carro";
}
Ниже я пытаюсь определить, какой тип транспортного средства, класс Veiculos
назначили. Я создал функцию tipo_veiculo
, который должен показать пользователю, какой тип автомобиля, который он выбрал, и попросить его выбрать цвет на следующем шаге.
class Veiculo extends Veiculos
{
public function tipo_veiculo(){
if($tipo == "carro"){
echo "Você selecionou carro. Escolha a cor.";
} elseif($tipo == "moto") {
echo "Você selecionou moto. Escolha a cor.";
} else {
echo "Você não selecionou nenhum carro.";
}
}
}
Как передать атрибут $tipo
класс Veículo
могу использовать его? Пытался что-то написать, используя понятие наследования, чтобы я мог попытаться получить ответ.
1 answers
, Понимая, наследование
, трудно ответить на этот вопрос, потому что у нее есть концептуальная ошибка. И если не понять концепции, не правильно будет кодировать правильно.
, Когда наследует класс, класс, который породила эта передает ее частью, соединяет все. То есть, класс и дочь-это все, что класс, мама-это что-то другое. Они-не две отдельные вещи, которые могут общаться (передача), это одно и то же.
Уже неловко, класс Veiculo
наследовать от класс с именем Veiculos
. Я уже говорил в другой вопрос, что должны существовать причина, чтобы использовать один класс и еще больше, чтобы использовать наследование. Почти ничего не нужно наследства, наследство должно быть исключение, и даже больше фанатов ООП знают об этом сегодня.
Одна из самых важных вещей в кодировке, чтобы дать хорошие имена для вещей. Одна вещь, которая привлекает Veiculos
должны иметь несколько транспортных средств в него? Этот класс имеет? Не кажется. И если это вещь, которая имеет несколько автомобилей, почему бы часть автомобиль просто? Положить несколько автомобилей в течение транспортного средства? Не имеет смысла.
, Если этот класс является частью транспортного средства, поэтому должен иметь другое имя. И если это только одна часть должна быть композиции, а не наследования (здесь также). Я просто не могу себе представить, как и наследство его будет уместны в этом случае.
Конкретной проблеме
Сказано все, что важно для тех, кто хочет научиться с этим вопросом, просто получить доступ к переменной, как правильно. В конце концов $tipo
- это локальная переменная (функция), когда - $this->tipo
- это переменная экземпляра класса. Ошибка отличается от описанного в вопросе.
См работает ideone. И repl.it. Также я GitHub для использования в будущем.