php问题请教?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
<body>
<a href="fr.php?action=123">123</a>
</body>

<?php
class abc{
    function __construct($action)
    {
        if (isset($_GET["action"])){}
        echo $_GET["action"];
    }
}

new abc("fr.php");
?>
</head>
</html>

为什么传入fr.php这个参数后就能够$__GET["action"]
不是很懂这里面的流程。

阅读 1.8k
3 个回答

function __construct($action){}
你这里面传入的$action在方法中是不是没有使用到?
所以说这个参数有和没有都一样。
但是你__construct()构造方法中已经设置了参数,
所以你实例化类就一定要传入参数。
一句后:参数是必传的,但得到的值和你传入的参数是完全没有关系的。

。。。。。。
又是你。。。
看到?action=

clipboard.png

首先发送请求到web服务器,假设是nginx。
然后,nginx会把这个请求链接交给php-fpm的一个cgi解释器,同时nginx会把请求方式,cookie,header,参数等所有http请求的数据都封装成一定的格式给cgi。
而每种语言都有自己的获取这些数据的语法,php的语法就是通过__$GET全局变量来获取get请求的参数数据。详请关注nginx公众号。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题