Hi,

what's about sample below?

<?php
class foo
{
    public $aabb;
    const bbaa = 'abba';
    static public $baba;
    function bar(){}
    function bing(){}
}
class bar
{
    const baab = foo::bbaa;
    function bar(){}
}

class A
{
    trait foo;
}

class B
{
    trait foo {unset bing, bar as bing, unset $aabb, unset bbaa};
    trait bar;
}
?>

in other words, why to introduce such a new thing as trait instead of using 
classes and trait'ing them?

just my two cents.
-j


"Gregory Beaver" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> Hi,
>
> Here is a slightly clearer syntax for trait instantiation and for
> aliasing/removing method names from traits:
>
> <?php
> trait foo
> {
>    function bar(){}
>    function bing(){}
> }
>
> trait bar
> {
>    function bar(){}
> }
>
> class A
> {
>    trait foo;
> }
>
> class B
> {
>    trait foo {unset bing, bar as bing};
>    trait bar;
> }
> ?>
>
> Simply re-using "trait" instead of "use" is a more self-documenting
> solution.  I found it slightly confusing to see "use" when that is a
> namespace-specific token currently.  This is also in keeping with the
> way functions are defined in interfaces vs. implementation, but in
> reverse (for traits, brackets are used for declaration, semi-colon used
> for instantiation).
>
> Obviously, using "unset" is more similar to current PHP ideas on how to
> remove something, and the "as" syntax is also very PHP-ish, these will
> be far more self-documenting than the proposed syntaxes I've read thus 
> far.
>
> Greg 

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

Reply via email to