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

Reply via email to