Re: [SMARTY-DEV] foreach tag and objects

[email protected] (Boris Bezrukov)
Newsgroups php.smarty.dev
Message-ID <[email protected]>
David Zülke wrote:

>Boris,
>
>I looked at your patch. You're removing the type casting of the variable to
>an array. I believe this was done intentionally, because casting an int to
>an array creates an array with one value, the int. Same goes for other
>variable types. You cannot simply remove this.
>
>David
>
>  
>
David,

Yes, it does create, that what I was talking about. And it's, in fact, 
hack to allow people use scalars (scalars! not objects) in foreach tag. 
That's not bad, but it closes posibilities of using objects inside 
foreach tag. My patch will broke bc, yep... I apologize, do not commit 
it. But use if (!is_object($foo)) $foo = (array)$foo; then. And this 
will probably break one's script too. So is the price. It's _really_ bad 
not to give people posibilities to use iterators inside templates. PHP5 
is OOP-driven, you can't steal such an important language feature. Patch 
with !is_object attached.

>  
>
>>-----Original Message-----
>>From: Boris Bezrukov [mailto:[email protected]]
>>Sent: Monday, January 10, 2005 5:59 PM
>>To: Boris Bezrukov
>>Cc: [email protected]
>>Subject: Re: [SMARTY-DEV] foreach tag and objects
>>
>>Boris Bezrukov wrote:
>>
>>    
>>
>>>Hello.
>>>Smarty does use (array)$from syntax within compiled {foreach} tag. I
>>>suppose that was introduced to avoid errors with $from in scalar data
>>>types? Is indeed comfortable for PHP4, but PHP5 had introduced
>>>iterators, so objects can now be used within foreach construct either.
>>>How do you think if it should be removed? Yep, it can be replaced with
>>>something like if(!is_object), but should it?
>>>
>>>Patch removing them attached.
>>>
>>>Thank you.
>>>
>>>      
>>>
>>Forgot to attach file.
>>    
>>
>
>  
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.