PHP特性知识点总结

本文总结了PHP的多个特性,包括类型转换、与=操作、intval函数、preg_match函数、strpos函数、is_numeric函数、in_array函数、trim函数、md5和sha1函数的特性和安全绕过方法,以及路径穿越、运算优先级和函数与数字运算等知识点。还提供了相关参考链接和实例。
摘要由CSDN通过智能技术生成

description: 专门出的关于php的特性比较,后面好像也有java的特性。

大家直接去我的gitbook或者github看就能看到图片,这里就懒得把他弄到csdn上了。
这里放github和gitbook的链接,大家跳转就可以。gitbook链接用国内的网就能访问。
gitbook: http://22kaka.fun
github:https://github.com/kakaandhanhan/cybersecurity_knowledge_book-gitbook.22kaka.fun

🏀 PHP特性知识点总结

(1)类型转换

之前提到过的是字符串转为整型。其实php手册里面提到了各种类型的转换。先把他放在这里。

https://www.php.net/manual/zh/language.types.type-juggling.php#language.types.typecasting

我们按照php手册上的顺序来介绍,只介绍几个比较常用的。

①转化为bool

②转化为整型int

0x01:从bool转换为int

false为0,true为1

0x02:从float转换为int

向下取整(直接舍去小数位)

0x03:从string转换为int

如果 string 是 numeric(数字字符串) 或者前导数字, 则将它解析为相应的 int 值,否则将转换为零(0

数字字符串:
这只是一个字符串,其开头类似于数字字符串,后跟任何字符。但是如果含 e 的字符串转换成 int 类型时会被当做科学计数法处理, 123e456 表示 123 的 456 次方。

0x04:从null转换为int

为0

③转换为float

0x01:从string转换为float

如果 string 是 numeric(数字字符串) 或者前导数字, 则将它解析为相应的 int 值,否则将转换为零(0

0x02:其他类型转换为float

先将其他类型转换为int,再由int转换为float。(而其他类型转换为float,就在上面的②)


(2)=

== 弱类型比较, 仅要求两边变量类型转换后的值相等

=== 强类型比较, 不仅要求两个变量的值相等, 还要求变量的类型相同

同理 != 是弱类型比较, 而 !== 是强类型比较


(3)intval()函数绕过

首先我们去php手册了解这是什么东西。

intval()

获取变量的整数值。下面的base是转换的进制,默认是0

intval(mixed $value, int $base = 10): int

intval主要利用有三个。

①特性一:返回值

这个重点在非空的数组会返回1。

这里想提醒一下['']这个不是数组为空,这个数组有一个元素,元素为空元素。要是[]才是空数组

②特性二:base转化的进制

前提是base是0的时候,由value来决定。其他几个情况比较熟悉,0开头是8进制需要好好记忆一下。

③特性三:弱类型比较下的base转换开始和结束

这个是说在弱类型比较的前提下,本来在base=0的情况下,要看value的结果来判断,这个判断是从数字或者正负号开始才做转换,直到遇到非数字,或者字符串的结束符(\0)结束转换。开始我还理解错了。这句话的意思是比如我们要得到带4476的字符串,应该是4476abc这种。不然以abc4476是被转换为0的。

④不影响结果的在开头的元素

空格+(表示正号)


(4)preg_match()函数绕过

preg_match():
执行匹配正则表达式

preg_match(
    string $pattern,
    string $subject,
    array &$matches = null,
    int $flags = 0,
    int $offset = 0
): int|false

①特性一:传递数组

上面显示subject得是字符串,也就是说如果是数组,会返回false。

②特性二:换行符绕过

换行符这个大部分都只有一个,但是其实在做题之类的看到了两个。

1)/m

首先我们需要知道这个/m是什么

手册上太复杂了,所以我直接用自己的理解来理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值