не типичный вывод констант php

271
12 июня 2017, 23:16

Здравствуйте, есть константы rank1, rank2, rank3

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

$int = 1
echo rank . $int

и чтобы в итоге вывело константу rank1

Спасибо.

Answer 1

в одном из ответов вам уже привели ссылку на документацию. К сожалению дальше ссылки абзаца текста там дело не пошло. А дальше написано вот что:

Также вы можете использовать функцию constant() для получения значения константы, если вы формируете имя константы динамически.

так что ваша задумка должна выглядеть следующим образом:

define('RANK1', 'ла ла ла');
const   RANK2 = 'а-та-та';
$int = 1;
echo constant("RANK$int");
Answer 2

Нельзя.

Для начала, документация: http://php.net/manual/ru/language.constants.syntax.php

Если использована конструкция const, константы могут содержать только скалярные данные (boolean, integer, float и string типов). С PHP 5.6 возможно также определять константы как скалярные выражения, и также можно определять константы с типом array. Можно определять константы с типом resource, но не рекомендуется, так как может привести к неожиданным результатам.

Соответственно, создаем что-то вроде:

const('Rank', array('1'=>'qwe','2'=>'asd');

Далее обращаемся^

Rank[1];
Answer 3

Если бы можно было в php динамически вызывать константы, в таком случае все очень просто, а так придется создавать массив со всеми именами констант, но в таком случае можно и вообще без констант обойтись)

READ ALSO
Создание расписания php

Создание расписания php

Столкнулся с трудностями в создании скрипта, который будет создавать расписание для игр футбольного турнира

539
1C-Bitrix CIBlockElement::GetByID

1C-Bitrix CIBlockElement::GetByID

Нужно в файле bitrix/php_interface/initphp вывести значение свойства блока

428
Как работает валидация на JavaScript?

Как работает валидация на JavaScript?

Добрый деньНемного не понимаю как работают проверки на клиенте и сервере

290