2017-02-17 19 views
0

взгляд на этот синтаксис имя переменной модифицирования:делает динамический определен (постоянные) переменные имя PHP

${'a' . 'b'} = 'hello there'; 
echo $ab; 

это возвращает "hello there"

Но я хочу провозглашаем определенные переменные динамичны.

$error_code = $_GET[error_code]; //for example: 404 
define(E404, 'Not found'); 
echo E{$error_code}; 

Это вернет ошибку, я хочу, чтобы генерировать E404 динамические на PHP коде и получить его значение. Я понятия не имею, какой синтаксис или технику я ищу здесь, что затрудняет исследование.

+0

Вы ищете массивы, которые сделают это намного проще. – jeroen

+0

Возможный дубликат [как получить доступ к php, определенному константой, используя переменную $ в качестве имени определенной константы] (http://stackoverflow.com/questions/10507034/how-to-access-php-defined-constant-using- a-variable-as-the-name-of-the-defined) –

ответ

2

Вы должны вызвать constant(), чтобы получить значение константы из строки. Ваш пример должен выглядеть следующим образом:

$error_code = 404; 
define('E404', 'Not found'); 
echo constant("E{$error_code}"); 

и он будет отображать Not found.

1
<?php 
    $ErrorCode = $_GET['error_code']; // Where error_code = 404 
    $Errors = array(); // here we are creating a new array. 
    $Errors[$ErrorCode] = "Whatever"; // here we are setting a key of the new array, with the keys name being equal to the $ErrorCode Variable 

    print_r($Errors); // Would return Array([404] => Whatever); 

    echo $Errors["404"]; // Would return Whatever 

?> 
+0

Хотя этот фрагмент кода приветствуется и может оказать некоторую помощь, он будет [значительно улучшен, если он содержит объяснение] (// meta.stackexchange.com/q/114762) * как * и * почему * это решает проблему. Помните, что вы отвечаете на вопрос читателей в будущем, а не только на человека, который спрашивает сейчас! Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение, и укажите, какие ограничения и допущения применяются. –