#php #arrays #class #function #object
#php #массивы #класс #функция #объект
Вопрос:
Я хочу создать простую команду при вызове массива. В этом случае это была бы кнопка ВКЛЮЧЕНИЯ внутри пульта дистанционного управления. (Иллюстративная концепция). Но не работает (синтаксическая ошибка).
Это мой фрагмент кода:
<?php
class remoteControl{
public $operate = array("ON", "OFF", "UP","DOWN");
public function pressButton($operate("0")){
echo "You have pressed ". $this->operate;
}
}
$control_01 = new remoteControl();
echo $control_01-> pressButton();
?>
Любая помощь была бы очень полезной 🙂
Ответ №1:
У вас есть несколько синтаксических ошибок, предполагающих, что вам следует прочитать руководство по PHP об основах.
Ваш код (отформатированный):
<?php
class remoteControl {
public $operate = array("ON", "OFF", "UP","DOWN"); // 1)
public function pressButton($operate("0")) { // 2), 3), 4)
echo "You have pressed ". $this->operate; // 5)
}
}
$control_01 = new remoteControl();
echo $control_01-> pressButton();
?>
1) вы должны сделать эту переменную закрытой, если она используется только внутри методов класса
2) использование массивов: $operate[0] — подробнее
3) не используйте string в качестве индекса («0») — это сработает, но приведение к ненужному типу
4) наконец, эта строка должна быть примерно такой:
public function pressButton($operate = 0) {
это означает, что если вы явно не предоставите аргумент, он будет иметь значение 0 — подробнее об аргументах функции
5) из-за 4) это должно быть:
echo "You have pressed ". $this->operate[$operate];
РЕДАКТИРОВАТЬ: Весь код:
<?php
class remoteControl {
private $operate = array("ON", "OFF", "UP", "DOWN");
public function pressButton($operate = 0) {
echo "You have pressed ". $this->operate[$operate];
}
}
$control_01 = new remoteControl();
echo $control_01->pressButton();
?>
Ответ №2:
не совсем понятно, что вы собираетесь делать с вашим кодом, вы, кажется, передаете один элемент operate array в свою функцию. надеюсь, этот код поможет: http://codepad.org/CYVT7hI5
<?php
class remoteControl{
public $operate = array("ON", "OFF", "UP","DOWN");
public function pressButton($index){
echo "You have pressed ". $this->operate[$index];
}
}
$control_01 = new remoteControl();
echo $control_01->pressButton(1);
?>