乐趣区

关于php:PHP入门系列2PHP基础语法

只总结纪录本人学习的知识点,想要理解 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));

?>
退出移动版