基础知识
我将php语言学习里面最最基础的部分,需要第一个学的,必须牢牢掌握的,归类到一起。
大纲
- 1.数据类型
- 2.变量
- 3.常量
- 4.操作符
- 5.流程控制
- 6.数组
- 7.字符串操作
-
8.正则
1.数据类型
php的数据类型有8种
类型 | 备注 | |
---|---|---|
1 | 整型 integer | 在32位系统范围±20亿 |
2 | 浮点型 float | 在32位系统范围1.7E-308~1.7E+308 不要用浮点数比较大小,会出错 |
3 | 布尔型 boolean | |
4 | 字符串 string | 单引号、双引号或者界定符包围的内容 |
5 | 数组 array | |
6 | 对象 object | |
7 | null | 没有被赋值,被unset()重置,被赋值为null/NULL,这三种情况会返回null |
8 | 资源 resource | - |
1.字符串使用中,单双引号区别在于,单引号不会解析变量,双引号会,没有需要解析的变量时应该使用单引号,速度快,节省资源
2.转义
2.变量
- 1.php的变量无需声明,直接赋值使用
- 2.变量名由$打头,字母 数字和下划线组成,不能一数字打头,区分大小写
- 3.php是弱类型语言,变量的类型赋值时根据变量中的值自动确认
- 4.变量类型可以转换,尤其要注意转换成boolean时,0 0.0 "0" 空白字符串"" 只声明没有赋值的数组 这些变量会转化为false,其他为true。
- 5.变量类型判断 php内置了is系列函数和gettype()函数来获取类型
- 6.变量赋值由右往左,所以可以连续赋值
- 7.引用赋值
- 8.变量作用域有
- 1 超全局变量在任何脚本任何地方使用,
- 2 常量,一旦被声明,在函数内外都可以使用
- 3 全局变量,从声明的语句到脚本结束可用,但是在函数内部不可见
- 3 全局变量,在函数内部用global申明的变量,从声明的语句到脚本结束都可用
- 4 局部变量,也叫函数作用域,函数内部的变量只在函数内部可用
- 4 静态变量,函数中声明的静态变量,也只能在内部可见,但是在函数多次执行的过程中能保留该值。
- 9.可变变量,变量的名字可用是变量
- 10.超全局变量
超全局变量的意思就是在系统预定义的而且函数中不用global声明就能用
1 | $GLOBALS | 所有已定义全局数组的集合,变量名就是索引 |
2 | $_SERVER | 服务器环境变量 |
3 | $_GET | get |
4 | $_POST | post |
5 | $_FILES | 上传文件相关 |
6 | $_COOKIE | cookie相关 |
7 | $_SESSION | 会话变量 |
8 | $_REQUEST | get post cookie |
9 | $_ENV | - |
3.常量
- 1.常量用define(string name,mixed value)语法定义,注意不用$开头 一般大写
- 2.常量只能是标量数据(string int float boolean)
- 3.预定义常量,运行PHPinfo()可以看到所有常量
1 | PHP_VERSION |
內建常量,php程序的版本 |
2 | PHP_OS |
內建常量,php程序的版本 |
3 | __FILE__ |
默认常量,php程序文件名 |
4 | __LINE__ |
默认常量,php程序行数 |
5 | __DIR__ |
返回当前文件的绝对路径(不包含文件名),等价于 dirname(__FILE__)
|
6 | __FUNCTION__ |
返回当前函数(或方法)的名称 |
7 | __CLASS__ |
返回当前的类名(包括该类的作用区域或命名空间) |
8 | __TRAIT__ |
返回当前的trait名称(包括该trait的作用区域或命名空间) |
9 | __METHOD__ |
返回当前的方法名(包括类名) |
10 | __NAMESPACE__ |
返回当前文件的命名空间的名称 |
4.操作符
1.算术运算 加减乘除取余
2.字符串运算 . 连接字符串
3.位运算
4.逻辑运算
1 | and && | 与 |
1 | or 竖线 | 或 |
1 | ! | 非 |
1 | xor | 抑或 |
5.比较运算
1 | > | 大于 | |
2 | >= | 大于等于 | |
3 | < | 小于 | |
4 | <= | 小于等于 | |
5 | == | 等于 | 值相等 |
6 | != | 不等于 | |
7 | === | 恒等 | 值和类型都要相等 |
8 | !== | 不恒等 | 类型或值不相等 |
6.错误抑制符 @
7.三元运算 ?:
8.运算符优先级,记不住,用括号
5.流程控制
1 | if |
2 | if else |
3 | if elseif else |
4 | switch case |
5 | while |
6 | do while |
7 | for |
8 | foreach |
break
continue
6.数组
基本概念就不说了,主要是几个函数
序号 | 函数 | 语法 |
---|---|---|
1 | foreach 语法结构提供了遍历数组的简单方式 | |
2 | list — 把数组中的值赋给一组变量,仅能用于数字索引的数组,并假定数字索引从 0 开始。 | array list ( mixed $var1 [, mixed $... ] ) |
3 | count — 计算数组中的单元数目,或对象中的属性个数 | int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) |
4 | array_search — 在数组中搜索给定的值,如果成功则返回首个相应的键名 | mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] ) |
5 | array_unique — 移除数组中重复的值 | array array_unique ( array $array [, int $sort_flags = SORT_STRING ] ) |
6 | array_push — 将一个或多个单元压入数组的末尾(入栈 | int array_push ( array &$array , mixed $value1 [, mixed$... ] ) |
7 | array_pop — 弹出数组最后一个单元(出栈) | mixed array_pop ( array &$array ) |
8 | implode — 将一个一维数组的值转化为字符串 | string implode ( string $glue , array $pieces ) |
9 | explode — 使用一个字符串分割另一个字符串 | array explode ( string $delimiter , string $string [, int$limit ] ) |
7.字符串操作
字符串操作也主要是几个函数
序号 | 函数 | 语法 |
---|---|---|
1 | trim— 去除字符串首尾处的空白字符(或者其他字符) | string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] ) |
2 | ltrim/rtrim | |
3 | str_pad — 使用另一个字符串填充字符串为指定长度 | string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] ) 该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果。如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度。 |
4 | strlen — 获取字符串长度 | int strlen ( string $string ) |
5 | substr — 返回字符串的子串 | string substr ( string $string , int $start [, int $length ] ) |
6 | strops— 查找字符串首次出现的位置 | mixed strpos ( string $haystack , mixed $needle [, int$offset = 0 ] ) 返回 needle 在 haystack 中首次出现的数字位置 |
7 | strstr— 查找字符串的首次出现 | string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。 |
8 | str_replace— 子字符串替换 | mixed str_replace ( mixed $search , mixed $replace , mixed$subject [, int &$count ] ) 该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果 |
9 | strcmp二进制安全字符串比较 | int strcmp ( string $str1 , string $str2 ) |
10 | number_format — 以千位分隔符方式格式化一个数字 | string number_format ( float $number [, int $decimals = 0 ] ) |
11 | str_split— 将字符串转换为数组 | array str_split ( string $string [, int $split_length = 1 ] ) string输入字符串。split_length每一段的长度。 |
12 | explode— 使用一个字符串分割另一个字符串 | array explode ( string $delimiter , string $string [, int $limit ] ) |
13 | implode— 将一个一维数组的值转化为字符串 | string implode ( string $glue , array $pieces ) |
14 | addslashes— 使用反斜线引用字符串 | string addslashes ( string $str ) |
15 | stripslashes— 反引用一个引用字符串 | string stripslashes ( string $str ) |
16 | get_magic_quote_gpc — 获取当前 magic_quotes_gpc 的配置选项设置 | bool get_magic_quotes_gpc ( void ) |
17 | htmlspecialchars— 将特殊字符转换为 HTML 实体 | string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT or ENT_HTML401 [, string$encoding = ini_get("default_charset") [, bool $double_encode = true ]]] ) |
8.正则
正则主要要将三块
1.现在正则的种类与关系
2.正则表示方法
3.正则函数
正则的主要有两派,POSIX和pcre
两者关系用一张图表示吧
正则的表示
标识 ‘/正则/’
位置的表示 | - |
^ | 匹配字符串开始 |
$ | 匹配字符串结尾 |
\b | 匹配单词的边界 |
\B | 匹配单词的非边界 |
常用字符簇- | - |
. | 任意字符,不含换行 |
\w | [a-z A-Z 0-9 _] |
\W | \w的补集 |
\s | 空白符 |
\S | 非空白符 |
\d | [0-9] |
\D | 非数字 |
数量表示 | - |
* | 匹配零次或多次 |
? | 匹配零次或一次 |
+ | 匹配一次或多次 |
{n} | 匹配n次 |
{n,} | 匹配至少n次 |
{n,m} | 匹配n-m次 |
其他 | - |
[^] | 补集/排除 |
竖线 | 或者 |
? | 非贪婪模式 |
模式修饰 | - |
i | 忽略大小写 |
m | 多文本 |
s | 单文本 |
x | 忽略空白 |
正则函数
序号 | 函数 | 语法 |
---|---|---|
1 | preg_grep — 返回匹配模式的数组条目 | array preg_grep ( string $pattern , array $input [, int$flags = 0 ] ) |
2 | preg_match_all — 执行一个全局正则表达式匹配 | int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int$offset = 0 ]]] ) |
3 | preg_match — 执行匹配正则表达式 | int preg_match ( string $pattern , string $subject [, array&$matches [, int $flags = 0 [, int $offset = 0 ]]] ) |
4 | preg_quote — 转义正则表达式字符 | string preg_quote ( string $str [, string $delimiter = NULL] ) |
5 | preg_replace — 执行一个正则表达式的搜索和替换 | mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) |
6 | preg_split — 通过一个正则表达式分隔字符串 | array preg_split ( string $pattern , string $subject [, int$limit = -1 [, int $flags = 0 ]] ) |
继续学习
PHP手册>语言参考