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

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那些琐碎的知识点,希望对大家有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有关军事混合智能的思考

来源:中国指挥与控制学会0引言随着深度学习、强化学习等新一代人工智能技术的发展,其在计算机视觉、语音识别、自然语言处理、生物医疗领域及游戏博弈等方面取得很大的突破,人工智能在军事领域应用也愈加广泛,催生了军事智能的概念…

nginx动静分离配置_Nginx 动静分离与负载均衡的实现

一、前提企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题。问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我…

scala shuffle

val arr (0 to 100).map(_ * 1d) /// 下面这一步只能用to不能用until,scala里面实现返回的两个Range继承路径不同,不能混用 val a_shuffled util.Random.shuffle(0 to arr.size -1).map(arr(_)) 转载于:https://www.cnblogs.com/suanec/p/6043286.html…

计算机、数学、运筹学等领域的32个重要算法

来源: 必达智库奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家&am…

Fibonacci(求前四位数)

FibonacciTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription2007年到来了。经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列 (f[0]0,f[1]1;f[i] f[i-1]f[i-2](i>2))的值全部给背了下来。 接…

fiddler如何设置过滤https_手把手教你如何给网站设置https

我也是小白一枚,最近开了一个博客站点,个人博客除了微信分享功能不能开通外,其他的功能我都要试着做一下,磨练磨练自己。跟一些大佬分享有所不同,我这篇文章是以一个小白的角度来写,这样有一个优势&#xf…

php 解释语言,php是解释型语言吗

PHP是属于解释型语言,还是编译型语言?下面先来看一下计算机语言的发展史:第一代:机器语言,全部都是01010二进制代码,计算机能够直接的识别,运行效率是最高的,但是难编,难…

清华大学施路平:发展人工通用智能最好的时机到了!

来源:学术头条 今年8月,一辆来自清华的无人驾驶自行车登上了Nature的封面。这是中国的人工智能芯片首次登上Nature,在全球引发热议。这辆自行车不仅可以平衡自身,还可以绕过障碍物,甚至可以响应简单的声音命令。自行车…

Debian10降级安装php,如何在Debian 10 Linux上安装PHP

PHP是最常用的服务器端编程语言之一。在本指南中,我们将讨论如何在Debian 10 Buster上安装PHP。我们还将向您展示如何将PHP与Nginx和Apache集成。Debian 10随附PHP 7.3版,最流行的CMS和框架(如WordPress,Magento和Laravel)均支持该版本。先决…

设置线程堆栈大小_哇擦,传说中的堆栈溢出和快速排序

stack overflow堆栈溢出和快速排序这两个概念对开发人员来说并不陌生,但是通知都只是听说过,真正开发过程中却很少会遇到。我也是敲代码好些行后非常有幸撞上了,而且还是两个一起出现的,这其中过程的滋味还是相当酸爽,…

模板引擎的简单原理template

​var templateStr "我的名字叫<%name%>我是一只小狗,今年<%age%>岁。";var data {name:旺财,age:18};/*会利用正则来匹配*///console.log(/<%\s*([^%>]\S)\s*%>/.exec(templateStr));var match /<%\s*([^%>]\S)\s*%>/.exec(templa…

八张图看懂上海人工智能产业发展现状

来源&#xff1a;中商产业研究院据《行动方案》提出&#xff1a;集聚优势创新资源&#xff0c;聚焦开展专项行动&#xff0c;到2021年&#xff0c;全力打响上海人工智能“一流创新生态”标志性品牌。此外&#xff0c;《行动方案》中还提出多项任务&#xff0c;大力推进上海市人…

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender

目的是为了点击应用程序左上角的关闭按钮&#xff0c;应用程序消失。转载于:https://www.cnblogs.com/ITliufei/p/6045992.html

车牌号随机函数 php,模拟生成车牌号的程序.程序运行.生成十个随机的车牌子.......

package demo;import java.util.ArrayList;import java.util.Random;//举例: 京C.85100 / 津K.45H88//* 要求:1.车牌子为京字或津字开头,后面字母为 C E F H J K中随机.//* 2.号码为五位.数字和大写字母随机.(数字为0-9, 字母为A-G)//* 3.定义生成号码的方法…

软件版本号命名规范_软件发布版本介绍

一、 软件版本阶段介绍Alpha版: 此版本表示该软件在此阶段主要是以实现软件功能为主&#xff0c;通常只在软件开发者内部交流&#xff0c;一般而言&#xff0c;该版本软件的Bug较多&#xff0c;需要继续修改。Beta版: 该版本相对于α版已有了很大的改进&#xff0c;消除了严重的…

“情感计算”的蓬勃发展依赖于收集大量的行为和情感数据

Illustration: iStock/IEEE Spectrum来源&#xff1a; IEEE电气电子工程师学会这是一篇guest post。这里表达的观点只是作者的观点&#xff0c;并不代表IEEE Spectrum或IEEE的立场。技术在生理和心理上变得更加亲密&#xff0c;这就产生了对新技术的需求&#xff0c;这些新技术…

Java控制修改手机系统设置,安卓修改大师配置Java运行环境教程 教你快速使用

安卓修改大师是一款专业免费对任何APK安装包进行反编译的软件&#xff0c;但是运行软件之前首先需要配置电脑上的Java运行环境&#xff0c;否则无法运行。下面来说一下如何配置Java环境。类别&#xff1a;编程工具 大小&#xff1a;4.39M 语言&#xff1a;简体中文评分&am…

extJs项目实战

extjs是因为在公司用到一次,也是公司唯一一个extjs的项目,当时拿到这个需求的时候,我有点懵逼,这他妈的什么鬼,参加工作两年不到的纯小白,没办法,这是工作,必须要完成的.硬着头皮做吧,好在最后弄完了,整理一下文档,方便以后学习. /***服务说明模板store*/Ext.define(ProductApp…

取一定范围内随机小数 c_算伪随机概率中C值的快捷方法

目前计算伪随机概率C值的方法&#xff0c;一般是二分法。二分法是个非常讨厌的方法&#xff0c;因为虽然简单却麻烦&#xff0c;想算个稍微精确点的数&#xff0c;需要十分巨大的计算量。如果像高中时那样手动计算&#xff0c;真是要算到眼花。本文给出了一个十分简单快捷的方法…

AI实时特效,魔幻修图,Adobe Photoshop相机拯救PS菜鸟

图片来源&#xff1a;https://twitter.com/beckihagen/status/1191436317005008896/photo/3来源&#xff1a;机器学习研究会订阅号上传一张特效照片需要几步&#xff1f;常规来说需要三步&#xff1a;拍照→修图→发布。为了拯救手残党&#xff0c;Adobe 将 Photoshop 的部分功…