紧张参考:
https://www.runoob.com/php/php-intro.html 菜鸟教程
https://www.w3school.com.cn/ W3school

1、php定义
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本措辞。
把稳:php不是拍黄片,不是编程措辞,它是一门弱类型的脚本措辞。
2、php能做什么?
A、PHP 可以天生动态页面内容
B、PHP 可以创建、打开、读取、写入、关闭做事器上的文件
C、PHP 可以网络表单数据
D、PHP 可以发送和吸收 cookies
E、PHP 可以添加、删除、修正您的数据库中的数据
F、PHP 可以限定用户访问您的网站上的一些页面
G、PHP 可以加密数据
3、安装 - 集成环境与编辑器
推举phpstudy + phpstorm
Phpstudy:https://jingyan.baidu.com/article/335530dafae53519ca41c37a.html 百度履历
Phpstorm:https://www.jetbrains.com/ 官网下载
编辑器也有大神喜好用sublime Text 或者 notepad 乃至记事本的。。。
Sublime Text :https://www.sublimetext.com/ sublime 官网
Notepad:https://notepad-plus-plus.org/ notepad 官网
其它的集成环境,例如phpenv。
phpenv:https://www.phpenv.cn/
php内置Web做事器:
参考文档:https://blog.csdn.net/ltx06/article/details/78933441
命令:php -S localhost:8000
在laravel框架中的内置做事器:php artisan serve
把稳:php5.4及以上的内置做事器不应该用于生产环境,但对付本地开拓来说是个极好的工具。它不须要apache或nginx代理就能预览php运用。
4、语法与变量
PHP 脚本在做事器上实行,然后将纯 HTML 结果发送回浏览器。
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束。
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的根本指令:echo 和 print。
把稳:echo - 可以输出一个或多个字符串
print - 只许可输出一个字符串,返回值总为 1
EOF - PHP 定界符 EOF 的浸染便是按照原样,包括换行格式什么的,输出在其内部的东西。且可以识别变量。
变量是用于存储信息的"容器"。
变量规则:
A、变量以 $ 符号开始,后面随着变量的名称
B、变量名必须以字母或者下划线字符开始
C、变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
D、变量名不能包含空格
E、变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP是一门弱类型措辞,因此不必声明变量的数据类型。PHP 会根据变量的值,自动把变量转换为精确的数据类型。在强类型的编程措辞中,我们必须在利用变量前先声明(定义)变量的类型和名称。
PHP变量的浸染域:local (局部);global (全局);static (静态);parameter (参数)
超级全局变量:PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部浸染域中都可用。它也是全局变量的一种。
超级全局变量紧张有:
$GLOBALS
$_SERVER
保存关于报头、路径和脚本位置的信息
$_REQUEST
用于网络 HTML 表单提交的数据。可以理解$_POST和$_GET 是它的子集。
$_POST
被广泛运用于网络表单数据,在HTML form标签的指定该属性:"method="post"。
把稳:默认情形下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行变动)。
$_GET
被广泛运用于网络表单数据,在HTML form标签的指定该属性:"method="get"。所有的变量名和值都会显示在 URL 中。
把稳:HTTP GET 方法不适宜大型的变量值。它的值是不能超过 2000 个字符的。
$_FILES
$_ENV
$_COOKIE
$_SESSION
5、数据类型
基本类型:
String(字符串)
Integer(整型)
有二进制、八进制、十进制、十六进制等几种方法来表示整数,前面可以正号(+)负号(-)
Float(浮点型),也称作double
Float、Double、Real都是浮点型
Boolean(布尔型)
布尔类型只有两个值,常量 TRUE 或 FALSE。两个都不区分大小写。
Array(数组)
PHP里的数组,相称于其它措辞里的数组、列表、字典、凑集、栈、行列步队。
数组有一维数组,二维数组,多维数组。
Object(工具)
有实例化的类都是工具。is_object可以判断一个变量是否是Object 工具,也可以用 (object)来逼迫转成工具。
NULL(空值)
Callable / Callback(可调用)(回调类型)
Resource(资源类型)
资源 resource 是一种分外变量,保存了到外部资源的一个引用,比如打开文件、连接数据库、要求网络等。
伪类型:
mixed(稠浊类型)
mixed 解释一个参数可以接管多种不同的(但不一定是所有的)类型。
number(数字类型)
number 解释一个参数可以是 integer 或者 float
callback(回调类型,又称为 callable)
array|object(数组 | 工具类型)
void (无类型)
PHP 7的新特性: 标量类型与返回值类型声明
PHP类型的比较:
疏松比较:利用两个等号 == 比较,只比较值,不比较类型。
严格比较:用三个等号 === 比较,除了比较值,也比较类型。
6、常量
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿全体脚本是自动全局的。
设置常量利用函数 define(), 首个参数定义常量的名称,第二个参数定义常量的值,可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。
魔术常量:
PHP 向它运行的任何脚本供应了大量的预定义常量。
不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会涌现,或者动态加载后,或者在编译时已经包括进去了。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变:
__LINE__ 文件中确当前行号。
__FILE__ 文件的完全路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
__FUNCTION__自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)
__CLASS__ 自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)
__TRAIT__
__METHOD__ 返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__ 当前命名空间的名称(区分大小写)
Php 7新特性:常量数组 define() 可以代替const 直接定义常量数组。
例如:define(‘sites’,[‘web’ , ’name’ , ‘php’]);
7、运算符
A、算数运算符
B、赋值运算符
C、字符串运算符
D、递增/递减运算符
E、比较运算符
F、逻辑运算符
G、数组运算符
Php 7 新特性:NULL合并运算符
PHP 7 新增加的 NULL 合并运算符(??)是用于实行isset()检测的三元运算的快捷办法。
NULL 合并运算符会判断变量是否存在且值不为NULL,如果是,它就会返回自身的值,否则返回它的第二个操作数。
例如:$site = isset($_GET['site']) ? $_GET['site'] : 'PHP开拓';
上述代码就可以改写为:$site = $_GET['site'] ?? 'PHP开拓';
8、条件语句
if 语句 - 在条件成立时实行代码
if...else 语句 - 在条件成立时实行一块代码,条件不成立时实行另一块代码
if...elseif....else 语句 - 在多少条件之一成立时实行一个代码块
switch 语句 - 在多少条件之一成立时实行一个代码块
9、循环语句
while - 只要指定条件为真,则循环代码块
do...while - 先实行一次代码块,然后只要指定条件为真则重复循环
for - 循环代码块指定次数
foreach - 遍历数组中的每个元素并循环代码块
10、函数及常用函数
参考:https://blog.csdn.net/alashan007/article/details/78216498
数学函数
l abs 求绝对值
l ceil 进一法取整
l floor 舍去法取整
l fmod 浮点数取余
l pow($a, $n) 返回$a的$n次方
l round 浮点数四舍五入
l sqrt 求平方根
l max 求最大值
l min 求最小值
l Rand($min,$max) 随机数
l Mt_rand($min,$max) 更好的随机数
l Pi 获取圆周率的值
字符串操作
l Trim 删除字符串两端的空格或其他预定义字符
l Str_pad($str,$len,$v) 把字符串$str用$v 添补到指定长度$len
l Str_repeat($str,$len) 重复$len次利用指定字符串$str
l Str_split($str) 把字符串分割到数组中
l Strrev() 字符串反转
l Str_shuffle 随机地打乱字符串中的所有字符
l Strtolower 字符串转为小写
l Strtoupper 字符串转为大写
l Ucfirst 字符串首字母大写
l Ucwords 字符串每个单子首字符转为大写
l Chunk_split 将字符串分成小块
l Strtok($str,$token) 切开字符串$str
l Explode()
调用: array explode(str $sep,str $str[,int $limit])
输入: $sep为分割符,$str目标字符串,$limit返回数组最多包含元素数 输出: 字符串被分割后形成的数组
l Implode()
调用: string implode ( string $glue , array $pieces )
$glue默认, 用''则直接相连
l Substr($str, $start, $len) 截取字符串
l Str_replace() 字符串更换操作,区分大小写
调用mix str_replace(mix $search,mix $replace, mix $subject[,int &$num])
输入: $search查找的字符串,$replace更换的字符串,$subject被查找字串, &$num 输出: 返回更换后的结果
l Str_ireplace() 字符串更换操作,不区分大小写
l Substr_count() 统计一个字符串,在另一个字符串中涌现次数
l Substr_replace() 更换字符串中某串为另一个字符串
调用: mixed substr_replace ( mixed $string, string $replacement,int $start [, int $length ] )
l Similar_text($str1, $str2) 返回两字符串相同字符的数量
l Strrchr() 返回一个字符串在另一个字符串中末了一次涌现位置开始到末端的字符串
l Strstr() 返回一个字符串在另一个字符串中开始位置到结束的字符串
l Strtr() 转换字符串中的某些字符
l Strpos() 探求字符串中某字符最先涌现的位置
l Strrpos() 探求某字符串中某字符末了涌现的位置
l Str_word_count() 统计字符串含有的单词数
l Strlen($str) 统计字符串长度
l Md5() 字符串md5编码
l Strcasecmp() 不区分大小写比较两字符串
l Strcmp() 区分大小写比较两字符串
html标签关联
l Htmlentities() 把字符串转为html实体
l Htmlspecialchars() 预定义字符转html编码
l nl2br() \n转义为<br>标签
l Strip_tags() 剥去HTML、XML以及PHP的标签
l Addcslashes() 在指定的字符前添加反斜线转义字符串中字符 -- addslashes
l Stripcslashes() 删除由addcslashes() 添加的反斜线 -- stripslashes
l Chr() 从指定的 ASCII 值返回字符
l Ord() 返回字符串第一个字符的ASCII值
韶光函数
l time(): 返回当前的 Unix 韶光戳
调用: int time ( void ) 输出: 返回自从 Unix 纪元(格林威治韶光 1970 年 1 月 1 日 00:00:00)到当前韶光的秒数
l Mktime() 取得一个日期的 Unix 韶光戳
l checkdate(): 验证一个格里高里日期
l date_default_timezone_set(): 设定用于一个脚本中所有日期韶光函数的默认时区
l getdate(): 取得日期/韶光信息
l strtotime(): 将任何英文文本的日期韶光描述解析为 Unix 韶光戳
l microtime(): 返回当前 Unix 韶光戳和微秒数
其它常用函数
l intval(): 获取变量的整数值
11、数组、常用数组函数及数组排序
l Array() 天生一个数组
l Array_combine($a,$a2) 天生一个数组,用一个数组$a的值 作为键名,另一个数组$a2值作为值
l Range() 创建并返回一个包含指定例模的元素的数组
l Compact() 创建一个由参数所带变量组成的数组
l Array_fill($start_index, $len, $value) 用给定的添补(值天生)数组
l Array_chunk($arr, $num) 把一个数组分割为新的数组块
l Array_merge() 把两个或多个数组合并为一个数组
l Array_slice($arr, $offset, $len) 在数组中根据条件取出一段值并返回。
l Array_diff() 返回两个数组的差集数组
l Array_intersect() 返回两个或多个数组的交集数组
l Array_search($v, $arr) 数组中查找一个值,返回一个键,没有返回返回假
l Array_splice($a1, $offset, $len, $a2) 把数组中一部分删除用其他值替代
l Array_sum() 返回数组中所有值的总和
l In_array($v, $arr) 在数组中搜索给定的值,区分大小写
l Array_key_exists() 判断某个数组中是否存在指定的 key
l key(): 返回数组内部指针当前指向元素的键名
l current(): 返回数组中确当前元素(单元).
l next(): 把指向当前元素的指针移动到下一个元素的位置,并返回当前元素的值
l prev(): 把指向当前元素的指针移动到上一个元素的位置,并返回当前元素的值
l end(): 将数组内部指针指向末了一个元素,并返回该元素的值(如果成功)
l reset(): 把数组的内部指针指向第一个元素,并返回这个元素的值
l list(): 用数组中的元素为一组变量赋值
l array_shift(): 删除数组中的第一个元素,并返回被删除元素的值
l array_unshift(): 在数组开头插入一个或多个元素
l array_push(): 向数组末了压入一个或多个元素
l array_pop(): 取得(删除)数组中的末了一个元素
l shuffle(): 将数组打乱,保留键名
l count(): 打算数组中的单元数目或工具中的属性个数
l array_flip(): 返回一个键值反转后的数组
l array_keys(): 返回数组所有的键,组成一个数组
l array_values(): 返回数组中所有值,组成一个数组
l array_reverse(): 返回一个元素顺序相反的数组 元素顺序相反的一个数组,键名和键值依然匹配
l array_count_values(): 统计数组中所有的值涌现的次数
l array_rand(): 从数组中随机抽取一个或多个元素,把稳是键名!!!
l array_unique(): 删除重复值,返回剩余数组
l sort(): 按升序对给天命组的值排序,不保留键名
l rsort(): 对数组逆向排序,不保留键名
l asort(): 对数组排序,保持索引关系
l arsort(): 对数组逆向排序,保持索引关
l ksort(): 系按键名对数组排序
l krsort(): 将数组按照键逆向排序
l natsort(): 用自然顺序算法对数组中的元素排序
l natcasesort(): 自然排序,不区分大小写
l array_column() 返回输入数组中某个单一列的值。
12、命名空间
参考:https://www.runoob.com/php/php-namespace.html
13、面向工具
参考:https://www.runoob.com/php/php-oop.html