PHP可变变量,预定义变量,综述,$_GET数组
更新:HHH   时间:2023-1-7


可变变量

    所谓可变变量,就是一个变量的名,又是一个变量。

    可变变量的语法是php很特殊的语法--其它语言中少见。


$v1 = "abc";    //这是一个字符串变量,其内容是字符串“abc"

$abc = 10;      //这是一个普通变量,其内容是数字10

echo $$v1;      //此时,就是所谓的”可变变量“


怎么理解可变变量

1,凡是$符号出现,就会有可能理解为是一个变量

2,这里第一个”$“出现了,则php就视图将其解释为一个变量变量名为#v1

3,我们又知道,$v1的值是”abc“

4,那么,第一个”$“符号后面的变量名,自然就是数字10

5,即echo试图输出的是变量$abc,自然就是数字10


预定义变量


综述:

1:预定义变量又叫超全局变量,包括:$_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS, $_COOKIE, $_SESSION....(大约10个)

2:作用域问题

php中,自定义的变量的作用域,分为两种:全局作用域(函数外),局部作用域(函数内)。

但是预定义变量的作用域称为”超全局作用域“:全局作用域+局部作用域的总和(函数内外都可用)。

3:数据类型问题

超全局变量都是数组!


$_GET变量(数组):

get这个词,常常出现在这里:<form action="abc.php" method="get">.....</form>

这叫做“表单以get方式提交数据”

则$_GET这个预定义数组变量,就是指以这种方式提交的所有数据的集合(数组)。

对应来说,也可以以post方式提交数据。

实际上,在网页中,以get方式提交数据有多种形式:


形式一:

<form action="abc.php" method="get">

    project 1: <input type="text name="uName" />

    project 2: <input type="password" name="uPswd" />

    <input type="submit" value="submit" />

</form>

其作用是:用户填写表单数据,并提交后,会将数据发送(提交)给页面abc.php,其实也可以理解为撕开该网页(abc.php),还可以理解为“请求该网页”(abc.php)。


形式二:

<a href="abc.php?uName=test1&uPswd=123" >Here is text...</a>

其作用是:用户点击链接后,会将数据发送(提交)给页面abc.php,其实也可以理解为撕开该网页(abc.php),还可以理解为“请求该网页”(abc.php)。这种请求也是get请求。


形式三:

<script>

    location.href=abc.php?uName=test1&uPswd=123;    //利用location对象的属性href

</script>

其作用是:当该行语句执行的时候(通常是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为撕开该网页(abc.php),还可以理解为“请求该网页”(abc.php)。这种请求也是get请求。


形式四:

script>

    location.assign("abc.php?uName=test1&uPswd=123");    //利用location对象的方法assign();

</script>

其作用是:当该行语句执行的时候(通常是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为撕开该网页(abc.php),还可以理解为“请求该网页”(abc.php)。这种请求也是get请求。


不管哪种形式的get提交过来的数据,获取数据是一样的,

在abc.php网页中

<?php

    $v1 = $_GET['uName']; //单引号也可以用双引号,本质是一个字符串,其实是数组的键名(下标)

    $v2 = $_GET['uPswd'];  //该键名必须跟提交的时候的名字完全一致且区分大小写

?>


案例:

注意:Hobby多选框中的name需要写成数组的形式!

返回web开发教程...