PHP 基本知识笔记
重点参考:
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 - 遍历数组中的每一个元素并循环代码块
十、函数及常用函数
参考: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() 返回字符串第1个字符的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(): 把数组的内部指针指向第1个元素,并返回这个元素的值
l list(): 用数组中的元素为一组变量赋值
l array_shift(): 删除数组中的第1个元素,并返回被删除元素的值
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
|