Правила объявления переменных в классе?

Конкатенация запрещена?
4c36bd92cd1c4a13b98d9a1204458f52.png
Через точку тоже шторм подсвечивает ошибку.
Можно как-то обойти?
  • Вопрос задан
  • 190 просмотров
Решения вопроса 4
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Ошибка-то наверно говорит что переменная не объявлена?
Потому что она и не объявлена.

ротокола нет, может быть $this->ротокол
но там пока контекста нет тоже.

Так что только через конструктор задавать.
Ну или self, но статично надо делать.
Ответ написан
@artemmityushov
Наверное $this->$protocol нужно писать. Это как бы основы ООП.
Да и использовать подобные конструкции это very bad style. Используйте свойства для подобных вещей.
Ответ написан
rammtw
@rammtw
Press CTRL+S to save project
public $url;

public function __construct(){
    $rotocol = УСЛОВИЕ  ? 'http' : 'https';
    $this->url = $rotocol . '://site.ru';
}
Ответ написан
Комментировать
То что вы пытаетесь сделать выглядит примерно так:
class Foo 
{
    private $protocol = 'http';
    private $url = 'mysite.ru';

    public function setProtocol(string $protocol): void
    {
        $this->protocol = $protocol;
    }

    public function getUrl(): string 
    {
        return $this->protocol . '://' . $this->url;
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽