2018-12-17

StudyPHP

记录自己在学习PHP中的点点滴滴.并做上记录,仅供参考!

var_dump补充:

var_dump函数可以有多个值 比如var_dump(a,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新加了<=>运算符:
    <=> 太空船操作符,又称组合比较运算符,结合比较运算符。语法:c =a <=> b; 这句代码的意思是 如果a > b,c 的值为1
    如果a ==b, c 的值为0 如果a < b,c 的值为-1
    在没有太空船运算符的时候,我们只能这样写代码
    c =a > b ? 1 : (a==$b ? 0 : -1 );

  • 引用传值:
    c = &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超级全局变量

  • 常用的几个超级全局变量
    GLOBALS***:包含了全部变量的全局组合数组。变量的名字就是数组的键 ***_SERVER:包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
    _REQUEST***:用于收集HTML表单提交的数据 ***_POST:收集表单中的POST请求的数据
    _GET***:收集表单中的GET请求的数据 ***_FILES:收集表单中关于文件的数据
    _ENV***:存储了一些系统的环境变量 ***_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 新增)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容