PHP那些琐碎的知识点

使用Termux的日常琐碎 索引一、参考文档:二、琐碎记录:Termux的获得方式:如何换源:安装并启动SSH服务:从PC登录Termux终端架设web环境1、Apache+PHP+MariaDB1.1安装和配置1.2关于如何在Termux下绑定80端口到web服务2、phpmyadmin的安装和配置2.1 Termux下安装phpmyadmin2.2 Phpmyadmin的配置(暂割) 一、参考文档: Part1 官方文档 Termux官网 Termux官网Wiki Termux清华镜像使用帮助 Part2 参考博文 阅读详情

PHP有很多很奇特、很难记的知识点,我做了一下记录:

单引号’’和””的区别:

PHP不会检查单引号''字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号""则不然,php会检查字符串中的变量或者转义序列,并输出变量和转义序列的值。

$a = "123";
print '$a\t';
print '$a';

输出:

$a\t$a

如果是双引号"":

$a = "123";
print "$a\t";
print "$a";    

输出:

123 123

注意:

单引号''可以解释'\和\\这俩转义字符,就这俩!
能使单引号字符尽量使用单引号,单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)。
单引号''和双引号""都可以用来

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()去除字符串首尾处的空白字符。
PYNQ-Z2 开发板从镜像烧录到 Jupyter 交互全流程指南 本文详细介绍了PYNQ-Z2开发板从镜像烧录到Jupyter交互的全流程指南,包括硬件解析、镜像烧录技巧、设备启动与网络配置、Jupyter Notebook深度使用以及实战案例分享。通过具体步骤和实用技巧,帮助开发者快速上手PYNQ-Z2开发板,实现高效的FPGA开发和智能家居控制应用。 阅读详情

相关推荐

Revit二次开发之双事件:空闲事件与DocumentChanged事件

对以下文章所展示的代码进行了修改,当前展示的代码可直接复制使用。 由于本人初学,下列语言为个人理解,如有错误请指正。   《引用1》中: 使用模态对话框,或者尽量保证事件在ExternalCommand的Execute函数或者ExternalApplication的OnStartup函数里面注册。 如果一定要使用非模态对话框,那么请使用ExternalEvent事件的Raise函数,强迫...

一个Revit二次开发的实习生 6147

PHP扩展安装与使用系列教程(28) --- gmp,bcmath,trader - 数学运算函数

gmp,bcmath,trader - 数学运算函数 假设 可自定义 php 安装目录: /root/php/bin/php74 php 超链接目录路径 : /usr/bin 源码目录 : /root/php/packages php.ini 路径 : /root/php/bin/php74/lib/php.ini >> PHP源码编译 进入源码目录 cd /root/php/packages 安装依赖 libgmp cd /root/php/packages wget https://g

murraycai的博客 1532

用Python爬取公众号历史所有文章,看这篇就够了

手把手教你爬取公众号历史所有文章

u010522887的专栏 1万+

攻克高精度运算难题:PHP中BCMath与GMP扩展的底层实现解析

在金融计算、科学研究和大数据处理等场景中,普通整数和浮点数往往无法满足高精度运算需求。PHP作为广泛使用的服务器端脚本语言,通过BCMath(Binary Calculator)和GMP(GNU Multiple Precision)两大扩展提供了专业级的高精度计算能力。本文将深入剖析这两个扩展的底层实现原理,帮助开发者理解其工作机制并正确应用于实际项目。 ## BCMath扩展:二进制算法的P...

gitblog_01058的博客 750

Zemax操作33--5倍激光扩束器

5倍扩束

lzy750750的博客 2933

基于RK3588的YOLOv11目标检测NPU加速系统设计与实现——模型转换(RKNN)、量化与板端部署全流程(含环境搭建与疑难解析)

而RK3588芯片则是一款性能强劲的边缘计算芯片,将YOLOv11部署在RK3588上,可实现本地化的智能检测应用,比如工业质检中的产品缺陷识别、安防领域的异常行为监测等。比如,优化模型的推理速度,可通过调整模型的输入尺寸、使用更高效的推理框架等方式实现;可以使用RK提供的量化工具来完成这一过程,按照工具的使用说明,对ONNX模型进行量化,生成适用于RK3588的模型文件。现在,你已经掌握了从环境搭建到模型部署的全流程,赶快动手实践,让YOLOv11在RK3588上绽放智能光彩,打造属于你的AI应用吧!

m0_71589036的博客 45

PHP 基本知识点介绍

PHP 基本知识点介绍。本篇仅是简单讲一下PHP最基础的语法,其他的语法就不多说了,可以去参考官方文档,或者菜鸟教程,下一篇主要把一些常用的函数整理一下,方便查询。

weixin_43844718的博客 8038

Android14 Qcom 从Framework到Driver带你连接WIFI(一)

前面已经讲完了WIFI打开的流程,那么通过UI这时候是可以选择需要连接的网络进行连接。从这里开始我们看连接的流程。

IAYLBL的博客 696

PHP入门笔记

定义 PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。 全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器" PHP文件 PHP 文件的默认文件扩展名是 “.php” PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码 PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器 作用 PHP 可以生成动态页面内容 PHP...

qq_32206387的博客 621

基于Simulink的六旋翼无人机动力分配仿真建模示例

六旋翼无人机概述特点:高冗余度、增强的负载能力和更好的故障容忍性。关键组件电机与螺旋桨:提供升力和推力。电调(ESC):控制电机转速。IMU(惯性测量单元):包括加速度计和陀螺仪,用于姿态估计。飞控板:处理传感器数据并生成控制信号。应用场景:航拍摄影、农业监测、物流配送等。仿真目标搭建一个简化的六旋翼无人机动力分配模型,涵盖电机驱动、姿态控制及位置控制过程。分析不同条件下的性能指标(如响应时间、稳定性等),并探讨六旋翼无人机的设计优化。

xiaoheshang_123的博客 485

构建栅格地图matlab代码

1 使用MATLAB实现地图栅格化 效果图如下所示 图1 ...

qq_59747472的博客 4518

php琐碎的知识点

php琐碎细节内容 php琐碎细节内容 引用的内容 php学习网站 “&”引用的内容 php中引用的使用 php学习网站 php中文网 php自学手册

liuxinghai123的博客 617

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

php知识点_PHP那些琐碎的知识点(整理)

PHP不会检查单引号 '' 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义序列,并输出变量和转义序列的值。$a = "123";print '$a\t';print '$a';输出:$a\t$a如果是双引号 "" :$a = "123";print "$a\t";print "$a";输出:注意...

weixin_39531594的博客 149

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

php所有知识点,PHP那些琐碎的知识点(整理)

PHP不会检查单引号 '' 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义序列,并输出变量和转义序列的值。$a = "123";print '$a\t';print '$a';输出:$a\t$a如果是双引号 "" :$a = "123";print "$a\t";print "$a";输出:注意...

weixin_33787865的博客 122

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

php教程知识点归纳,PHP教程:PHP那些琐碎的知识点(整理)

《PHP教程:PHP那些琐碎的知识点(整理)》要点:本文介绍了PHP教程:PHP那些琐碎的知识点(整理),希望对您有用。如果有疑问,可以联系我们。PHP实例$a = "123";print '$a\t';print '$a';PHP实例输出:PHP实例$a\t$aPHP实例如果是双引号 "" :PHP实例$a = "123";print "$a\t";print "$a";PHP实例输出:PHP实...

weixin_42519826的博客 147

php琐碎

1.类中的常量,可以用类来引用: class MyClass() { const SUCCESS ="success"; const FAIL ="fail"; } print_r(MyClass::SUCCESS); 静态方法: 你不用实例化就可以使用它,不支持$this变量,因为他们没有绑定到任何的具体的对象; class MyClass() { static f...

a847035977的博客 121

PHP 一些琐碎

命令行运行PHP代码 php -r "echo 1;"

shfeat的作死之路 927

php项目琐碎总结

项目标签php laravel mysql sqlserver一个数据库中可以存在多个表前缀类型,然后可以通过不同的连接去分开调用 PHP5中对象的赋值和传值都是以 引用 的方式 php 程序注释 // 参数类型 var_dump(gettype($parameter)); // 返回值类型 var_dump(gettype($returnData)); php preg_replace funct

sshfl_csdn的专栏 857

php冷门知识,php程序员经常忽略的冷门知识点

有些时候我们习惯了主流的方法,每一步都按部就班的写代码,殊不知,我们可能会遗漏一些好的想法和知识点,接下来我就谈谈那些容易呗忽略的php知识点。1. array_filter函数,这个函数是通过回调函数对数组进行过滤,可以说很强大,并且回调函数为空的时候,可以去除掉数组的中空元素。2. array_map函数,新手程序员经常忽视这个批量修改数组的函数,我们对一些变量批量进行自增的时候,它会非常好用...

weixin_42510271的博客 189

php的各种琐碎

<?php //预定义变量 $_GET, $_POST, $_REQUES, $_SERVER, $GLOBALS $_SERVER['REMOTE_ADDR'], $_SERVER['DOCUMENT_ROOT'] $_SERVER['SERVER_ADDR'], $_SERVER['SERVER_NAME'] $_SERVER['QUERY_STRING'], $_SERVER['P...

LiErDan的博客 353

php 琐碎

1.要看服务器端php页面的编码,一般情况下我们保存utf-8, 服务器要和浏览器编码一致,,服务器是utf-8的,浏览器也要使用utf-8来打开 2.php给浏览器发送文件时,也就是通过header函数发送, header("Content-Type:text/html; charset=utf-8"); 告诉浏览器你要使用什么编码来打开我给你发的文件 3.静态页面,浏览器端

lmw的专栏 226

PHP小知识点

深入理解 PHP 之:Nginx 与 FPM 的工作机制 这篇文章从 Nginx 与 FPM 的工作机制出发,探讨配置背后的原理,让我们真正理解 Nginx 与 PHP 是如何协同工作的。 PHP 那些琐碎的知识点 作者记录的 PHP 的很奇特、很难记的知识点。 使用 RSA 和 AES 加密传输数据 js 到 php(前端非对称加密) ...

weixin_34176694的博客 338
上一篇: MySQL索引与优化
下一篇: SVN命令使用详解
php_zhaop
博客等级 码龄10年 19粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值