Вы можете сделать это, используя переменную :
if(!isset($$order)) {
die("Invalid order type");
}
$cost = $$order;
echo "Please notice that your order will cost $cost";
См. Это в действии .
Это будет работать правильно для любого количества типов заказов, без необходимости повторного их указания, а также обнаружит недопустимый тип.
ПРЕДУПРЕЖДЕНИЕ: Однако с этим связана проблема безопасностиподход, как правильно указывает Другой Кодекс;пользователь может использовать это, создав специальные значения для $order
, которые позволят вашему скрипту раскрыть содержимое любой переменной, что может быть довольно существенной утечкой информации.
Предпочтительно: theто же самое может быть достигнуто более стандартным способом, если вы используете массив для типов заказов, и у этого решения нет проблем безопасности:
$types = array(
'bronze' => '180 EGP/yr',
'silver' => '280 EGP/yr',
// etc
);
if(!isset($types[$order])) {
die("Invalid order type");
}
echo "The cost will be ".$types[$order];