首页 > 编程语言 >php使用traits实现代码复用、多继承

php使用traits实现代码复用、多继承

时间:2023-08-25 11:33:46浏览次数:42  
标签:function obj trait 复用 echo traits say php


php只能继承一个父类,php5.4后新增traits实现代码复用机制变向达到多继承
1、trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个traits,用','隔开
2、trait会覆盖继承的方法,当前类会覆盖trait方法

<?php
class People{
	public function walk(){
		echo "人类行走<br/>";
	}
	function say(){
		echo "人类说话<br/>";
	}
}
trait Man{
	public function eat(){
		echo "男人吃饭<br/>";
	}
	function say(){
		echo "男人说话<br/>";
	}
	function sing(){
		echo "男人唱歌<br/>";
	}
}

class Child extends People{
	use Man;
	
	function sing(){
		echo "小孩唱歌<br/>";
	}
}

$obj=new Child();
$obj->walk();
$obj->eat();
$obj->say();
$obj->sing();
/*
结果:
人类行走
男人吃饭
男人说话
小孩唱歌
*/




标签:function,obj,trait,复用,echo,traits,say,php
From: https://blog.51cto.com/u_2148212/7228045

相关文章

  • phpcmsV9调用默认的分页样式
    //回复列表 publicfunctionganyanreply(){//点击后台-内容-留言管理,默认运行到这 $page=isset($_GET['page'])?intval($_GET['page']):1;//分页 $tablename=$this->db->db_tablepre.$MODEL[$modelid]['tablename'];// $this->db->......
  • phpcmsv9更换域名后和空间后登陆后台提示验证码错误如何解决
    修改 caches\configs\system.php 的//网站路径 'web_path' => '/apppath/',和'js_path' => 'http://localhost/apppath/statics/js/', //CDN JS'css_path' => 'http://localhost/apppath/statics/css/', //CD......
  • phpcms后台发表文章时候添加新的字段
    在modules/content/templates/content_add.tpl.php模板中的foreach($forminfos['base'] as $field=>$info) {}外面添加新的字段,注意name为字段名,同时在数据库的v9_news_data添加新的字段和testfield一致.<th width="80">测试字段</th><td><input type='text'......
  • phpcms添加后台菜单
    后台-扩展-菜单管理,选择在哪里添加菜单,然后填写模块名,文件名,方法名即可,参考系统默认的写法,如管理内容模块名为content,文件名是content.php,方法名是init,则调用的是 phpcms\modules\content\content.php中的init()方法,在content.php中function add() { }//对应的是content_add.tp......
  • php读入和伪协议
    前言:今天做题遇到了php伪协议,不会,所以来学习一下(有些内容是问newbing的,不是我写的)1.0什么是php伪协议什么是php伪协议,就是php支持的协议和封装协议1.1什么时候使用php伪协议?在文件包含时使用php伪协议,常见的文件包含函数如下1include**2require**3include_......
  • PHP发送阿里云短信
    1.阿里云开通短信服务,申请签名,模板,和AccessKey 2.下载PHP版本的SDK:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.55284.0.0.2a4b11da3sdcbG 3.将sdk文件夹放到项目里面,这里是直接放到了api文件夹,注意修改命名空间 4.在api里自定义一个控制器如sms.php,......
  • php实现大文件上传下载
    ​ 前段时间做视频上传业务,通过网页上传视频到服务器。视频大小小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案:1,修改服务端上传的限制配置;Nginx以......
  • 无涯教程-PHP - 简介
    PHP7是最期待的,它是PHP编程语言的主要功能版本。PHP7于2015年12月3日发布。本教程将以简单直观的方式教您PHP7的新功能及其用法。无涯教程假设您已经了解旧版本的PHP,现在就可以开始学习PHP7的新功能。使用下面的示例-<html><head><title>OnlinePHP-7ScriptE......
  • 无涯教程-PHP Mock Test函数
    本节介绍了与PHP相关的各种模拟测试。您可以在本地计算机上下载这些样本模拟测试,并在方便时离线解决。每个模拟测试均随附一个模拟测试键,可让您验证最终分数并为自己评分。MockTestIMockTestIIMockTestIIIMockTestIVQ1-关于PHP,以下哪项是正确的?A-PHP是......
  • 无涯教程-PHP Online Test函数
    该PHP在线测试模拟了真正的在线认证考试。您将看到基于PHP概念的多项选择题(MCQ),将为您提供四个options。您将为该问题选择最合适的答案,然后继续进行下一个问题,而不会浪费时间。完成完整的考试后,您将获得在线考试分数。总问题数-20最长时间-20分钟StartTest参......