Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Невнимательный
 Аватар для ft4l
3112 / 1290 / 359
Регистрация: 08.02.2013
Сообщений: 7,566
Записей в блоге: 2

static свойство как static свойство

23.07.2021, 23:02. Показов 2193. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не понятно почему нельза так использовать App::$STR внутри R::$ARR
PHP
1
2
3
4
5
6
7
8
9
10
11
12
cat <<\x | /c/srv/usr/php74/php
<?php
class App {
  static public $STR = 'data';
}
var_export(App::$STR);
class R {
  static public $ARR = array(1,2,3, App::$STR);
}
?>
x
PHP Fatal error:  Constant expression contains invalid operations in Standard input code on line 7
static public $ARR = App::$STR; нельзя точно так-же

Как-то по другому можно записать , чтобы было не operation а expression ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.07.2021, 23:02
Ответы с готовыми решениями:

Когда в классе функция должна прописываться как static?
Добрых суток! Ниже класс со статическим свойством. В каких случаях нужно прописывать функции в таких классах как статик? Есть какие-то...

Свойство, как объект
public $site = (object); при попытке начать заполнять свойство - $this-&gt;site-&gt;description = '...'; получаем Fatal error: Constant...

Non-static method nggGallery
Всем доброго времени суток! Ищу помощи... вверху сайта, в админке - появилась такая строчка-предупреждение: Creating default...

3
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881
24.07.2021, 00:07
Лучший ответ Сообщение было отмечено x_lab как решение

Решение

Это невозможно. Из за модели реализации инициализации переменных. То есть из области класса вы не сможете обратиться к другим переменным, или вызвать функцию.

Но вот так, всегда пожалуйста
PHP
1
2
3
4
5
6
7
8
9
10
class App {
  static public $STR = 'data';
}
var_export(App::$STR);
class R {
  static public $ARR = array(1,2,3);
}
R::$ARR[] = App::$STR;
 
var_export(R::$ARR);

Вообще, советую прочитать ООП. Раз приходиться так чудить.
0
Невнимательный
 Аватар для ft4l
3112 / 1290 / 359
Регистрация: 08.02.2013
Сообщений: 7,566
Записей в блоге: 2
24.07.2021, 12:46  [ТС]
Да... учудил наверно
Просто решил пока добавить константу... данные как-бы неизменяемые, но изменяемые/наращивающиеся в этих static
PHP
1
2
3
4
5
6
7
define('XCONST','data');
class App {
  static public $STR = XCONST;
}
class R {
  static public $ARR = array(1,2,3, XCONST);
}
Уж очень эти static удобные ,) не хочется лишний раз делать объекты в переменных и пробрасывать везде эти переменные
... и насчёт всяких extends и parent:: пока не хочется лес городить.
0
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881
24.07.2021, 16:03
Лучший ответ Сообщение было отмечено x_lab как решение

Решение

Цитата Сообщение от x_lab Посмотреть сообщение
данные как-бы неизменяемые
Тогда вам подойдёт такая реализация
PHP
1
2
3
4
5
6
7
8
9
10
class App {
  const XCONST = 'data';
 
  static  public $STR = XCONST;
}
class R {
  static  public $ARR = array(1,2,3, App::XCONST);
}
 
var_export(R::$ARR);
Так как, теперь данные "'data'" не являются переменной, они могут быть помещены в области переменных двух классов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.07.2021, 16:03
Помогаю со студенческими работами здесь

self, static, var, public
Не понимаю ничего в этих приставках... Зачем делать static-переменные? Чем отличается var от public? Стоп... static-переменные нужны для...

Переопределение CONST и STATIC
Можно ли в дочерних классах переопределять свойства класса, объявленные в родительском, как CONST или static? Пожалуйста, в случае,...

Как выводить постранично, есть ли у PHP свойство pagesize как у recordset в ASP?
Работаю с PostgreSQL - как самым удобным для меня. Все хорошо, только появилась необходимость выбирать из бд много строк, потом...

Переменная static и глобальный массив GLOBALS
Добрый день. Если объявить глобальную переменную global $var то эта переменная отображается в массиве $GLOBALS Вопрос вот в...

В каких случаях нужно применять static?
Остался только один вопрос: в каких случаях нужно применять static? Объясните пожалуйста, желательно с примером


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru