当前位置:首页 > CN2资讯 > 正文内容

PHP特性php8.0新特性

9小时前CN2资讯

特性

  • 1. 变量作用域
  • 2. 超全局变量
    • 2.1. $GLOBALS
  • 3. 常量定义与使用
    • 3.1. 定义常量
    • 3.2. 使用常量
  • 4. 载入其他文件
    • 四种方式的对比:
    • 总结来说:
    • 使用层面:
    • 案例:require
    • 案例:include
  • 5.php常用API
1. 变量作用域

关于变量作用域这一点,PHP 与绝大多数语言也都不同:默认函数内不能访问函数所在作用域的成员。在 JavaScript 中,我们可以在函数作用域中使用父级作用域中的成员:

var top = 'top variable' function foo () { var sub = 'sub variable' console.log(top) // => `top variable` function bar () { console.log(top) // => `top variable` console.log(sub) // => `sub variable` } bar() } foo()

而在 PHP 中:

<?php $top = 'top variable'; function foo () { $sub = 'sub variable'; echo $top; // => 无法拿到 function bar () { echo $top; // => 无法拿到 echo $sub; // => 无法拿到 } bar(); } foo();

如果需要访问全局变量,可以通过 global 关键字声明:

<?php $top = 'top variable'; function foo () { // 声明在当前作用域中获取全局作用域中的 `$top` global $top; $sub = 'sub variable'; echo $top; // => `top variable` function bar () { // 声明在当前作用域中获取全局作用域中的 `$top` 和 `$bar` global $top, $bar; echo $top; // => `top variable` echo $sub; // => 任然无法拿到,因为 `$sub` 不再全局范围,而是在 `foo` 函数中定义 } bar(); } foo(); 2. 超全局变量

http://www.w3school.com.cn/php/php_superglobals.asp

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

这些超全局变量是:

  • $GLOBALS — 引用全局作用域中可用的全部变量
  • $_SERVER — 获取服务端相关信息
  • $_REQUEST — 获取提交参数
  • $_POST — 获取 POST 提交参数
  • $_GET — 获取 GET 提交参数
  • $_FILES — 获取上传文件
  • $_ENV — 操作环境变量
  • $_COOKIE — 操作 Cookie
  • $_SESSION — 操作 Session

本文会介绍一些超全局变量,并会在稍后的博客中讲解其他的超全局变量。

2.1. $GLOBALS

$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。

PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。

下面的例子展示了如何使用超级全局变量 $GLOBALS:

<?php $x = 75; $y = 25; function foo () { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } foo(); echo $z; // => 100 3. 常量定义与使用

常量跟变量一样也是一个数据容器,但是不同的是一旦申明过后就不允许被修改。

3.1. 定义常量

定义常量使用的是内置的 define 函数
第一个参数是常量的名称,建议采用全大写字母命名,多个单词下划线分隔
第二个参数是常量中存放的数据,可以是任意类型
第三个参数是常量名称是否区不分大小写,默认 false 区分大小写

<?php // 定义常量使用的是内置的 `define` 函数 // 第一个参数是常量的名称,建议采用全大写字母命名,多个单词下划线分隔 // 第二个参数是常量中存放的数据,可以是任意类型 // 第三个参数是常量名称是否区不分大小写,默认 false 区分大小写 define('SYSTEM_NAME', '阿里百秀'); define('SYSTEM_ENABLE', true);

3.2. 使用常量

<?php // 直接通过常量的名称访问常量 // 与变量不同的是不需要用 $ echo SYSTEM_NAME; echo SYSTEM_ENABLE; 4. 载入其他文件

通常情况下,当一个文件中的代码过长,自然会想到要拆分到多个文件中。随着开发经验的积累,慢慢的会发现,

除了文件过程应该拆分文件,更应该做的事情是根据用途去划分。

不管你是怎样想的,核心问题都是一样:怎么将代码拆分到多个文件中?

PHP 中引入其他 PHP 文件有四种方式:

  • require
  • require_once
  • include
  • include_once

四种方式的对比:

require require_once include include_once 被载入文件如果不存在是否影响继续运行 Y Y N N 多次调用是否会重复执行被载入的文件 Y N Y n

总结来说:

  • 横向分为两类:require 和 include 两种,区别在于 require 会因为载入文件不存在而停止当前文件执行,而include 不会。

  • 纵向分为两类:xxx 和 xxx_once,区别在于代码中每使用一次 xxx 就执行一次载入的文件,而 xxx_once 只会在第一次使用是执行。

使用层面:

  • include 一般用于载入公共文件,这个文件的存在与否不能影响程序后面的运行

  • require 用于载入不可缺失的文件
    至于是否采用一次载入(once)这种方式取决于被载入的文件

案例:require

require.php

<?php // // 类似 CSS 的 import 导入文件 // require 'config.php'; // // require 可以用于在当前脚本中载入一个别的脚本文件并且执行他 // // require 在每一次调用时都会载入对应的文件 // echo SYSTEM_NAME; // require 'config.php'; // echo SYSTEM_NAME; // require_once ================================== // require_once 如果之前载入过,不再执行(只执行一次) // 由于类似于 定义常量 定义函数 这种操作不能执行多次 // 所以 require_once 更加合适载入这种文件 require_once 'config.php'; echo SYSTEM_NAME; require_once 'config.php'; echo SYSTEM_NAME;

config.php

<?php /** * 定义公共的配置信息 * 1. 便于维护 * 2. 公共使用 */ define('SYSTEM_NAME', 'HELLO'); define('SYSTEM_VERSION', '1.0.0'); define('DB_HOST', '192.168.110.120');

案例:include

aside.php

<aside> 这是侧边栏1111 </aside>

include.php

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- require 特点: 一旦被载入的文件不存在就会报一个致命错误,当前文件不再往下执行 --> <!-- include 特点: 载入文件不存在不会报错误(会有警告,警告不用管),当前文件继续执行 --> <?php include 'aside.php'; ?> <main> 这是主要的区域 </main> </body> </html> 5.php常用API

内容太多,见链接:https://yangyongli.blog.csdn.net/article/details/111559480

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26400.html

    标签: PHP特性PHP
    分享给朋友:

    “PHP特性php8.0新特性” 的相关文章