Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

随笔分类 -  php

摘要:引言 使用laravel框架已经有段日子了,这几天一直在研究框架源码,看了一些关于laravel生命周期的文章,觉得得自己总结一下才能理解更深刻。话不多说,本次研究使用的是laravel6.0的源码,laravel5.x貌似差不多,函数细节有不同,大体流程没变。 请求流程 web服务器(Apache 阅读全文
posted @ 2022-06-24 11:25 whyly 阅读(65) 评论(0) 推荐(0) 编辑
摘要:引言 php对象复制可以通过clone关键字完成,并且会调用__clone()魔术方法。当对象被复制后,PHP 会对对象的所有属性执行一个浅复制(shallow copy)。所有的引用属性仍然会是一个指向原来的变量的引用。 浅复制 class A { public $name; public fun 阅读全文
posted @ 2022-06-17 17:40 whyly 阅读(592) 评论(0) 推荐(0) 编辑
摘要:引言 项目需要将HTML页面转换为PDF,由于使用laravel开发,选用了laravel-snappy,它是snappy的laravel版本。snappy是一个PHP库,可以从 url 或 HTML页面生成缩略图、快照或PDF,底层调用的是wkhtmltopdf。wkhtmltopdf是一个开源软 阅读全文
posted @ 2022-06-08 17:47 whyly 阅读(1871) 评论(0) 推荐(0) 编辑
摘要:经典的单例模式代码如下 class Singleton { private static $instance; // 防止外部实例化 private function __construct(){} // 防止克隆 private function __clone(){} // 防止 seriali 阅读全文
posted @ 2022-06-06 22:23 whyly 阅读(42) 评论(0) 推荐(0) 编辑
摘要:前言 今天看到一个有意思的问题,要获取一个集合的所有子集,使用PHP语言表示的话,就是要找到一个数组的所有子集数组,如[1,2,3],结果应该是 [1] [2] [3] [1,2] [1,3] [2,3] [1,2,3] PHP代码 function powerSet(in,minLength 阅读全文
posted @ 2022-04-15 16:04 whyly 阅读(203) 评论(0) 推荐(0) 编辑
摘要:前言 laravel 通过模型获取数据库数据时,经常遇到这样的代码 User::where('sex', '男')->get(); 项目所有模型类都继承子Illuminate\Database\Eloquent\Model,但是我在类中并没有找到where方法,这是如何调用的呢? 模型中的查询构造器 阅读全文
posted @ 2022-04-11 16:58 whyly 阅读(209) 评论(0) 推荐(0) 编辑
摘要:前言 我们在编写类时总是希望最低限度的暴露方法和属性,这是面向对象编程「封装」特性的重要体现。在PHP中使用三个关键字对类的属性和方法进行访问限制public、protected和private。 访问控制 public 公有,任何地方都可以访问 protected 受保护,自身、子类和父类可以访问 阅读全文
posted @ 2022-04-10 17:54 whyly 阅读(210) 评论(0) 推荐(0) 编辑
摘要:...语法糖是在PHP5.6中出现的新特性,可以表示变长参数,主要有2中应用方式 1. 定义函数参数 <?php function f(req,opt = null, ...$params) { // paramsprintf(req: %d; $opt: 阅读全文
posted @ 2022-04-09 07:46 whyly 阅读(103) 评论(0) 推荐(0) 编辑
摘要:解决方案 使用php:7.2.24-fpm-alpine构建php镜像,iconv存在bug,需要在Dockerfile中添加如下命令 RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/com 阅读全文
posted @ 2022-03-17 11:57 whyly 阅读(739) 评论(0) 推荐(0) 编辑
摘要:use Carbon\Carbon; Carbon::now(); // 2021-06-15 15:24:50 Carbon::today()->toDateString(); // 今天 Carbon::yesterday()->toDateString(); // 昨天 Carbon::par 阅读全文
posted @ 2022-01-05 14:26 whyly 阅读(1049) 评论(0) 推荐(0) 编辑
摘要:项目有个类需要使用单例模式,这我熟悉啊,眨眼之间就写了如下代码 class A { protected static $instance = null; // 防止外部实例化 protected function __contruct(){} // 防止克隆 protected function _ 阅读全文
posted @ 2020-09-23 23:53 whyly 阅读(176) 评论(0) 推荐(0) 编辑
摘要:arr1=[1,2,3];arr2 = [1,2,3,4,5,6]; newarr=arrayfilter(arr2, function(var)use(arr1){ return !in_array(var,arr1); }); var_dump($new_ar 阅读全文
posted @ 2020-09-16 22:36 whyly 阅读(812) 评论(0) 推荐(0) 编辑
摘要:并集 array_merge 字符串键名相同,后面覆盖前面,数字键名会在后面追加,不覆盖,参考代码如下 array1 = array("color" => "red", 2, 4); array2 = array("a", "b", "color" => "green", "shape" => 阅读全文
posted @ 2020-08-26 10:32 whyly 阅读(5933) 评论(0) 推荐(0) 编辑
摘要:首先说明,研究这个并不是想搞什么算法研究,目的在于能够应用到日常的项目代码中。 list a = 'A'; b = 'B'; list(b, a) = [a, b]; //php7可以简写为[b, a] = [a, b]; echo "a:{$a}, b:{$b}"; 建议大家使 阅读全文
posted @ 2020-08-21 11:25 whyly 阅读(249) 评论(0) 推荐(0) 编辑
摘要:foreach有2种遍历方式 1.值遍历 2.引用遍历 值遍历 值遍历是我们最常用的方式,一般长这样 arr = [0,1,2,3]; foreach (arr as key => value) { var_dump($value); } 值遍历操作的是数组的副本,如果在遍历的过程中修改了数 阅读全文
posted @ 2020-08-20 15:11 whyly 阅读(222) 评论(0) 推荐(0) 编辑
摘要:删除数组元素 unset unset删除数组元素,不会重建索引 //demo1 arr = [1, 2, 3]; array_push(arr, 4); unset(arr[count(arr) - 1]); array_push(arr, 5); print_r(arr); //Arr 阅读全文
posted @ 2020-08-09 00:07 whyly 阅读(340) 评论(0) 推荐(0) 编辑
摘要:php5.3.0开始,增加了后期绑定功能,用于在继承范围内引用静态调用的类。 要说这个需要先看2个概念 非转发调用(non-forwarding call) 指通过明确指定类名的静态调用(A::test())或非静态调用($a->test()) 转发调用(forwarding call) 指通过以下 阅读全文
posted @ 2020-07-31 23:42 whyly 阅读(270) 评论(0) 推荐(0) 编辑
摘要:php变量存储在叫zval的容器中,下文用变量容器说明,这个容器包含了变量类型,变量值,是否是引用变量is_ref ,容器引用次数refcount 四个部分。 引用计数机制 标准变量 将一个常量赋值给一个变量时就会创建一个变量容器,如下 <?php $a = 'a string'; ?> 如果你安装 阅读全文
posted @ 2020-07-10 17:18 whyly 阅读(199) 评论(0) 推荐(0) 编辑
摘要:<?php a = "/a/c/d/a.php"; b = "/a/c/b.php"; function get_relative(a, b) { path = ''; arr_a = explode('/', a); arr_b = explode('/', b); count 阅读全文
posted @ 2020-07-10 14:56 whyly 阅读(319) 评论(0) 推荐(0) 编辑
摘要:1.(expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。 $a = (expr1) ? (expr2) : (expr3); //等价于下面的代码 if (expr1) { $a = 阅读全文
posted @ 2020-07-06 15:22 whyly 阅读(1564) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示