Задать вопрос
@supdesign

Почему значения всех свойств класса «затираются» в конструкторе?

Казалось бы данный код должен вывести пустую строку, но выводится цифра 6 — длина переданной строки, которая должна храниться только в $length

class Decoder{ 
    private $inputStr; 
    private $pos; 
    private $out; 
    private $length; 
     
    public function __construct(string $str) {
        $this->inputStr = $str;        
        $this->$pos = 0;
        $this->$out = '';    
        $this->$length = mb_strlen($str);        
    }   
    public function decode(): string {
        return $this->$out;
    }    
}

$cipher = 'chiper';
$decrypted = new Decoder($cipher); 
echo $decrypted->decode();
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой 2 комментария
Решение пользователя DevMan К ответам на вопрос (2)
DevMan
@DevMan
включите вывод ошибок. у вас как минимум неверное обращение к свойствам (использование $ в имени).
Ответ написан
Комментировать