I don't think it is about readability:
$arr[3] = 'test';
$test = 3;
//This prints "$test"
echo "This doesn't work: $$arr[3]";
//This prints 3
echo "This works: ${$arr[3]}";
Using the same type way as before in this thread.
Above example is a classic one where readability and maintainability deal well together.
First of all everything works as expected but obviously you need to know what you need.
It is ambiguous to write $$arr[3] ... what do you expect?]
No I don't think it is. It produces "$test" and if this is what you need
echo it works nice :-) .
Did you mean the variable derived by $arr[3]?
echo "This works: {$$arr[3]}";
since curly brackets make the meaning of the expression explicit, it will be 3 indeed.
What is the less ambiguous, readable, easy to maintain, way to obtain that result?
echo "This works: {${$arr[3]}}";
If our aim is to get the variable with name equal to the value of $arr[3]
Can you see now why I am talking about good practice? Zero ambiguity, and that's how I like to code
Regards
Although I totally agree with the way of thinking and it is my style as
well.
But I though that the point of the thread was to present ways of putting
vars inside strings...
--
Thodoris