On Mon, 2011-06-20 at 10:06 -0700, Stas Malyshev wrote:
> Hi!
> 
> On 6/20/11 9:57 AM, Todd Ruth wrote:
> > Iterators are nice.  Having a "text_string_to_array" function
> > would also be fine.  For example:
> >
> > $s = 'hello';
> > foreach (text_string_to_array($s) as $x) {
> >      var_dump($x);
> > }
> 
> 
> text_to_array($s) == str_split($s, 1)

Does that have approximately the same performance as marking the
string as being OK to use as an array?  For example,

$s = file_get_contents($big_file);
foreach (str_split($s, 1) as $x) {
    f($x);
}

Are there performance issues with the above compared to:

$s = file_get_contents($big_file);
foreach (text_string_to_array($s) as $x) {
    f($x);
}

assuming text_string_to_array could be implemented as marking
the string OK to use as an array.

Again, I don't know enough about the internals.  I'm just imagining
a significant difference for very long strings between:
$a1 = text_to_array('hello');
and
$a2 = array('h','e','l','l','o');

$a1 and $a2 could act identically until a set occurred.  For example,
"$a1['key'] = 5;" would first trigger $a1 becoming just like $a2 so
that the set could take place.

Any string that has not been hit with text_string_to_array would lead
to all the usual error messages some of us know and love and
any string that has been hit with text_string_to_array would allow all
the fancy features some people are seeking.  I'm trying to find a
way to please the people that want strings to act like arrays without
ruining the day for those of us who are glad strings don't act like
arrays.

- Todd


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to