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

基础知识

我将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 ]] )

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

我的笔记目录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容

  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,014评论 4 97
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,059评论 29 417
  • 起床后剪下长长的刘海 从衣橱拿出一件好长时间没有穿过的外套 意外的从口袋发现了以为丢失了的唇膏 随意的涂了涂有些干...
    北商阅读 308评论 0 0
  • 晚间最离奇的事 是一轮月映在榻上 你在梦里起舞 那绕指流动的清辉 是爱你的 无论这是自信还是傲慢 它都能得到饶恕 ...
    古道新竹阅读 118评论 2 1
  • 说到面霜,这款马油膏我用了好多瓶了,绝对是秋冬必不可少的一款面霜。虽然不能跟大牌面霜比,但特别滋润,性价比超级高,...
    逸凡小仙阅读 172评论 0 0