首页
复制
搜索
前进
后退
重载网页
和我当邻居
给我留言吧
首页
统计
关于
WOW怀旧
友链
更多
留言
壁纸
直播
Search
1
关于《杀死那个石家庄人》背后的故事
3,798 阅读
2
沈阳故宫之旅
609 阅读
3
摄影记录|鸿恩寺
562 阅读
4
赤壁赋| 知不可乎骤得,托遗响于悲风
423 阅读
5
Laravel-admin 删除行|删除回调
366 阅读
编程技术
GoLang
Vue
PHP
Linux
Redis
网络安全
生活杂记
登录
Search
标签搜索
PHP
随笔
Mysql
Laravel-Admin
Laravel
摄影
设计模式
Ab
Linux
Javascript
MAC
支付
CentOs
sh
嘉陵江
南滨路
蓝易云
redis
万能青年
累计撰写
60
篇文章
累计收到
145
条评论
首页
栏目
编程技术
GoLang
Vue
PHP
Linux
Redis
网络安全
生活杂记
页面
统计
关于
WOW怀旧
友链
留言
壁纸
直播
搜索到
41
篇与
的结果
2022-03-15
PHP中的include 和 require
共同点{callout color="#f0ad4e"}两者都是引入文件{/callout}requirerequire 这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。includeinclude 这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。可以把程序执行时的流程简单化。区别1.php在遇到include时就解析一次,如果页面中出现 10次include ,php就解析 10次,而php 遇到require时只解析一次,即使页面出现多次require也只解析一次,因此require的执行效率比include高。2.php使用require 包含文件时将被包含的文件当成当前文件的一个组成部分,如果被包含的文件中有语法错误或者被包含的文件不存在,则 php脚本将不再执行,并提示错误。3.php使用include 包含文件时相当于指定了这个文件的路径,当被包含的文件有语法错误或者被包含的文件不存在时给出警告,不影响本身脚本的运行。4.include在包含文件时可以判断文件是否包含,而require则不管任何情况都包含进来。5.require的效率比require_once的效率更高,因为require_once在包含文件时要进行判断文件是否已经被包含。include与include_once的区别Include 加载文件 可以多次加载同一文件include_one 只能加载同一文件一次require与require_once的区别require 如果有多个相同路径的require,都会执行require_once 如果有多个同路径的require_once,只执行一次原文链接:https://blog.csdn.net/github_37030657/article/details/89368246
2022年03月15日
192 阅读
0 评论
0 点赞
2022-03-15
PHP魔术方法__get && __set
前言{callout color="#f0ad4e"}当我们试图获取一个不可达属性时(比如private),类会自动调用__get函数。当试图设置一个不可达属性时(比如private),类会自动调用__set函数{/callout}当非法调用私有变量时<?php namespace App\Http\Controllers; class TestController { public $name = '你的名字'; private $age = 18; }<?php namespace App\Http\Controllers; class IndexController { private $class; public function __construct(TestController $test) { $this->class = $test; } public function test() { return $this->class->age; } } 会产生一个报错{message type="error" content="Cannot access private property App\Http\Controllers\TestController::$age"/}当加入了__get() 方法<?php namespace App\Http\Controllers; class TestController { public $name = '你的名字'; private $age = 18; private $sex = '男'; function __get($name){ echo '姓名: '.$name.' 年龄:'.$this->age.'-性别'.$this->sex; } } 调用<?php namespace App\Http\Controllers; class IndexController { private $class; public function __construct(TestController $test) { $this->class = $test; } public function test() { return $this->class->age; } } 结果姓名: age 年龄:18-性别男{message type="info" content="可以看出test方法自动调用了 __get(),并可以访问私有变量。"/}__set() 同理<?php namespace App\Http\Controllers; class TestController { public $name = '你的名字'; private $age = 18; private $sex = '男'; function __set($age,$val){ $this->$age = $val; } public function getAge() { return $this->age; } } 调用<?php namespace App\Http\Controllers; class IndexController { private $class; public function __construct(TestController $test) { $this->class = $test; } public function test() { $this->class->age = 30; return $this->class->getAge(); } } 结果30
2022年03月15日
147 阅读
0 评论
0 点赞
2022-03-15
PHP(DI)依赖注入
依赖注入{callout color="#f0ad4e"}本质上是指对类的依赖通过构造器完成自动注入通俗来说,就是你当前操作一个类,但是这个类的某些方法或者功能不是单单只靠这个类就能完成的,而是要借助另一个类的才能完成的最直接的标志就是 传参数据为对象 的时候。严格来说,你想在 另一个类中操作另一个类 ,这两个类之间形成了相互依赖关系, 传参的方式叫注入 {/callout}简单的例子<?php namespace App\Http\Controllers; class AdapterController { public $name = '欢迎访问依赖注入'; } 使用<?php namespace App\Http\Controllers; class IndexController { protected $Adapter; public function __construct(AdapterController $Adapter) { $this->Adapter = $Adapter; } public function test() { return 'Hello,' . $this->Adapter->name; } } 结果Hello,欢迎访问依赖注入高阶操作传统的写法<?php /** * 定义了一个消息类 * Class Message */ class Message{ public function seed() { return 'seed email'; } }/* * 订单产生的时候 需要发送消息 */ class Order{ protected $messager = ''; function __construct() { $this->messager = new Message(); } public function seed_msg() { return $this->messager->seed(); } } $Order = new Order(); $Order->seed_msg();{callout color="#f0ad4e"}上面的代码是我们传统的写法。首先由个消息发送的类。然后在我们需要发送消息的地方,调用发送消息的接口。有一天你需要添加一个发送短信的接口以满足不同的需求。那么你会发现你要再Message类里面做修改。同样也要再Order类里面做修改。这样就显得很麻烦。这个时候就有了依赖注入的思路。下面把代码做一个调整{/callout}依赖注入写法 为了约束我们先定义一个消息接口<?php namespace App\Http\Controllers; /** * 为了约束我们先定义一个消息接口 * Interface MessageInterface */ interface MessageInterface { public function send(); }有一个发送邮件的类<?php namespace App\Http\Controllers; /** * 有一个发送邮件的类 * Class SendEmailController */ class SendEmailController implements MessageInterface { public function send() { return 'send email'; } } 新增一个发送短信的类<?php namespace App\Http\Controllers; /** *新增一个发送短信的类 * Class SendSMSController */ class SendSMSController implements MessageInterface { public function send() { return 'send sms'; } } 订单产生的时候 需要发送消息<?php namespace App\Http\Controllers; /* * 订单产生的时候 需要发送消息 */ class OrderController { protected $messager = ''; function __construct(MessageInterface $message) { $this->messager = $message; } public function send_msg() { return $this->messager->send(); } } 调用<?php namespace App\Http\Controllers; class IndexController { public function test() { //我们需要发送邮件的时候 $message = new SendEmailController(); //将邮件发送对象作为参数传递给Order $Order = new OrderController($message); echo '触发邮件---'.$Order->send_msg().PHP_EOL; //我们需要发送短信的时候 $message = new SendSMSController(); $Order = new OrderController($message); echo '触发短信---'.$Order->send_msg().PHP_EOL; } } 结果触发邮件---send email 触发短信---send sms
2022年03月15日
215 阅读
2 评论
0 点赞
2022-03-15
xml转数组
代码function xmlToArray($xml) { //禁止引用外部xml实体 libxml_disable_entity_loader(true); $values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true); return $values; }
2022年03月15日
72 阅读
0 评论
0 点赞
2022-03-14
centos7安装Wkhtmltopdf
从官网下载预编译版安装:wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz解压tar xvfJ wkhtmltox-0.12.4_linux-generic-amd64.tar.xz移动位置并赋予权限cd wkhtmltox/bin sudo mv ./wkhtmltopdf /usr/bin/wkhtmltopdf sudo chmod +x /usr/bin/wkhtmltopdf修复字体yum install urw-fonts libXext openssl-devel解决中文不显示问题将 windows下的字体,例如simsun.ttc ,或者msyh.ttf,或者msyhbd.ttf 复制到 linux系统 /usr/share/fonts 下这里附上文字包 {cloud title="simsum.ttc" type="default" url="https://blog.shmilyi.cn/simsun.zip" password="无"/}tips:若为docker环境,字体目录需要与宿主机映射否则需要放到docker容器内的/usr/share/fonts 下进入字体库目录,刷新系统即刻生效,输入命令mkfontscale mkfontdir fc-cache测试wkhtmltopdf http://www.baidu.com ./test.pdf
2022年03月14日
271 阅读
0 评论
0 点赞
1
...
3
4
5
...
9