Построить имя переменной PHP на основе других значений переменных и статического текста

Я хочу сообщить своей функции, какую переменную вызывать, исходя из дня недели. День недели хранится в $ s_day, а переменные, которые я хочу вызывать, изменяются в зависимости от того, в какой день.

например

Я сохранил строку «Добро пожаловать на неделю» в $ d_monday_text1. Вместо того, чтобы создавать набор из 7 условных операторов (например, если date = monday echo $ foo, else if date = tuesday echo $ bar …), могу ли я изменить имя переменной, вызываемой в функции, объединив имя переменная?

$s_day = date("l"); $text1 = '$d_'.$s_day.'_text1'; 

Я надеюсь, что это оценивается до $ d_monday_text1, который, как упоминалось выше, имеет значение «Добро пожаловать на неделю». Итак, позже я бы хотел использовать:

 echo $text1; 

Чтобы получить итоговый результат = Добро пожаловать на неделю.

Я просмотрел переменные переменные, которые могут быть здесь, но я борюсь с синтаксисом. Я могу заставить его эхо конкатенировать имя, но я не могу понять, как получить это имя.

Переменные переменные – это не очень хорошая идея. Вы должны использовать массивы. Они справляются с этой проблемой гораздо лучше.

Например, вы можете использовать что-то вроде этого:

 $messages = array( 'monday' => 'Welcome to the week', 'tuesday' => 'Blah blah', 'wednesday' => 'wed', 'thursday' => 'thu', 'friday' => 'fri', 'saturday' => 'sat', 'sunday' => 'week is over!' ); $dayName = date('l'); echo $messages[$dayName]; 

Массивы – это формат данных, используемый для хранения нескольких связанных значений, таких как эти.

Вы можете использовать этот синтаксис:

$$ text1

Я использовал это раньше. Оценка происходит так:

$ ($ Text1)

Рассмотрим следующий пример:

 $construction_no = 5; $construction_5 = 'Door'; $var_name = 'construction_'.$construction_no; $var_value = ${$var_name}; echo $var_value; //Door 

Объектно-ориентированный подход

 $var_value = $this->{$var_name}; echo $var_value; //Door