Сначала пара незначительных баллов:
- в объявлении массива было несколько синтаксических ошибок (от
=
до =>
и удалены точки с запятой).
- при создании опций выбора вам не нужно указывать атрибут value, если он совпадает с текстовым значением.
Теперь я предложу пару рабочих блоков кода, в которых используются различные методы.
Код1: ( Демо )
class something {
public function one() {
$choices = array(
'something' => array(
'name' => 'test'
),
'something_two' => array(
'name' => 'test_one'
)
);
return $choices;
}
public function two() {
echo "<select>";
echo "<option>" , implode("</option><option>", array_column($this->one(), 'name')) , "</option>";
echo "</select>";
}
}
$foo = new something();
$foo->two();
Код2: ( Демо )
class something {
public $choices = array();
public function __construct() {
$this->choices = array(
'something' => array(
'name' => 'test'
),
'something_two' => array(
'name' => 'test_one'
)
);
}
public function two() {
echo "<select>";
echo "<option>" , implode("</option><option>", array_column($this->choices, 'name')) , "</option>";
echo "</select>";
}
}
$foo = new something();
$foo->two();
Если вы явно вызовете one()
из функции two()
или используете конструктор для объявления переменной (свойства) в классе (через объект $this
), будет зависеть от требований вашего проекта. Я не буду писать кучу цитат из руководства по PHP; Я просто советую вам прочитать некоторые базовые учебные пособия по классам и методам.