Используйте переменную PHP как часть имени другой переменной - PullRequest
0 голосов
/ 30 мая 2018

У меня есть переменная с именем $ repeater, которая будет либо низкой, средней или высокой.

У меня также есть переменные с именем ...

$low_protein_feed
$moderate_protein_feed
$high_protein_feed

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

Я дошел до этого ...

echo "${$repeater}_protein_feed";

... который выдает, например, умеренный_протейн_фид.Но это отражается как текст, когда я хочу, чтобы он отображал значение переменной $ среднее_protein_feed.

Мне кажется, что я не за горами.Спасибо за любой вклад

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

позвольте мне предложить альтернативный подход, который, по мнению большинства разработчиков, лучше, чем использование переменных переменных:

//array for the protein_feed's
    $protein_feed=array('low'=>'1','moderate'=>'2','high'=>'3'); 
//then to select one based on the value of $repeater
    echo $protein_feed[$repeater];
0 голосов
/ 30 мая 2018

Я думаю, что вы хотите сделать что-то вроде этого:

<?php

// Example - though you should use objects, key -> values, 
// arrays instead in my opinion.

$low_protein_feed = "Low protein";
$moderate_protein_feed = "Lots of protein";
$high_protein_feed = "high grade protein";

$types = array("low", "moderate", "high");

foreach($types as $type) {

    echo ${$type . '_protein_feed'} . " \n";

}

Вывод:

$ php testme.php 
Low protein 
Lots of protein 
high grade protein 

Однако вы действительно должны использовать что-то вроде этого:

$types = array("low", "moderate", "high");
$proteins=array('low'=>'1','moderate'=>'2','high'=>'3'); 

foreach($types as $type) {
    echo $proteins[$type];
}

Более продвинутый дизайн, вы можете использовать объекты и объявлять тип указанного объекта и использовать стандартный тип для проектов.

Дополнительная информация об именах динамических переменных здесь и различиях между PHP5 / 7:

Использование фигурных скобок с именами динамических переменных в PHP

http://www.dummies.com/programming/php/how-to-use-php-variable-variables/

0 голосов
/ 30 мая 2018

Хотя я советую против такого рода программирования, иногда удобно иметь возможность иметь имена переменных.То есть имя переменной, которое может быть установлено и использовано динамически.Нормальная переменная устанавливается с помощью инструкции, такой как: вы захотите использовать $$, чтобы установить для переменной имя переменной.http://php.net/manual/en/language.variables.variable.php

Сценарий тестирования:

$myvariable = "hello";
$$myvariable = "hello2";

совпадает с

$hello = "hello2";

для вашего случая:

$low_protein_feed = "test1";
$moderate_protein_feed = "test2";
$high_protein_feed = "test3";

$repeater = "low";
echo ${$repeater . "_protein_feed"};

возвращает test1

проверить статью по безопасности http://rgaucher.info/php-variable-variables-oh-my.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...