Hello,
due to a little discussion on IRC I noticed that the following code
works:
<?php
$a = "foobar";
$a{strlen($a)-1};
?>
now IMO the offset should only be a simple integer value, as this is a
little bit too much magic to me (and perlish). Although the code above
can have it's use, the following does also work fine:
file1.php
<?php
return 4;
?>
file2.php
<?php
$a = "foobar";
echo $a{include 'file1.php'};
?>
echos 'a'.
I think this sideeffect should be disallowed as it adds a lot of
unreadableness to code. (I do als vagely remember a discussion a year or
something ago which resulted in something like "the offset to a string
should be an integer only, and not for example {1..4} or {-1}". Can't
find this though in the archives.
regards,
Derick
I think this sideeffect should be disallowed as it adds a lot of
unreadableness to code. (I do als vagely remember a discussion a year or
something ago which resulted in something like "the offset to a string
should be an integer only, and not for example {1..4} or {-1}". Can't
find this though in the archives.
That's a different argument. {1..4} and {-1} both introduce new concepts.
I see no reason why {} cannot contain exactly the same things that [] can
contain today. And if suddenly [] could only contain integers pretty much
every PHP script I have ever written would break. The whole point of {}
is to explicitly differentiate an string index from an array index. How
that index is specified inside the braces shouldn't differ from one to the
other.
-Rasmus
On Saturday, Jan 3, 2004, at 22:35 Europe/Copenhagen, Derick Rethans
wrote:
Hello,
due to a little discussion on IRC I noticed that the following code
works:<?php
$a = "foobar";
$a{strlen($a)-1};
?>now IMO the offset should only be a simple integer value, as this is a
little bit too much magic to me (and perlish).
What is a "simple integer value"? You mean only to allow integer
constants here? How are you supposed to process a string char by char
without some sort of calculation of string offset?
Edin