PHP面试一战到底
上QQ阅读APP看书,第一时间看更新

3.2 预定义变量

3.2.1 概念

PHP内置了一些预定义变量,这些变量通常为超全局变量,代码的任何地方都可以直接使用这些变量。常见的预定义变量如表3-1所示。

表3-1 预定义变量

$_SERVER表示服务器和执行环境信息,是一个包含诸如头信息(header)、服务器(server)信息、客户端(remote)信息、路径(path)以及脚本位置(script locations)等信息的数组,如表3-2所示。

表3-2 $_SERVER信息

3.2.2 面试题:执行脚本的位置

题目描述:如何获得PHP执行脚本的位置。

解答:脚本相关信息主要表示PHP执行脚本的位置和webroot的根目录,下面的例子演示了脚本相关的信息。

(源码文件:ch03/foo/bar/index.php)

echo 'PHP_SELF:'.$_SERVER['PHP_SELF'].PHP_EOL;
echo 'DOCUMENT_ROOT:'.$_SERVER['DOCUMENT_ROOT'].PHP_EOL;
echo 'SCRIPT_FILENAME:'.$_SERVER['SCRIPT_FILENAME'].PHP_EOL;
echo 'SCRIPT_NAME:'.$_SERVER['PHP_SELF'].PHP_EOL;

首先进入ch03目录,然后启动PHP内置服务器:

> cd ch03
> php -S localhost:8080
PHP 5.6.30 Development Server started at Sat Jan 26 11:40:46 2019
Listening on http://localhost:8080
Document root is /Users/david/code/phpbook/ch03
Press Ctrl-C to quit.

在浏览器里输入http://localhost:8080/foo/bar/index.php,得到类似于如下的结果:

PHP_SELF:/foo/bar/index.php
DOCUMENT_ROOT:/Users/david/code/phpbook/ch03
SCRIPT_FILENAME:/Users/david/code/phpbook/ch03/foo/bar/index.php
SCRIPT_NAME:/foo/bar/index.php

3.3.3 面试题:获取当前访问页面的URL

题目描述:如何获取当前访问页面的URL。

解答:一个URL(例如:https://www.google.com/search?q=php)的组成请参考表3-3。

表3-3 URL的组成部分

可以使用如下方式获取当前访问页面的URL。

(源码文件:ch03/foo/bar/url.php)