Почему он не тасует массив, поэтому я получаю случайный результат каждый раз?
class greeting { public $greet = array('hi','hello'); shuffle($greet); } $hi = new greeting; echo $hi->greet[1];
Что-то не так с моим кодом?
Если вы измените его так, чтобы перемешивание было внутри конструктора, оно должно работать нормально.
class greeting { public $greet = array('hi','hello'); function __construct(){ shuffle($this->greet); } }
Внутри блока класса вы можете определять только константы, свойства (как с фиксированными значениями), так и методы.Вы не можете поместить код в этот блок, код можно поместить только внутри методов (функций AKA).
любые вычисления не могут быть выполнены вне метода, внутри класса.
class greeting { public $greet = array('hi','hello'); function __construct() { shuffle($this->greet); } } $hi = new greeting; echo $hi->greet[1];