StudyPHP
记录自己在学习PHP中的点点滴滴.并做上记录,仅供参考!
var_dump补充:
var_dump函数可以有多个值 比如var_dump(b,......);
echo 和 print 比较:
echo 的速度 比 print快;
php常见数据类型:
integer(整型),float(浮点型),string(字符串),boolean(布尔型),array(数组),object(对象),NULL(空值);
常量说明:
常量定义define(常量名,常量值,是否大小写敏感(true:不敏感,默认true)),常量为全局变量;
字符串常用的函数:
explode('标记','字符串'):将字符串按照标记分割成数组
implode('数组连接间的内容',array):将数组合成字符串
ltrim('需要检测的字符串','指定需要移除的字符')/rtrim()/trim():移除字符串左边/右边/两边的空格
md5('加密字符串',('true'16字符二进制'false'32字符十六进制默认false)):获取字符串的md5值
str_ireplace('要找的值','要换成的值','原始字符串'):替换字符串中的一些字符.大小写不敏感
str_replace('要找的值','要换成的值','原始字符串'):替换字符串中的一些字符.大小写敏感
substr_replace('受众字符串','要插入的字符串','规定从字符串的什么位置开始替换','规定要替换多少个字符'):把字符串的一部分替换为另一个字符串。
<?php
echo substr_replace("Hello world","earth",6);
?>
<?php
echo substr_replace("Hello world","earth",-5);
?>
<?php
echo substr_replace("world","Hello ",0,0);
?>
<?php
$replace = array("1: AAA","2: AAA","3: AAA");
echo implode("<br>",substr_replace($replace,'BBB',3,3));
?>
str_repeat('要重复的字符串','重复的次数'):把字符串重复指定的次数
str_shuffle('需要打乱的字符串'):将字符串随机打乱
str_split('要分割的字符串','每个数组元素的长度'):把字符串分割到数组中
strchr('被搜索的字符串','要搜索的字符串',一个默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。):函数搜索字符串在另一字符串中的第一次出现。区分大小写(是strstr的别名)
strrchr('被搜索的字符串','规定所搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。'):函数查找字符串在另一个字符串中最
后一次出现的位置,并返回从该位置到字符串结尾的所有字符。如果没有找到字符,则返回 FALSE。stripos('被搜索的字符串','要搜索的字符串','规定开始搜索的位置'):返回字符串在另一字符串中第一次出现的位置(大小写不敏感)。
strpos('被搜索的字符串','要搜索的字符串','规定开始搜索的位置'):返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。(大小写敏感)
strrpos('被搜索的字符串','要搜索的字符串','规定开始搜索的位置'):返回字符串在另一字符串中最后一次出现的位置,如果没有找到字符串则返回 FALSE。(大小写敏感)
strripos('被搜索的字符串','要搜索的字符串','规定开始搜索的位置'):返回字符串在另一字符串中最后一次出现的位置,如果没有找到字符串则返回 FALSE。注释: 字符串位置从 0 开始,不是从 1 开始。(大小写不敏感)。
stristr('被搜索的字符串','规定所搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。','一个默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。'):返回字符串的剩余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE(大小写不敏感)。
strstr('被搜索的字符串','规定所搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。','一个默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。'):函数搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,
否则返回 FALSE。(大小写敏感)。strlen('要检查的字符串'):返回字符串长度
strrev('要反转的字符串'):反转字符串。
strtolower('要转换的字符串'):把字符串转换为小写字母。
strtoupper('要转换的字符串'):把字符串转换为大写字母。
strtr('要转换的字符串','规定要改变的字符串','要变成的字符串',array):返回已转换的字符。如果 array 参数包含一个空字符串("")的键名,则返回 FALSE。
<?php
$arr = array("Hello" => "Hi", "world" => "earth");
echo strtr("Hello world",$arr);
?>
substr('受众字符串','从何处开始','要返回的字符串长度.默认是一直到字符串结尾'):返回字符串的提取部分,如果失败则返回 FALSE,或者返回一个
空字符串。ucfirst('受众字符串'):把字符串中的首字符转换为大写。
ucwords('受众字符串'):把字符串中每个单词的首字符转换为大写。
PHP运算符要注意的点:
- PHP7+版本新加运算符intdiv():整除
<?php
var_dump(intdiv(10, 3));
?>
- i++,++i,i--,--i注意点:
<?php
$x=10;
echo ++$x; // 输出11
$y=10;
echo $y++; // 输出10
$z=5;
echo --$z; // 输出4
$i=5;
echo $i--; // 输出5
?>
- 数组运算符:
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>
- 三元运算符:PHP 5.3+ 版本写法:?: 在 PHP7+ 版本多了一个 NULL 合并运算符 ??,实例如下:
<?php
// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 类似的三元运算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
括号的使用:
我们可以通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。PHP7新加了<=>运算符:
<=> 太空船操作符,又称组合比较运算符,结合比较运算符。语法:a <=> a > c 的值为1
如果b, a < c 的值为-1
在没有太空船运算符的时候,我们只能这样写代码
a > a==$b ? 0 : -1 );引用传值:
a;c 是 a 的引用,也就是说 c 和 a 是同一个变量了。& 是引用的意思,php 没有指针的概念。switch判断中切忌不能漏写break
PHP数组常用函数:
array_count_values(array):函数用于统计数组中所有值出现的次数。返回一个关联数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
array_key_exists(key,array):检查指定的键名是否存在于数组中
array_keys(array,value['可以指定数组值返回键名'],strict[可选,true:返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的。false: 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。]):返回数组中所有的键名
array_values(array):返回数组中所有的值(不保留键名).注:被返回的数组将使用数值键,从 0 开始且以 1 递增
array_map(myfunction[自定义函数,或者为null],array1,array2,...):函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有
新的值的数组。array_merge(array1,array2,...):函数用于把一个或多个数组合并为一个数组。注:1.如果您仅仅向 array_merge() 函数输入一个数组,且键名是整数,
则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引;2.如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。array_pop(array):删除数组中的最后一个元素(出栈);返回删除后的新数组.
array_push(array,value1,value2,...):将一个或多个元素插入数组的末尾(入栈);返回新数组的元素个数.注:即使您的数组有字符串键名,您所添加的元素
将是数字键名.array_shift(array):删除数组中的第一个元素,并返回被删除的元素;注:如果键名是数字的,所有元素都将获得新的键名,从0开始,并以1递增
array_unshift(array,value1,value2,...):函数用于向数组插入新元素,新数组的值将被插入到数组的开头.返回新数组的元素个数.数值键名将从0开始,以1递增.
字符串键名将保持不变。array_rand(array,number):number大于1时返回一个包含随机键名的数组,等于1返回改随机键名
array_search(value,arraay,strict[如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素,默认值为false]):
如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。array_slice(array,start[规定取出元素的开始位置.0=第一个元素.如果该值设置为正数,则从前往后开始取.如果该值设置为负数,则从后向前取start绝对值. -2意味着从数组的倒数第二个元素开始.],length[规定被返回数组的长度.如果该值设置为整数,则返回该数量的元素.如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出.如果该值未设置,则返回从start参数设置的位置开始直到数组末端的所有元素],perserve[规定函数是保留键名还是重置键名,true:保留键名;false:默认,
重置键名]):函数返回数组中的选定部分array_splice(array,start[规定取出元素的开始位置.0=第一个元素.如果该值设置为正数,则从前往后开始取.如果该值设置为负数,则从后向前取start绝对值. -2意味着从数组的倒数第二个元素开始.],length[规定被移除的元素个数,也是被返回数组的长度.如果该值设置为正数,则移除该数量的元素.如果该值设置为负数,则移除从start到数组末端倒数length为止中间所有的元素.如果该值未设置,则移除从start参数设置的位置开始直到数组末端的所有元素.],array[规定带有要插入原始数组中
元素的数组.如果只有一个元素,则可以设置为字符串,不需要设置为数组.]):从数组中移除选定的元素,并用新元素取代它.函数也将返回被移除元素的数组.注:不保留替代数组中的键名array_sum(array):返回数组中所有值的和
array_unique(array,sortingtype[SORT_STRING-默认(5.2.10PHP版本).把每一项作为字符串来处理
SORT_REGULAR(5.2.9PHP版本为默认)-把每一项按常规顺序排列(Standard ASCII,不改变类型)。
SORT_NUMERIC-把每一项作为数字来处理。
SORT_LOCALE_STRING-把每一项作为字符串来处理,基于当前区域设置,可通过setlocale()进行更改]):删除数组中重复的值,返回过滤后的数组arsort(array,sortingtype[0 = SORT_REGULAR - 默认。把每一项按常规顺序排列;1 = SORT_NUMERIC - 把每一项作为数字来处理;2 = SORT_STRING - 把每一项作为字符串来处理;3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改;4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序;5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写]):对关联数组按照键值进行降序排序.如果成功则返回 TRUE,如果失败则返回 FALSE。注:保留键值对应关系
asort(array,sortingtype[同arsort]):对关联数组按照键值进行升序排序.如果成功则返回 TRUE,如果失败则返回 FALSE。注:保留键值对应关系
krsort(array,sortingtype[同arsort]):对关联数组按照键名进行降序排序.如果成功则返回 TRUE,如果失败则返回 FALSE。注:保留键值对应关系
ksort(array,sortingtype[同arsort]):对关联数组按照键名进行升序排序.如果成功则返回 TRUE,如果失败则返回 FALSE。注:保留键值对应关系
sort(array):对数组进行升序排列;注:不保留键值对应关系
rsort(array):对数组进行降序排列;注:不保留键值对应关系
compact(value1,value2,...):创建一个包含变量名和它们的值的数组,返回带有所有变量名和它们的值的数组
<?php
$firstname = "Peter";
$lastname = "Griffin";
$age = "41";
$result = compact("firstname", "lastname", "age");
print_r($result);
?>
count(array,mode[规定函数的模式:0-默认.不计算多维数组中的所有元素;1-递归地计算数组中元素的数目计算多维数组中的所有元素]):返回数组中元素的个数
each(array):返回当前元素的键名和键值,并将内部指针向前移动。注:each() 函数在 PHP 7.2.0 中被弃用了
range(low,high,step[规定步进默认1]):创建一个包含指定范围的元素的数组
shuffle(array):把数组中的元素按随机顺序重新排列,如果成功则返回 TRUE,如果失败则返回 FALSE
PHP超级全局变量
- 常用的几个超级全局变量
_SERVER:包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
_POST:收集表单中的POST请求的数据
_FILES:收集表单中关于文件的数据
_COOKIE:收集cookie数据
$_SESSION:收集session数据
PHP循环
- PHP中常用的循环
while:只要指定的条件成立,则循环执行代码块
while (条件)
{
要执行的代码;
}
do...while:首先执行一次代码块,然后在指定的条件成立时重复这个循环
do
{
要执行的代码;
}
while (条件);
for:循环执行代码块指定的次数
for (初始值; 条件; 增量)
{
要执行的代码;
}
foreach:根据数组中每个元素来循环代码块
foreach ($array as $value)
{
要执行代码;
}
PHP魔术常量
- 常见的几个魔术常量:魔术常量它们的值随着它们在代码中的位置改变而改变
LINE:文件中的当前行号
FILE:文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名
DIR:文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
FUNCTION:自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)
CLASS:自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)
TRAIT:自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits
METHOD:返回该方法被定义时的名字(区分大小写)
NAMESPACE:当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)