Re: [SMARTY-DEV] foreach tag and objects
| From: | Boris Bezrukov | Date: | Mon, 17 Jan 2005 11:53:15 +0000 |
| Subject: | Re: [SMARTY-DEV] foreach tag and objects | ||
| References: | 1 2 | Groups: | php.smarty.dev |
| Request: | Send a blank email to php-smarty-dev+get-2607@lists.php.net to get a copy of this message | ||
Boris Bezrukov wrote:
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. DavidDavid, 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. I did it again :]. New patch attached here. Sorry.
-----Original Message----- From: Boris Bezrukov [mailto:lovchy@php.net] Sent: Monday, January 10, 2005 5:59 PM To: Boris Bezrukov Cc: smarty-dev@lists.php.net 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.