Em Seg, 2008-04-07 às 15:48 +1000, Timothy Chandler escreveu:
> I guess I should say it before anyone else does...
> 
> "It's not the PHP way"
> 

Do you mean the way that i initially suggest? 
Anyway return type hints (probably)? will implemented, 
at least it was accepted in 'Minutes PHP Developers Meeting'.

As far as i know, just wasn't decided the syntax.

> - Timothy Chandler
> Simple Site Solutions
> 
> Felipe Pena wrote:
> > Hello ladies and gentlemen,
> >
> > I made a patch that implements an experimental return type hint,
> > therefore we need discuss much about this yet, right? :)
> >
> > My idea uses (php-type) and +className as notation, see below.
> >
> > - PHP types
> >
> > function (string) foo(...) { } // Unicode string too
> > function (object) foo(...) { } // Strict
> > function  (array) foo(...) { } // Strict
> > function   (bool) foo(...) { } // Strict
> > function    (int) foo(...) { } // Accepts numeric string
> > function (double) foo(...) { } // Accepts numeric string
> >
> >
> > :: Question ---------------------------
> > - Add (resource), (unicode), (void) ? |
> > ---------------------------------------
> >
> > - Userland types (like actual parameter type-hint)
> >
> > function +className foo(...) { }
> > function +interfaceName foo(...) { }
> > // Uses the class/interface 'int', not the type
> > function +int foo(...) { } 
> >
> > :: Question ----------------------------
> > - Weird syntax?                            |
> > ----------------------------------------
> >
> > :: Examples ------------------------------------------------
> >
> > interface Itest { }
> > class bar implements Itest { }
> > class foo extends bar { }
> >
> > class test {
> >     static public function +Itest testing($instance) {
> >             return $instance;
> >     }
> > }
> >
> > test::testing(new bar);
> > test::testing(new foo);
> > test::testing(new stdclass); // Error!
> > // Catchable fatal error: The returned value must implement interface
> > Itest
> >
> > -----------------------------------------
> >
> > class foo {
> >     public function +self getInstance() {
> >             return $this;
> >     }
> > }
> >
> > $test = new foo;
> > var_dump($test->getInstance()); // OK!
> >
> > object(foo)#1 (0) {
> > }
> >
> >
> > Finally, it's nice or poor syntax?
> >
> > What must be improved/changed? (All?)
> >
> >
> > Patch: http://felipe.ath.cx/diff/return_type_hint.diff
> > Tests: http://felipe.ath.cx/diff/tests/
> >
> >   
> 
-- 
Regards,
Felipe Pena.


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

Reply via email to