php
四郎别认输
这个作者很懒,什么都没留下…
展开
-
tp框架使用中间件修改get或者post请求所传递的变量
代码:<?phpnamespace app\http\middleware;class Notiflogcheck{ public function handle($request, \Closure $next) { $filter = json_decode(htmlspecialchars_decode($request->get('filter'))); if (isset($filter->result) &原创 2020-09-01 15:18:59 · 1403 阅读 · 1 评论 -
TP框架的Container容器类源码分析
TP框架的Container源码分析版本:5.1.39TLSContainer的结构导图Container结构图Container中的属性$instance——用于容器自身实例化 $instances——一个用于存放容器中的对象实例的数组 $name——容器表示别名 $bind——容器绑定标识$bind的初始值 /** * 容器绑定标识 * @var array */ protected $bind = [ 'a原创 2020-08-22 15:22:46 · 846 阅读 · 0 评论 -
理解php的依赖注入
依赖注入用来减少代码之间的耦合有效分离对象和它所需的外部资源示例现有Person类和Car类这两个类Person类<?phpnamespace di;class Person{ /** * 依赖 : Person类依赖于Car * 注入 car类注入到Person */ public static function buy() { $bmw = new Car(); return原创 2020-08-19 15:48:50 · 194 阅读 · 0 评论 -
如何在tp5.1中添加自定义类库,实现多扩展类库目录
在tp5.1中添加与extend目录相同的扩展文件夹,实现多扩展类库目录方法第一步在thinkphp中建立一个与extend文件夹同级的目录在这个文件夹下建立一个测试类Test,命名空间为ali<?phpnamespace ali;class Test{ public static function index() { echo '你侮辱了PHP几十年的历史,我要你立刻改正,但我一向是无所谓的'; }}在applica原创 2020-08-17 11:24:22 · 966 阅读 · 0 评论 -
Tp5自动加载Loader类学习
Tp5自动加载Loader类学习spl_autoload_register自动用给定的函数尝试加载未定义的类参数:自动加载的函数 是否抛出异常 true为添加至队首,false为添加至队尾Loader的Register方法注册系统自动加载composer自动加载调用了composer文件夹下的autoload_static.php文件$prefixLengthPsr4——自动加载的类的命名空间的名称的长度键为这个类的命名空间的首字母,值为这个类的命名空间的名原创 2020-08-13 22:29:00 · 411 阅读 · 0 评论 -
tp5.1框架初始化流程学习
tp5.1框架初始化流程学习tp5.1的入口文件(public/index.php)主要完成框架的初始化与应用启动,等待用户请求,然后进行调度处理入口文件代码<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +--------------------------------------原创 2020-08-13 16:28:58 · 376 阅读 · 0 评论 -
fastadmin插件开发的一种编码参考规范
接口或控制器中不能有private/protected方法 接口或控制器中不能含有非接口的public方法 有2处(含)以上的重复使用的代码封装到Model或者Logic中 如果仅判断数据是否存在,可以使用->count()方法 获取数据时需使用field设置需要的字段,不要过量调用不需要的数据 use声明中禁止引入不使用的类 禁止在接口或控制器中使用DB方法 代码一定要有相关注释,尽量越详细越好 插件管理后台开发引入系统model优先引入admin模块下的m...原创 2020-08-02 07:15:12 · 367 阅读 · 0 评论 -
php——赋值语句作为条件判断
php——赋值语句作为条件判断赋值语句返回的是所赋的值<?php$a = 0;$b = 0;var_dump($b = 0);//返回0;示例if ($a = 1||$b = 3) { var_dump($a);//返回true var_dump($b);//返回0}/***分析:if中的条件判断语句可以看作$a=(1||$b=3)*所以此时根据短路原理可以知道$b=3这条语句不执行*$a则接收或运算符所返回的true*/if (($a =原创 2020-07-05 09:25:48 · 1079 阅读 · 0 评论 -
pdo的增删改操作与获取正确的受影响行数的方法
<?php//新增操作header("content-type:text/html;charset=utf-8");//1.连接数据库$pdo=newPDO('mysql:host=127.0.0.1;dbname=shopimooc','root','root');$pdo->query('setnamesutf8;');//2.执行操作$sql='INSERTINTO`imooc_cate`(`cName`)VALUES(:cName)';...原创 2020-06-19 08:13:50 · 969 阅读 · 0 评论 -
pdo初学习
pdo执行sql语句的方法1.用pdo连接数据库//创建数据库对象$dsn='mysql:host=127.0.0.1;dbname=liuyanban';//数据源,不要加空格!!!$user='root';$password='root';//$pdo=newPDO('数据源','用户名','密码');$pdo=newPDO($dsn,$user,$password);要点:1.dsn——数据源:包括服务器地址,数据库名称2...原创 2020-05-30 16:50:13 · 158 阅读 · 0 评论 -
TP5.1框架开启sql日志记录
TP5.1框架开启sql日志记录第一步首先需要开启TP5.1框架的调试模式,将config目录下的app.php中的app_debug和app_trace设置为true第二步需要开启数据库的调试模式,将database.php中的debug设置为true第三步在log.php中添加日志等级sql注:如果没有设置path,默认时在runtime的log下生成文件。我在设置'/../logs'时发现没有按需求生成在logs文件夹下,最后在前面加上魔术常量__DIR__才成原创 2020-05-27 14:29:33 · 1989 阅读 · 0 评论 -
PHP7.0的一些新特性
php7.0的新特性开启严格模式php7.0新增标量类型声明(没有太理解这个标量的概念),提供了两种模式的选择默认php7.0以上版本开启为强制模式,此模式下不会对传入类型进行强制要求使用*declare(strict_types=1);*语句开启严格(强类型)模式function sum(int ...$ints){ return array_sum($ints);}print(sum(2,'3',4,1));//此时不会报错 //开启严格模式(强类型模式),传入的原创 2020-05-22 23:49:13 · 193 阅读 · 0 评论 -
fastadmin开发插件的基本流程
什么是fastadmin?FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架。fastadmin开发基础管理插件步骤以一个学校管理插件为例开发环境与工具PHPSTORMphpstudynginx1.15.11mysql8.0php7.3.4准备工作配置站点我的域名设置为fast51admin.localhost....原创 2020-05-02 11:12:31 · 4379 阅读 · 1 评论 -
tp框架配置路由的初学习
路由定义在route目录下的route.php中。最普通的路由——路由到模块\控制器\方法//路由到模块/控制器/操作Route::rule('demo1','index/test/demo1')//rule方法将原有的地址路径映射到rule中,此时原本的路径失效->method('get');//method用于设置请求方法路由到一个闭包函数的写法...原创 2020-04-29 22:29:30 · 634 阅读 · 0 评论 -
tp5.1的数据库连接
数据库的连接方法——使用静态连接的方法,通过修改配置目录下的database.php文件实现对数据库的连接(可以直接修改也可以使用ENV环境变量实现进行配置)以下是配置文件——<?phpuse\think\facade\Env;return[//数据库类型'type'=>Env::get('database_type'),//...原创 2020-04-28 08:29:44 · 1160 阅读 · 0 评论 -
php的数组函数
部分输出函数:print_r——格式化的输出变量,数组var_dump——输出一个变量或多个变量的详细信息(包括数据类型等)var_export——输出变量的字符串表示,其实就是php语句,在其中添加true可以实现用echo输出数组键值函数•array_values($arr): 返回元素的值组成的新数组•array_column($arr,$col,$index):...原创 2020-04-27 23:26:48 · 189 阅读 · 0 评论 -
php的字符串学习
字符串输出函数汇总•echo : 语言结构, 输出一个或多个字符串,字面量或单值变量•print:功能与echo相同,输出一个或多个标量,但会有一个返回值,成功返回 1•print_r($var, $bool): 可以输出一个标量,数组,对象等任何类型,可视为print的升级版•var_dump($var1,$var2... ): 可以详细的输出一个或多个任何类型的变量,可...原创 2020-04-27 23:13:13 · 141 阅读 · 0 评论 -
php的魔术常量的学习
__LINE__:获取文件中的当前行数;__FIEL__:文件完整的路径和文件名;__DIR__:当前文件所在的目录;__FUNCTION__:返回当前定义的函数名称;__CLASS__:返回当前类名;__METHOD__:返回当前的方法名;__TRAIT__:返回当前声明的trait类的名称;__NAMESPACE__:返回当前声明的空间的名称...原创 2020-04-27 23:06:06 · 148 阅读 · 0 评论 -
php的后期静态绑定技术
<?php//php的静态重载技术classFather{//静态属性publicstatic$money=50000;//静态方法publicstaticfunctiongetClass(){//返回当前类名return__CLASS__;}//静态方法...原创 2020-04-27 23:03:42 · 115 阅读 · 0 评论 -
php的重载技术
//重载技术//重载:动态的创建类属性和方法//属性重载//__set(),__get(),__isset(),__unset()//constIS_ISSET=true;//constIS_GET=true;//constIS_SET=true;//constIS_UNSET=false;////classVisit//{//protec...原创 2020-04-27 23:00:24 · 101 阅读 · 0 评论 -
phpExcel的初学习
PHPExcel在tp5.1上的安装第一种:在GitHub上下载phpExcel类库链接:https://github.com/PHPOffice/PHPExcel下载完类库后复制其中的Classes文件夹,放在tp5.1框架的vendor目录下然后在要使用的方法中使用reuqire引用该文件夹中的phpExcel.php即可引用代码require__DIR__.'...原创 2020-04-27 22:58:11 · 128 阅读 · 0 评论 -
PHP调用AES
AES加密技术的PHP7.0以前版本第一步——定义AES加密的类classAES第二步——定义AES的秘钥private$secretkey="aksjdhaskjhdkjas";第三步——定义加密向量(加密向量定义为常量)define('IV','1wsjdhask2hdkja1');第四步——定义加密方法publicfunctionen...原创 2020-04-27 22:47:07 · 221 阅读 · 0 评论 -
PHP的软删除
软删除——<?php$pdo=newPDO('mysql:host=127.0.0.1;dbname=php','root','root');$sql='UPDATE`staff`SET`is_show`=0whereid=2';$stmt=$pdo->prepare($sql);$stmt->exe...原创 2020-04-27 22:45:06 · 401 阅读 · 0 评论 -
PHP的&引用
PHP的引用&cow机制(copy or write)在理解引用机制之前我们需要理解cow机制举例:$a = range(0,1000);var_dump(memory_get_usage());$b=$a;var_dump(memory_get_usage());$a=range(0,1000);var_dump(memory_get_usage());结果:...原创 2020-03-07 16:30:24 · 146 阅读 · 1 评论 -
php常量与标量
php定义常量使用define函数。define函数包含三个参数1.定义的常量的名称。2.常量的值。3.规定常量名是否对大小写敏感,值为true或者false。检测常量是否定义的函数——defined()函数 若存在返回true,反之返回false。若定义了两个相同的常量,那么只有前者起作用,后者不起作用,因为常量一旦被定义则无法重新定义。若定义了两个相同的变量,...原创 2019-07-05 18:31:58 · 638 阅读 · 0 评论 -
php的八种数据类型
php的八种数据类型:标量类型:1.整型2.浮点型3.布尔型(true或false)4.字符串复合类型:5.数组6.对象特殊类型:7.Null(空类型)8.resource(资源型)特此记录,以防遗忘...原创 2019-07-04 12:39:11 · 139 阅读 · 0 评论 -
PHP变量
变量是存储数据的容器PHP 变量规则:变量以 $ 符号开头,其后是变量的名称 变量名称必须以字母或下划线开头 变量名称不能以数字开头 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _) 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)注释:PHP 变量名称对大小写敏感!//转载自w3cschoolphp支持${"MyVar"}这类命名格式。当一个...原创 2019-07-07 22:21:16 · 97 阅读 · 0 评论