PHP Puzzler: поиск значения переменной переменной, когда значение переменной включает косую черту

Я долго ломал голову над этим и надеюсь, что у кого-то есть идея. Вот код:

<?php
$Trucking_CPA="25.00"; // set price
$Trucking_price="\$Trucking_CPA"; // I know, that slash is the problem - but I need it there for other purposes in the program.

echo $Trucking_CPA."<br />"; // prints $25.00 - that's fine and expected

echo $Trucking_price."<br />"; // prints $Trucking_CPA (with no slash for some reason...)

echo $$Trucking_price."<br />"; // With double $ - Gives error: Notice: Undefined variable: $Trucking_CPA - why?

$anothertry1 = ${$Trucking_price};

echo $anothertry1."<br />"; // With double $ in brackets - Gives error: Notice: Undefined variable: $Trucking_CPA - why?

$anothertry2 = ${stripslashes($Trucking_price)};

echo $anothertry2."<br />"; // With double $ in brackets and stripslashes - Gives error: Notice: Undefined variable: $Trucking_CPA - why?

 ?>

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

У кого-нибудь есть идея, как заставить PHP дать мне 25,00, вызвав $Trucking_price?

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

<?php
$Trucking_CPA="25.00"; // set price
$Trucking_price="\$Trucking_CPA";
echo ${substr($Trucking_price,1)}; // returns 25.00 instead of $Trucking_CPA
 ?>

1 ответ

Решение

Вы можете попробовать следующее:

echo ${substr($Trucking_price,1)};

Это будет резать $ из строки $Trucking_price и вернуться Trucking_CPA. После этого вы можете вызвать эту переменную как ${'Trucking_CPA'},

Другие вопросы по тегам