php://memory伪协议,包装器将数据以文件形式来操作,而底层通过内存保存的形式。
简单来说就是让你能通过操作文件的形式来读写内存,方便不?
---如果你的码农生涯也在迷茫,不如忙起来,因为忙起来什么都忘记了
echo sprintf("使用前内存%.2fMB" . PHP_EOL, (memory_get_usage() / 1024 / 1024));
// 读写形式申请内存协议
$mem = fopen('php://memory', 'r+');
$i = 100;
while ($i--) {
fwrite($mem, str_repeat('李燕茹', 1024));
}
// 使用后占用内存
echo sprintf("使用后内存%.2fMB" . PHP_EOL, (memory_get_usage() / 1024 / 1024));
// 关闭内存协议资源
fclose($mem);
echo sprintf("释放后内存%.2fMB" . PHP_EOL, (memory_get_usage() / 1024 / 1024));执行结果
* 使用前内存0.38MB * 使用后内存1.26MB * 释放后内存0.38MB
(1).创建数据库test ,创建表shop(字段id,total),商品id是1,商品总数10 (2).PHP模拟购买,商品数量大于0才能购买<?php //连接数据库 $con=mysqli_connect("192.168.2.18...
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /** * 订单任务 */ class Order { &n...