随笔分类 - php
摘要:<?php class Subject implements SplSubject { private $observers = []; private $state; public function attach(SplObserver $observer) { $this->observers[
阅读全文
摘要:PHP 7 支持通过 new class 来实例化一个匿名类,这可以用来替代一些"用后即焚"的完整类定义。 <?php interface Logger { public function log(string $msg); } class Application { private $logger
阅读全文
摘要:<?php // 框架核心应用层 $application = function($name) { echo "this is a {$name} application\n"; }; // 前置校验中间件 $auth = function($handler) { return function($
阅读全文
摘要:main.go package main import ( "net/rpc" "net" "log" "net/rpc/jsonrpc" ) //自己的数据类 type MyMath struct{ } //加法--只能两个参数 func (mm *MyMath) Add(num map[stri
阅读全文
摘要:composer dump-autoload --optimize composer install --no-dev --prefer-dist --prefer-stable 这两个命令是在使用Composer时常用的,Composer是PHP的依赖管理工具。下面是这两个命令的解释: 1. `c
阅读全文
摘要:分表分库,不使用第三方中间件的话,自己根据分库分表的逻辑进行重写表名、库名 use Illuminate\Support\Str; class Item extends Model { public $uid; //设置用户id,根据用户id进行取模(测试而已,正常用户信息可以放到token里,这样
阅读全文
摘要:在 PHP 中,对象可以被当作数组来调用,这通常是通过实现 ArrayAccess 接口来实现的。ArrayAccess 接口要求实现以下五个方法: offsetSet($offset, $value) offsetExists($offset) offsetUnset($offset) offse
阅读全文
摘要:因为开启键空间通知功能需要消耗一些 CPU , 所以在默认配置下, 该功能处于关闭状态。可以通过修改 redis.conf 文件, 或者直接使用 CONFIG SET 命令来开启或关闭键空间通知功能:当 notify-keyspace-events 选项的参数为空字符串时,功能关闭。另一方面,当参数
阅读全文
摘要:转成整数只能适用ipv4,ipv6本身就是个字符串 v4 // 假设有一个 IPv4 地址 $ip = '192.168.1.1'; // 将 IP 地址转换为整数 $ipLong = ip2long($ip); // 检查转换是否成功 if ($ipLong != -1) { // 将整数转换回
阅读全文
摘要:之前用yii2的时候框架封装的几个数组函数很好用,中间换了框架,把函数封装成了util <?php namespace app\utils; interface Arrayable { /** * Returns the list of fields that should be returned
阅读全文
摘要:使用 array_map() 应用函数到数组的每个元素。 $numbers = [1, 2, 3, 4, 5]; $squares = array_map(function($number) { return $number * $number; }, $numbers); // $squares
阅读全文
摘要:首先我们创建一个空的目录,并且运行以下命令初始化一个空白的composer包 composer init 可以在命令窗口看到有返回提示; 需要输入包名 This command will guide you through creating your composer.json config.` P
阅读全文
摘要:参考地址 php8 FROM php:8.1.0RC5-fpm-buster MAINTAINER itxiaoma <tlxma@163.com> #buster是基于Debian Linux发行的一个版本,像PHP、Python之类的语言都会使用这个版本的Debian搭建Docker基础镜像。
阅读全文
摘要:面向对象的特性: 封装(Encapsulation):将数据和相关操作(方法)封装在一个类中,对外部隐藏内部实现细节,通过公共接口访问和操作数据。 继承(Inheritance):通过继承机制,子类可以继承基类(父类)的属性和方法,从而实现代码的重用和扩展。 多态(Polymorphism):同一个
阅读全文
摘要:递归 function buildTree($data, $parentId = 0) { $tree = array(); foreach ($data as $item) { if ($item['parent_id'] == $parentId) { $children = buildTree
阅读全文
摘要:1.二者区别只有一个,那就是对包含文件的需求程度,include 就是包含,如果被包含的文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。 2.require 意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误,并且会终止程序的执行。 3.once 的意思是一次,那么 in
阅读全文
摘要:二者共同点 都可以判定一个变量是否为空; 都返回boolean类型,即true或false。 二者区别 empty() 函数用于检查一个变量是否为空。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。 isset() 函数用于检
阅读全文
摘要:1. 容器的本质 服务容器本身就是一个数组,键名就是服务名,值就是服务。 服务可以是一个原始值,也可以是一个对象,可以说是任意数据。 服务名可以是自定义名,也可以是对象的类名,也可以是接口名。 // 服务容器 $container = [ // 原始值 'text' => '这是一个字符串', //
阅读全文
摘要:如果有一个实例化的对象:Object1 $Object2 = $Object1 $Object2 = clone $Object1 有什么区别呢? $Object2 = $Object1 是引用; $Object2 = clone $Object1 是克隆; 引用就是:当改变$Object1对象时,
阅读全文
摘要:Master 进程、Reactor 线程、Worker 进程、Task 进程、Manager 进程的区别与联系 Master 进程 Master 进程是一个多线程进程 Reactor 线程 Reactor 线程是在 Master 进程中创建的线程 负责维护客户端 TCP 连接、处理网络 IO、处理协
阅读全文

浙公网安备 33010602011771号