PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:
trait exts
{
public function sendmail(string $msg)
{
echo "send mail:$msg";
}
}
class Tools
{
use exts;
public function sendsms(string $msg)
{
echo "send sms:$msg";
}
}
$tools = new Tools();
//发送短信
$tools->sendsms('smscontent');
//发送邮件
$tools->sendmail('emailcontent');本身我已经封装了一个工具类,能发短信,但是不支持发邮件。于是引入trait exts的属性和方法。于是支持发邮件了。
优先级:
(1).trait 会覆盖掉基类的同名方法
(2).本类(也就是当前使用trait的类)会覆盖掉trait的同名方法
上家公司开发医院挂号系统,系统采用GBK编码。ajax发送的中文用户名让PHP保存为cookie出现乱码的解决方案。1.Javascript变量var user=document.getElementById('user').innerText; user=escape(u...
在项目中需要对图片进行裁剪,前端裁剪完成发送base64给后端,但是很意外的PHP获取到的数据和前端有点差距,之前我都是先加密,后端解密,但是这次依然不行。于是使用filter_input方法轻松解决。$base64 = filter_input(INPUT_POST...
(1).学习的目标:学会创建父子进程,并且能够区分当前进程是父还是子;了解父进程执行过程,子进程执行过程;能够用多进程执行任务(2).相关函数学习: (2.1)pcntl_fork()执行时: &nbs...
最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...
自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": { "easy...