PHP学习笔记第一篇 基础知识

基础知识

我将php语言学习里面最最基础的部分,需要第一个学的,必须牢牢掌握的,归类到一起。


大纲

  • 1.数据类型
  • 2.变量
  • 3.常量
  • 4.操作符
  • 5.流程控制
  • 6.数组
  • 7.字符串操作
  • 8.正则


    PHP学习笔记第一篇 基础知识_第1张图片
    基础知识大纲

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
两者关系用一张图表示吧

PHP学习笔记第一篇 基础知识_第2张图片
正则的种类.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 ]] )

继续学习
PHP手册>语言参考

我的笔记目录

你可能感兴趣的:(PHP学习笔记第一篇 基础知识)