On Tuesday 10 June 2008, Leurent Francois wrote:
> I was asking myself if there was a good reason this syntax not to work
>
> class string_extented{
> function __construct($str){
> $this->contents=$str;
> }
> function __toString(){
> return $this->contents;
> }
>
> }
>
> //that's working fine
> $test= new string_extended("this is my anonymous string");
> echo $test;
>
>
> /that's not working, but should'nt it be the case ?
> $test = (string_extended) "This is my anonymous string";
> echo $test;
>
> I'll find this very usefull :x, it's just a syntax ehancement nope ?

Casting only works between "easily convertable" types.  A string does not 
easily convert to a classic object.  One could ask if it would just pass to 
the constructor, but it doesn't.  I don't know if there's a technical reason 
for that or if just no one implemented it, but the short answer is "The 
language doesn't do that."

(What may be confusing you is __toString(), which only works for *reading* if 
you *already have an object* and then use it in a string context.  You don't 
already have an object and are trying to *write*, so the __toString() does 
nothing.)

-- 
Larry Garfield                  AIM: LOLG42
[EMAIL PROTECTED]               ICQ: 6817012

"If nature has made any one thing less susceptible than all others of 
exclusive property, it is the action of the thinking power called an idea, 
which an individual may exclusively possess as long as he keeps it to 
himself; but the moment it is divulged, it forces itself into the possession 
of every one, and the receiver cannot dispossess himself of it."  -- Thomas 
Jefferson

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to