+ -
当前位置:首页 → 问答吧 → 函数级的Traits

函数级的Traits

时间:2011-08-20

来源:互联网



0 0不知道其他语言有没有这个功能,算是提一个 php的 rfc

原型:

traits function abcd(){
   $a = 'bb';
   echo 'dd';
}

function t1(){
   $a = 'dd';
    use abcd;
}

function t2(){
   $a = 'dd';
   use abcd;
   ...
}

echo t1()

-> ddbb

------

相当于

inc.php 内容:

   $a = 'bb';
   echo 'dd';

->然后被包含:

function t1(){
   $a = 'dd';
    include 'inc.php';
}

echo t1()

-> ddbb

作者: kernel   发布时间: 2011-08-20

不是其它语言有没有,而是php本来就是从其他语言里借鉴来的,这个不是php的原创,你out了

作者: iminto   发布时间: 2011-08-20

我说这个是在函数内用的 php5.4的是在类里用的吧

php5.4的:

<?php
class Base {
   public function sayHello() {
     echo 'Hello ';
   }
}

trait SayWorld {
   public function sayHello() {
     parent::sayHello();
     echo 'World!';
   }
}

class MyHelloWorld extends Base {
   use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello(); // echos Hello World!
?>

作者: kernel   发布时间: 2011-08-20