只总结纪录本人学习的知识点,想要理解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 将寻找与变量的值同名的函数,并且尝试执行它。可变函数能够用来实现包含回调函数,函数表在内的一些用处。

<?phpclass 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;// 输入 51var_export($fn(5)(10));?>