【PHP + 代码审计】数组函数
🍬 博主介绍👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
数组的相关函数
编程思想
递推算法
递归算法
数组的相关函数
1)排序函数:对数组元素进行排序,都是按照ASCII码进行比较,可以进行英文比较
sort():顺序排序(下标重排)
rsort():逆序排序


asort():顺序排序(下标保留)
arsort():逆序排序

ksort():顺序排序:按照键名(下标)
krsort():逆序排序

shuffle():随机打乱数组元素,数组下标会重排

2)指针函数
reset():重置指针,将数组指针回到首位
end():重置指针,将数组指针指导最后一个元素

next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值

注意事项:next和prev会移动指针,有可能导致指针移动到最前或者最后(离开数组),导致数组不能使用,通过next和prev不能回到真确的指针位置。只能通过end或者reset进行指针重置
3)其他函数
count():统计数组中元素的数量
array_push():往数组中加入一个元素(数组后面)
array_pop():从数组中取出一个元素(数组后面)
array_shift():从数组中取出一个元素(数组前面)
array_unshift():从数组中加入一个元素(数组前面)
PHP模拟数据结构:
栈:压栈,先进去后出来(FILO)

编程思想
编程思想:如何利用数学模式,来解决对应的需求问题;然后利用代码实现对应的数据模型(逻辑)。
算法:使用代码实现对应的数学模型,从而解决对应的业务问题。
递推算法
递推算法是一种简单的算法,即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。递推算法分为顺推和逆推两种。
顺推:通过最简单的条件(已知),然后逐步推演结果
逆推:通过结果找到规律,然后推到已知条件
斐波那契数列:1 1 2 3 5 8 13 …,通常需求:请求得指定位置N所对应的值是多少
找规律:
1、 第一个数是1
2、 第二个数也是1
3、 从第三位开始:属于前两个数的和
代码解决思路:
1、 如果数字位置为1和2,结果都是1
2、 从第三个开始,想办法得到前两个的结果,就可以得到
终极解决办法:想办法把要求的位置之前的所有的值都列出来,那么要求的数就可以通过前两个之和计算出来:使用数组存储所有结果即可。
递推算法求斐波那契数列:

<?php
//递推思想(算法)
//已知条件:第一个和第三个数都是1,第三个开始为前两个之和
function my_recursive($des)
{//判断:如果为第一个或者第二个if ($des == 1 || $des == 2) return 1;//开始计算$f[1] = 1;$f[2] = 1; //如果想要第一个或者第二个结果,那么可以直接给出$des = 15;for ($i = 3; $i <= $des; $i++) {$f[$i] = $f[$i - 1] + $f[$i - 2];}//返回最后一个位置的结果return $f[$des];
}echo my_recursive(4);
递归算法
递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。
1、 简化问题:找到最优子问题(不能再小)
2、 函数自己调用自己
斐波那契数列:1 1 2 3 5 8 13 …
需求:求指定位置的数列的值
规律:第一个和第二个为1,从第三个开始为前两个之后
F(N) = F(N-1) + F(N-2);
F(N-1) = F(N-2) + F(N - 3);
…
F(2) = F(1) = 1;
递归思想中:有两个非常重要的点
递归点:发现当前问题可以有解决当期问题的函数,去解决规模比当前小一点的问题来解决
F(N) = F(N - 1) + F(N - 2);
递归出口:当问题解决的时候,已经到达(必须有)最优子问题,不能再次调用函数
如果一个函数递归调用自己而没有递归出口:就是死循环
递归的本质是函数调用函数:一个函数需要开辟一块内存空间,递归会出现同时调用N多个函数(自己):递归的本质是利用空间换时间

<?php
//递归思想
//递归一定有函数
function recursion($n){//递归出口if($n == 1 || $n == 2) return 1;//递归点return recursion($n - 1) + recursion($n - 2);
}//调用
echo recursion(10);
相关文章:
【PHP + 代码审计】数组函数
🍬 博主介绍👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…...
Keepalive与idle监测及性能优化
Keepalive 与 idle监测 Keepalive(保活): Keepalive 是一种机制,通常用于TCP/IP网络。它的目的是确保连接双方都知道对方仍然存在并且连接是活动的。这是通过定期发送控制消息(称为keepalive消息)实现的。如果在预定时…...
DS-红黑树(RBTree)
一.红黑树 1.1 红黑树的起源 当对对AVL树做一些结构修改的操作时候,性能较为低下,比如:插入时要维护其绝对平衡,旋转的次数比较多,更差的是在删除时,有可能一直要让旋转持续到根的位置。 因此1972年Rudolf…...
ubuntu 如何使用阿里云盘
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
sqlite3 交叉编译
#1.下载源码并解压 源码路径如下,下载autoconf版本 SQLite Download Page 解压 tar -zxvf sqlite-autoconf-3450200.tar.gz cd sqlite-autoconf-3450200 mkdir build # 2. 配置源代码 # 假设你已经安装了交叉编译工具链,如gcc-arm-linux-gnueabih…...
【AI生成文章】flutter ChangeNotifierProvider 实用场景举例
内容由Ai 大模型生成,不能完全保障真实 ChangeNotifierProvider 是 Flutter 中一个非常实用的工具,用于在应用程序中管理和传递状态。以下是一些实用的场景举例: 1. 用户信息管理 在应用程序中,用户信息(如用户名、…...
【0274】从shared init file或local init file加载relation cache(2 - 1)
上一篇: 【0273】深入分析 relcache(relation descriptor cache)初始化第一阶段(1) 【0264】深入分析relcache(relation descriptor cache)缓存初始化第2阶段(2) 1. 前言 本文内容是作为《【0264】深入分析relcache(relation descriptor cache)缓存初始化第2阶段…...
蓝桥杯-02-2023蓝桥杯c/c++省赛B组题目
参考 2023 年第十四届蓝桥杯 C/C B组省赛题解 2023蓝桥杯c/c省赛B组题目(最全版): A:日期统计 这题方法应该很多,没有和别人讨论想法。我的解法思路是:先 load 函数生成所有这一年的合法日期,然后枚举所有可以从数据…...
欧拉筛+并查集
集合 - 洛谷 std::vector<int> minp, primes,primes1;void sieve(int n,int p) {minp.assign(n 1, 0);primes.clear();for (int i 2; i < n; i) {if (minp[i] 0) {minp[i] i;primes.push_back(i);}for (auto p : primes) {if (i * p > n) {break;}minp[i * p]…...
《桥接模式(极简c++)》
本文章属于专栏《设计模式(极简c版)》 继续上一篇《原型模式(极简c)》。本章简要说明桥接模式。本文分为模式说明、本质思想、实践建议、代码示例四个部分。 模式说明 方案: 将抽象部分与它的实现部分分离,…...
jconsole的使用
前提 已安装jdk 使用步骤 1、命令行输入jconsole...
JavaScript详细教程
文章目录 前言一、代码位置二、注释三、变量1.字符串类型2.数组3.对象(字典) 四、条件语句五、函数六、DOM模板 前言 JavaScript 是一种脚本编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息࿰…...
Hive自定义GenericUDF函数
Hive自定义GenericUDF函数 当创建自定义函数时,推荐使用 GenericUDF 类而不是 UDF 类,因为 GenericUDF 提供了更灵活的功能和更好的性能。以下是使用 GenericUDF 类创建自定义函数的步骤: 编写Java函数逻辑:编写继承自 GenericUDF…...
伊理威科技:抖音开网店新手刚做选啥品
在数字浪潮中,抖音不仅是展示才艺的舞台,更是创业者的新天地。新手若想在这片热土上开垦网店,选品便是首要课题。选择产品如同种下希望的种子,既要考量土壤肥沃度,也得预测风雨适宜期。 兴趣与专长是选品的罗盘。热爱所…...
【爬虫】专栏文章索引
为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 爬虫 目录: (一)web自动化和接口自动化 (二)实战-爬取Boss直聘信息数据...
【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile
主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.在Linux写自己的第一个程序 1.1 nano指令 1.2 nano指令的使用 1.2.1 介绍 1.2.2 演示 1.2.2.1 创建.c文件 1.2.2.2 nano cod…...
解决VM重新打开后找不到共享文件夹的问题
我的问题是之前按照网上的文档设置了vm的共享文件夹,能成功使用,但是问题是下一次打开之后就找不到了,虚拟机设置里共享文件夹是启用的,文件夹也完成了映射网络驱动器,但是就是找不到共享文件夹 解决方法:…...
uni app 空挡接龙
pc游戏 空挡接龙 还不完整。现在没时间搞了记录在这里,等以后有时间了再继续搞。 <template><view class"page_main"><view class"contentone"><canvas class"canvas_cla" style"z-index: 1;" canva…...
oracle表备份及还原
工作中,经常使用Navicat访问及操作Oracle数据库,备份表非常方便Ctrlc、Ctrlv;最近备份表,发现这种操作有问题;数据表有2条检查,使用Ctrlc、Ctrlv操作,发现新备份的表出现4条检查,再对…...
牛客小白月赛89补题1(ABCD)(偏难)
评价: 高情商:收获很大 ,让自己进一步认清自己。 低情商:题目难,自己太菜了。 今天还有一些其他事,剩下的题明天再补。 我们从a题开始吧: A.签到 我们只要看看其中的max与min是否不符合即可…...
告别虚拟机卡顿:在Windows 11的WSL2里搞定Lichee Nano交叉编译环境
告别虚拟机卡顿:在Windows 11的WSL2里搞定Lichee Nano交叉编译环境 对于嵌入式开发者来说,配置开发环境往往是个令人头疼的问题。传统虚拟机方案虽然能提供完整的Linux体验,但资源占用高、启动慢、与宿主系统交互不便等问题一直困扰着开发者。…...
别再手动点菜单了!用这招让Cadence Virtuoso Schematic效率翻倍(附Net高亮快捷键配置)
电路设计效率革命:Cadence Virtuoso Schematic高阶快捷键配置指南 在集成电路设计的浩瀚宇宙中,Cadence Virtuoso如同设计师手中的光刻机,每一次精准操作都直接影响最终芯片的性能与可靠性。然而,当面对数百个晶体管组成的复杂模…...
适合地产人用的中介房源管理系统
在房产经纪行业,房源管理与客源管理是经纪人日常工作的核心,直接影响业务效率与成交转化。选择一套适配行业需求的中介房源管理系统,能帮助中介团队规范流程、降低运营成本、大幅提升业绩。今天我们以客观视角,详细解析全房源系统…...
美团外卖mtgsig与waimai_sign双层签名逆向解析
1. 这不是“爬虫教程”,而是一份反向工程现场笔记你搜到这篇内容,大概率正卡在某个调试窗口前:抓包看到mtgsig和waimai_sign两个参数像两堵墙,无论怎么改请求头、换UA、清缓存,返回永远是{"code":403,"…...
基于双T振荡器的正弦波LED调光电路设计与实践
1. 项目概述:用双T振荡器实现正弦波LED调光最近在捣鼓一些氛围灯项目,总感觉用单片机PWM做的呼吸灯效果有点“硬”,那种线性的明暗变化看久了难免审美疲劳。于是翻出以前模拟电路的老本行,琢磨着能不能用纯硬件的方式,…...
为什么鸿蒙 App 最终都会走向状态驱动?
子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...
如何快速上手DeepPurpose?5分钟完成你的第一个药物-靶点相互作用预测模型
如何快速上手DeepPurpose?5分钟完成你的第一个药物-靶点相互作用预测模型 【免费下载链接】DeepPurpose A Deep Learning Toolkit for DTI, Drug Property, PPI, DDI, Protein Function Prediction (Bioinformatics) 项目地址: https://gitcode.com/gh_mirrors/de…...
想深耕网络安全行业,这些必备条件缺一不可
网络空间的攻防对抗日益激烈,网络安全已成为企业生存和国家安全的命脉,它负责构筑数字世界的坚固防线,保护核心资产与用户隐私免受侵害。 想要成为一名优秀的网络安全专家,除了敏锐的安全意识和高度的责任感,更需要锤…...
AutoPentest:面向红队的渗透测试决策引擎架构解析
1. 这不是又一个“自动化扫描器”,而是一套能替你做决策的渗透测试工作流引擎AutoPentest这个名字,第一眼容易让人联想到Nmap加个for循环、或者Burp Suite里点几下Intruder——但实际用过的人很快会意识到:它根本不在同一个维度上。我第一次在…...
概率论:常见分布的期望与方差、中心极限定理、切比雪夫不等式
目录 一、0、1分布 二、二项分布 三、泊松分布 四、均匀分布 五、指数分布 六、正态分布 七、中心极限定理及其应用 (1)中心极限定理的定义 (2)使用示例 八、切比雪夫不等式 (1)切比雪夫不…...
