* Trait Answer
* Trait : 关键字 Trait
* 使用 use
* 我的理解 是为了解决php不能多继承的一个处理方式
* 在使用的时候 可以让两个不相关的类 产生联系
* Trait 如何使用
* 我觉得 有点类似于 thinkPHP中的function.php的作用
* 有点类似于 codeIgniter中的libraries的作用
* 但是有一定的区别
* 在公共的方法里面 都是一些处于独立较强的 比如 : md5加密 手机号码验证 发送短信 curl 等等
* 在Trait里面 可以定义一些成员属性 可以完成特定功能 也可以进行CURD
* 在使用的时候 namespace指定后 直接使用use关键字即可
* 两者的共同点
* 都是在完成指定功能 并且可以被重复调用 减少代码的冗余
*
* 注意点 :
* Trait里面不能有常量
* Trait里面的保护和私有的成员属性 外界不可以调用
* Trait里面方法可以被调用者覆盖,但属性不行,如果Trait中定义了一个属性,如果调用类中也定义这个属性则会报错。 撸过的代码:
 trait Answer{
public $a = 1;
private $b = 2;
protected $c = 3; public function begin()
{
return '这是开始';
} public function stop()
{
return '这是停止';
}
} trait Kinose{
public function k_begin()
{
return '这是kinose的开始';
}
public function k_stop()
{
return '这是kinose的停止';
}
} class A{
//写法1:
use Answer,Kinose;
// public $a = 4;
//写法2:
// use Answer;
// use Kinose; //如果重写的话 在调用的时候会直接使用A类中方法 而不是trait里面的
// public function begin()
// {
// return '这是A类的开始';
// }
} $a = new A(); echo $a->begin().'<br>';
echo $a->stop().'<br>';
echo $a->a.'<br>';
echo $a->k_begin().'<br>';
echo $a->k_stop().'<br>'; //echo $a->b.'<br>';
//echo $a->c.'<br>'; /** result
* 这是开始
* 这是停止
* 1
* 这是kinose的开始
* 这是kinose的停止
*/
												

php_Trait的更多相关文章

随机推荐

  1. Ubuntu下安装CUDA

    cuda check: cuDNN 下载cuDNN后解压 更新软链接 更新链接库 symbol link 参考链接: http://docs.nvidia.com/cuda/cuda-installa ...

  2. ubuntu 16.04 virtualbox could not insert 'vboxdrv': Required key not available 问题解决方法

    从 内核版本 4.4.0-20 开始,在开启了 Secure Boot 的电脑上,未注册的 kernel 模块不再允许执行,所以如果想在保持 Secure Boot 的情况下依然允许执行,我们需要做的 ...

  3. Grunt 使用(一)基础搭建

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!废话不多说,直接上干货. 1.安装node.js并检查node -v 和 n ...

  4. CentOS release 6.5 yum安装报错

    单独安装如下任何一个包都会报依赖错误,需要一起安装才可以 rpm -ivh yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm yum-3.2.29-4 ...

  5. NODE-环境变量的配置(踩坑总结)

    初学Node.js,从官网下载了node.js的Windows Installer,安装完成后,通过控制台输入node命令,发现提示说“node"不是内部或外部命令,这通常是由于没有设置环境 ...

  6. OWASP出品:Xenotix XSS漏洞测试框架及简单使用

    OWASP Xenotix XSS Exploit Framework是一个高效的跨站脚本漏洞(XSS)检测和攻击测试框架.它通过特有的三大浏览器引擎(包括Trident, WebKit和Gecko) ...

  7. linux解压eclipse启动时无法找到jre环境的解决办法

    使用软链接的方法: 1.打开终端进入到eclipse安装主目录下:mkdir jre 2.cd jre 3.ln -s /home/zhoushuo/app/jdk1.8.0_102/bin bin

  8. UVa 12034 - Race(递推 + 杨辉三角)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. UVa 12186 - Another Crisis(树形DP)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. UVa 1626 - Brackets sequence(区间DP)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...