共计 2866 个字符,预计需要花费 8 分钟才能阅读完成。
只总结纪录本人学习的知识点,想要理解 PHP 自行搜寻就行了。毕竟比拟老的语言了,比拟成熟了材料也比拟多。
反对类型
语法和数据类型根本与风行的语言差异不是特地大,查看详情:PHP 官网文档语言参考
在 PHP 中,反对 10 种原始数据类型。
四种标量类型
- bool(布尔型)
- int(整型)
- float(浮点型,也称作 double)
- string(字符串)
四种复合类型
- array(数组)
- object(对象)
- callable(可调用)
- iterable(可迭代)
最初是两种非凡类型
- resource(资源)
- NULL(无类型)
变量
一般变量
- PHP 中的变量用一个 $ 前面跟变量名来示意。变量名是辨别大小写的。标准参考 PSR-1、PSR-1、PSR-12
- 和其余强类型语言不统一的是一般变量不须要预约义,当然预约义是一个好的习惯。
- 和大部分语言统一,能够是用 & 援用复制
<?php
// 定义变量
$a = 'xxx';
// 输入变量
echo $a;//xxx
// 援用赋值
$b = '123';
$c = &$b;
var_dump($b === $c); // true
?>
零碎预约义变量
PHP 提供了一套附加的预约数组,这些数组变量蕴含了来自 web 服务器(如果可用),运行环境,和用户输出的数据。这些数组十分特地,它们在全局范畴内主动失效。
次要记住有以下变量,具体外面的内容能够参考文档:文档详情地址
- 超全局变量 — 超全局变量是在全副作用域中始终可用的内置变量
- $GLOBALS — 援用全局作用域中可用的全副变量
- $_SERVER — 服务器和执行环境信息
- $_GET — HTTP GET 变量
- $_POST — HTTP POST 变量
- $_FILES — HTTP 文件上传变量
- $_REQUEST — HTTP Request 变量
- $_SESSION — Session 变量
- $_ENV — 环境变量
- $_COOKIE — HTTP Cookies
- $php_errormsg — 前一个错误信息
- $http_response_header — HTTP 响应头
- $argc — 传递给脚本的参数数目
- $argv — 传递给脚本的参数数组
常量
能够应用 const 关键字或 define() 函数两种办法来定义一个常量。
常量和变量有如下不同:
- 常量后面没有美元符号($);
- 常量能够不必理睬变量的作用域而在任何中央定义和拜访;
- 常量一旦定义就不能被从新定义或者勾销定义;
- 常量只能计算标量值或数组。
零碎预约义变量
罕用的有
阐明 | 常量 | |
---|---|---|
PHP 版本 | PHP_VERSION | |
运行 PHP 的操作系统 | PHP_OS | |
以后平台中对于换行符的定义 | PHP_EOL | |
以后 PHP 版本反对的最大整型数字 | PHP_INT_MAX | |
以后 PHP 版本反对的最小整型数字 | PHP_INT_MIN | |
致命的运行时谬误。 | E_ERROR | |
运行时正告 (非致命谬误)。仅给出提示信息 | E_WARNING | |
编译时语法解析谬误 | E_PARSE | |
示意脚本遇到可能会体现为谬误的状况 | E_NOTICE | |
运行时告诉。将来版本中可能无奈失常工作的代码给出正告。 | E_DEPRECATED | |
E_STRICT 除外的所有谬误和正告信息。 | E_ALL | 、 |
真 | TRUE | |
假 | FALSE | |
非凡的 null 值示意一个变量没有值 | NULL |
运算符
运算符是能够通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因此整个构造成为一个表达式)的货色。常见的 +,-,*,/,等和其余语音基本一致。不过要留神优先级问题,优先级最间接的方法是在想要的运算表达式加上括号()
运算符可依照其能承受几个值来分组。
- 一元运算符只能承受一个值,例如 !(逻辑取反运算符)或 ++(递增运算符)。
- 二元运算符可承受两个值,例如相熟的算术运算符 +(加)和 -(减),大多数 PHP 运算符都是这种。
- 最初是惟一的三元运算符 ? :,可承受三个值;通常就简略称之为“三元运算符”(只管称之为条件运算符可能更适合)。
PHP 运算符文档如下:
- 运算符优先级
- 算术运算符
- 赋值运算符
- 位运算符
- 比拟运算符
- 谬误管制运算符
- 执行运算符
- 递增/递加运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 类型运算符
流程管制
这个根本与其余语言无异,php 也反对
- if
- else
- elseif/else if
- 流程管制的代替语法
- while
- do-while
- for
- foreach
- break
- continue
- switch
- match
- declare
- return
- require
- include
- require_once
- include_once
- goto
函数
PHP 函数无处不在,用 function 定义。任何无效的 PHP 代码都有可能呈现在函数外部,甚至包含其它函数和类 定义。
函数的参数
- 按值传递参数(默认)
- 通过援用传递参数
- 默认参数
- 可变长度参数列表,由 … 语法实现。
- 命名参数。
命名参数为 PHP8 新个性。命名参数容许依据参数名而不是参数地位向函数传参。这使得参数的含意自成体系,参数与程序无关,并容许任意跳过默认值。
<?php
// 应用程序传递参数:array_fill(0, 100, 50);
// 应用命名参数:array_fill(start_index: 0, count: 100, value: 50);
?>
函数返回值
- 值通过应用可选的返回语句返回。能够返回包含数组和对象的任意类型。返回语句会立刻停止函数的运行,并且将控制权交回调用该函数的代码行。返回应用 return 函数。如果省略了 return,则返回值为 null。
可变函数
PHP 反对可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数能够用来实现包含回调函数,函数表在内的一些用处。
<?php
class Foo
{function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{echo "This is Bar";}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
?>
匿名函数
匿名函数(Anonymous functions),也叫闭包函数(closures),容许 长期创立一个没有指定名称的函数。
<?php
$greet = function($name)
{printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
箭头函数
箭头函数是 PHP 7.4 的新语法,是一种更简洁的 匿名函数 写法。匿名函数和箭头函数都是 Closure 类的实现。
箭头函数的根本语法为: fn (argument_list) => expr。
<?php
$y = 1;
$fn1 = fn($x) => $x + $y;
// 相当于 using $y by value:
$fn2 = function ($x) use ($y) {return $x + $y;};
var_export($fn1(3));
// 箭头函数主动捕获变量的值,即便在嵌套的状况下
$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// 输入 51
var_export($fn(5)(10));
?>