基础知识
我将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
两者关系用一张图表示吧
正则的种类.png
正则的表示
标识 ‘/正则/’
位置的表示
-
^
匹配字符串开始
$
匹配字符串结尾
\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 ]] )