头图

【PHP入门系列】2-PHP基础语法

jyoz
只总结纪录自己学习的知识点,想要了解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 服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效。

主要记住有以下变量,具体里面的内容可以参考文档: 文档详情地址

常量

可以使用 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也支持

函数

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));

?>
阅读 314

不积跬步无以至千里

1 声望
0 粉丝
0 条评论

不积跬步无以至千里

1 声望
0 粉丝
文章目录
宣传栏