PHP那些琐碎的知识点(整理)
发布时间 - 2026-01-11 01:11:44 点击率:次PHP不会检查单引号 '' 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义序列,并输出变量和转义序列的值。
$a = "123"; print '$a\t'; print '$a';
输出:
$a\t$a
如果是双引号 "" :
$a = "123"; print "$a\t"; print "$a";
输出:
注意:
单引号 '' 可以解释 '\ 和 \\ 这俩转义字符,就这俩!
能使单引号字符尽量使用单引号,单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)。
单引号 '' 和双引号 "" 都可以用来
echo 和 print的区别:
这两都是语句,不是函数;这俩语句的作用都是输出字符串。但是:
echo 可以传入多个参数。而 print 只有一个:
echo "123", "123";//输出123123 print "123", "123";//报错,只可以写一个参数 print "123";
echo 无返回值,而 print 返回值恒为1;
注意:
PHP的八中数据类型,除了数组 array 和没有实现 __toString 魔法函数的对象都可以用echo或者print来输出,并且 boolean 类型的用echo或者print来输出,只会显示1或者不显示。
echo true; //输出1 echo false; //什么都不输出
数字和字符串相加:
PHP会自动完成字符串和数字的转换,这样有时候会带来好处,有时候却很让人苦恼。
echo 1 + "2";//输出3 echo 1 + "a";//输出1
$a = 1 + "A"; 试问变量 $a 的数据类型?
if(is_numeric($a)){
echo "是整型";
}
else{
echo "是其他类型";
}
//最后输出:是整型
随机数生成函数 rand() 和 mt_rand() 的区别:
rand() 和 mt_rand() 用法完全一致,它俩分别有两种用法:
//第一种用法: rand();//产生的随机数为0到getrandmax()之间 mt_rand();//产生的随机数为0到mt_getrandmax()之间 //第二种用法: rand($min, $max);//产生从$min到$max之间的随机数 mt_rand($min, $max);//产生从$min到$max之间的随机数
区别: mt_rand() 是更好地随机数生成器,因为它跟 rand() 相比播下了一个更好地随机数种子;而且性能上比 rand() 快4倍, mt_getrandmax() 所表示的数值范围也更大
BCMath库和GMP库的区别:
BCMath库很容易使用。将数字作为字符串传入函数,它会将数字的和(或差,积等)作为字符串返回。不过,使用BCMath时,对数字所能完成的操作仅限于基本算术运算。
$sum = bcadd("12345678", "87654321");//$sum = "99999999"
GMP函数可以接受整数或者字符串作为参数,不过它们更乐意将数字作为资源来传递,这实际上是指向数字内部表示的指针。所以与BCMath函数不同,BCMath函数返回字符串,而GMP只返回资源。可以将这个资源作为数字传递到任何GMP函数。
$four = gmp_add(2, 2);//可以传入整数
$eight = gmp_add('4', '4');//或字符串
$twelve = gmp_add($four, $eight);//或GMP资源
GMP唯一的缺点是,想要用非GMP函数查看或使用资源时,需要使用 gmp_strval() 或 gmp_intval() 显示地进行转换。
注意
BCMath与PHP捆绑发行,若GMP不与PHP捆绑,需要另外下载和安装。完成高精度数学运算的另一种选择是使用PECL的 big_int 库。
include和require的区别:
include() 、 require() 语句包含并运行指定文件。这两结构在包含文件上完全一样,唯一的区别是对于错误的处理:
•require() 语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错。
•include() 在遇到包含文件不存在的时候,只生成警告,并且脚本会继续。
换句话说,如果你想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。 include() 就不是这样,脚本会继续运行。
include_once和require_once
•include_once() 和 require_once() 一样,应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。这就是 include_once() 和 require_once() 与 include() 和 require() 的主要区别。
•require_once() 、 include_once() 运行效率要比 require() 和 include() 低,因为前两者需要判断寻找引入的文件是否已经存在。`
PHP合并数组 + 和 array_merge() 的区别
同为数组合并,但是还是有差别的:
•键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)
$a = array('a','b');
$b = array('c', 'd');
$c = $a + $b;
var_dump($c);
//输出:
// array (size=2)
// 0 => string 'a' (length=1)
// 1 => string 'b' (length=1)
var_dump(array_merge($a, $b));
//输出:
//array (size=4)
// 0 => string 'a' (length=1)
// 1 => string 'b' (length=1)
// 2 => string 'c' (length=1)
// 3 => string 'd' (length=1)
•键名为字符时,+仍然把最先出现的键名的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值
$a = array('a' => 'a' ,'b' => 'b');
$b = array('a' => 'A', 'b' => 'B');
$c = $a + $b;
var_dump($c);
//输出:
//array (size=2)
//'a' => string 'a' (length=1)
//'b' => string 'b' (length=1)
var_dump(array_merge($a, $b));
//输出:
//array (size=2)
//'a' => string 'A' (length=1)
//'b' => string 'B' (length=1)
字符串常用函数
PHP提供了很多方便的字符串函数,常用的有:
•strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 。返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。若为before_needle为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
•substr( string $string , int $start [, int $length ] ) 。返回字符串 string 由 start 和 length 参数指定的子字符串。
•substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) 。substr_replace() 在字符串 string 的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。
•strrev ( string $string ) 。返回 string 反转后的字符串。
•str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) 。该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。subject为执行替换的数组或者字符串。也就是 haystack。如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。如果count被指定,它的值将被设置为替换发生的次数。
•strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 。返回 needle 在 haystack 中首次出现的数字位置;如果提供了offset参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始。
•ltrim() 、 rtrim() 、 trim() 。这仨都是删除字符串中的空白符。 ltrim() 删除字符串开头的空白字符; rtrim() 删除字符串末端的空白字符; trim() 去除字符串首尾处的空白字符。
以上是小编收集整理的关于PHP那些琐碎的知识点,希望对大家有所帮助!
# php知识点
# cakephp常见知识点汇总
# PHP类相关知识点实例总结
# PHP编程入门的基本语法知识点总结
# PHP高手需要要掌握的知识点
# PHP容易忘记的知识点分享
# PHP中最容易忘记的一些知识点总结
# php中关于mysqli和mysql区别的一些知识点分析
# php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
# php入门学习知识点一 PHP与MYSql连接与查询
# 随机数
# 单引号
# 都是
# 键名
# 双引号
# 是一个
# 遍历
# 返回值
# 不存在
# 这俩
# 报错
# 而把
# 数为
# 内插
# 整型
# 更好地
# 让人
# 是有
# 首次
# 多个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何续费美橙建站之星域名及服务?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Laravel如何实现本地化和多语言支持?(i18n教程)
Android 常见的图片加载框架详细介绍
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
如何快速搭建安全的FTP站点?
如何在万网主机上快速搭建网站?
中国移动官方网站首页入口 中国移动官网网页登录
Laravel如何记录自定义日志?(Log频道配置)
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
如何快速建站并高效导出源代码?
微信推文制作网站有哪些,怎么做微信推文,急?
香港服务器租用费用高吗?如何避免常见误区?
jQuery中的100个技巧汇总
iOS UIView常见属性方法小结
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Laravel怎么实现验证码(Captcha)功能
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
深圳网站制作平台,深圳市做网站好的公司有哪些?
JavaScript中的标签模板是什么_它如何扩展字符串功能
Laravel如何处理CORS跨域请求?(配置示例)
Laravel中的Facade(门面)到底是什么原理
如何快速生成专业多端适配建站电话?
如何在IIS管理器中快速创建并配置网站?
Laravel如何实现多对多模型关联?(Eloquent教程)
如何在建站主机中优化服务器配置?
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
如何在IIS中新建站点并配置端口与物理路径?
在Oracle关闭情况下如何修改spfile的参数
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel如何与Inertia.js和Vue/React构建现代单页应用
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
Laravel怎么判断请求类型_Laravel Request isMethod用法
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何在香港免费服务器上快速搭建网站?
如何在IIS中新建站点并配置端口与IP地址?

