黑马程序员PHP学习笔记

1.php的替代语法

因为php在html中只是做数据输出,输出通常伴有条件判断和循环操作,   
因此php提供了对应分支结构和循环结构的替代语法:全部对应一个模式

左大括号{使用冒号:替代
有大括号}使用end+对应的起始标记替代
例如:for(){}可以用for(): endfor;代替
   if(){}可以用if(): endif;替代

2.系统函数

  • print():类似于echo,不是函数,返回值1,可以不需要括号
  • print_r():类似于var_dump,但是不会输出数据的类型只会输出值(使用于数组打印比较多)

3.文件包含

有四种形式:
Include:包含文件
Include_once:系统会自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次
Require;与include相同
Require_once:与include_once相同
格式为:include "文件名"或者include (“文件名”)(这个文件要和本php文件在同一路径下)

include和include_once的区别:
include系统会碰到一次,执行一次;如果对同一个文件进行多次加载,那么系统会执行多次
include_once系统碰到多次也只会执行一次

include和require的区别:
include包含的文件即使出错了,也不影响后续代码的执行
require要求较高,如果包含出错,后续代码不在执行

4.魔术常量

魔术常量的值会跟着环境变化,但用户改变不了
DIR: 当前被执行的脚本所在电脑的绝对路径
FILE: 当前被执行的脚本所在电脑的绝对路径,带自己文件的名字
LINE: 当前所属行数
NAMESPACE:当前所属的命名空间
CLASS: 当前所属类
METHOD: 当前所属方法(传回类名称和函数名称)
FUNCTION:当前函数名(仅传回函数名称

5.错误异常

1)错误分类:语法错误(Parse error),运行时错误(runtime error),逻辑错误
2)错误代号(所有看到的错误代码在PHP中都被定义成了系统常量,可以被直接使用)
 1.系统错误
E_PARSE:编译错误,代码不会执行
E_ERROR:fatal error致命错误,导致代码不能继续进行
E_WARNING:警告错误,不会影响代码执行,可能会有其他结果
E_NOTICE: 通知错误,不会影响代码执行
 2.用户错误:用户在使用自定义错误触发时,会使用到底错误代号,系统不会用到
E_USER_ERROR
R_USER_WARNING
W_USER_NOTICE
 3.其他
E_ALL:代表所有错误,在进行错误控制的时候使用比较多,建议在开发过程中使用
3)人为触发错误可以用:trigger_error(“除数不能为0”);如果后面的运行与这个错误无关,则会继续进行,如果有关则报错

6.处理脚本让浏览器按照指定字符集解析的方法

header(‘Content-type:text/html;charset=utf-8’)

7.错误显示设置

要那些错误该显示,以及该如何显示
在PHP中,有两种方式来设置当前脚本的错误处理
1)php的配置文件:全局配置:php.ini文件
  Display_errors():是否显示错误
  Error_reporting():显示什么级别的错误(如果括号没有参数代表获取当前系统错误处理对应的级别)
2)也可以在运行的php脚本中去设置(在脚本中定义的配置项级别比配置文件高)
  Error_reporting():设置对应的错误显示级别
  Ini_set(‘配置文件中的配置项’,‘配置值’):Ini_set(‘error’,E_ALL);Ini_set(‘display_errors’,1)
在生产过程中,一般吧错误保存在日志文件中让程序员修改:需要在php配置文件中或者代码中(ini_set)设置对应的error_log配置项

8.字符串转义符号

':在单引号字符串中显示单引号
":在双引号字符串中显示双引号
\r:代表回车(理论上是回到当前行的首位置)
\n:代表新一行
\t:类似tab键,输出四个空格
$:在php中使用$符号作为变量符号,因此需要特定识别
(如果字符串使用单引号定义,那只能识别’这个转义符,要是使用双引号定义,就只是不能识别’这个转义符)

9.字符串长度问题

1)基本函数strlen():得到字符串的长度(字节为单位),中文在utf-8中站3个字节
2)多字节字符串的长度问题:包含中文的长度
3)多字节字符串扩展模块:mbstring扩展(mb:Multi Bytes)
首先要加载php的mbstring扩展:打开配置文件php.ini, 找到extension=php_mbstring.dll把这行前面的;去掉,然后再重启apche

10.字符串相关函数

1)转换函数
Implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串
Explode(分割字符,目标字符串):将字符串按照某个格式进行分割,变成数组
Str_split(字符串,字符长度):按照指定长度拆分字符串得到数组
2)截取函数
Trim(字符串,[指定字符]):本身默认是用来去除两边的空格(中间不行),但也可以指定要去除的内容,是按照指定的内容循环去除两边有的内容,是按照指定的内容循环去除两边有的内容,知道碰到一个不是目标字符为止
Ltrim():去除左边的
Rtrim():去除右边的
3)截取函数
Substr(字符串,起始位置,[长]):指定位置开始截取字符串,可以截取指定长度(不指定到最后)
Strstr(字符串,匹配字符):从指定位置开始,截取到最后(可以用来去文件后缀名)
4)大小写转换函数
Strtolower():全部小写
Strtoupper():全部大写
Ucfirst():首字母大写
5)查找函数
Strpos():判断字符在目标字符串中出现的位置(首次),返回的是索引号,如果没找到返回false
Strrpos():判断字符在目标字符串中最后出现的位置
6)替换函数
Str_replace(匹配目标,替换的内容,字符串本身):将目标字符串中部分字符进行替换
7)格式化函数
Printf/Spintf(输出字符串有占位符,顺序占位内容):格式化输出数据
8)其他
Str_repeat():重复某个字符串N次
Str_shuffle():随机打乱字符串

11.数组相关函数

1)排序函数(都在原数组上修改的)(都是按照ASCII码进行比较,所以英文也可以比较,看第一个字母的ASCII值)
sort():顺序排序(下标重新排列)
rsort():逆序排序
asort():顺序排序(下标保留)
arsort():逆序排序
ksort():按照键名(下标)顺序排序
krsort():逆序排序
shuffle():随机打乱数组元素,数组下标会重排
2)指针函数
reset():重置指针,将数组指针回到首位
end():重置指针,将数组指针指到最后一个元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
注意:next和prev会移动指针,有可能会导致指针移动到最前或是最后(离开数组),导致数组不能使用,这时通过next和prev不能回到正确的指针位置,只能通过end或reset进行指针重置
current():获取当前指针对应的元素值
key():获取当前指针对应的下标值
3)其他函数
count():统计数组元素个数
array_push():往数组中加入一个元素(数组后面)
array_pop():从数组中取出一个元素(数组后面)
array_shift():从数组中取出一个元素(数组前面)
array_unshift():从数组中加入一个元素(数组前面)
array_reverse():数组元素反过来
in_array():判断一个元素在数组中是否存在
array_keys():获取一个数组的所有下标,返回一个索引数组
array_values():获取一个数组的所有值,返回一个索引数组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值