php之变量

2021-06-07 10:05

阅读:332

什么是变量? —变量就是包括了一个名称和值的“标识符”

1.变量的命名

php中变量必须以 $ 開始。比方 $s , $name, 注意当$出现,后面紧挨着的字符就会识别为一个变量

php

header("content-type:text/html;charset=utf-8"); echo "$是美元";//Notice: Undefined variable: 是美元 echo
; $汉字 = 100;//变量还支撑中文命名 但不好吧!! echo $汉字; echo
; //php中变量区分大写和小写, $a 和 $A代表两个不同变量 $a = 1; $A = 2; echo "a= $a , A = $A";//a =1 ,A = 2 echo
; $c;//定义个变量但不赋值 echo $c; //Notice: Undefined variable: c //变量不能命名不能以数字开头 //$1a=100; $_a = 101;//能够下划线开头命名 echo $_a.
; //变量能够用关键字命名,可是不推荐的!!

!。。

$if = 102; echo $if.
;
  1. 变量名必须以_ 字母开头
  2. 变量名能够包括_ ,字母 。 数字
  3. 变量名能够用关键字和中文命名可是不推荐
  4. 变量名要尽量有意义,达到见名知义

    变量命名的通常写法:

  5. 驼峰法: myName userName

  6. 帕斯卡命名: MyName UserName
  7. 下划线命名: my_name user_name

2.变量的传值方式

$a = 10; //表示声明了一个a的变量,再把10赋值给a;
技术分享

  1. 值传递
"content-type:text/html;charset=utf-8");
$a =10;
$b = $a;//这里就是值传递,把$a的值拷贝了一份,再赋给$b
$b++;
echo "a = $a , b = $b";//a = 10 , b = 11 
unset($a);//unset函数断开变量和数据之间的引用
//Notice: Undefined variable: a 
echo "a = $a , b = $b";//a = , b = 11

技术分享

  1. 引用传递
"content-type:text/html;charset=utf-8");
$a =10;
$b = &$a;//这里就是引用传递,把$a的引用拷贝了一份,再赋给$b
$b++;
echo "a = $a , b = $b";//a = 11 , b = 11

unset($a);//unset函数断开变量和数据之间的引用
//Notice: Undefined variable: a 
echo "a = $a , b = $b";//a = , b = 11  $b的引用还是没断开 $a的引用断开而已

技术分享

3.可变变量

可变变量就是一个变量的名又是一个变量

$abc = "num";
$num = 99;
//输出99
echo $$abc; //$$abc的变量名$abc又是一个变量

也支持2个以上的$嵌套,比方:

$hello = ‘abc‘;
$abc = ‘def‘;
$def = "variable";
echo $$$hello;//variable

4.提前定义变量

提前定义变量又叫超全局变量,包括:

$_GET , $_POST ,$_SERVER , $_REQUEST ,$GLOBALS , $_SESSION , $_COOKIE….

提前定义变量的作用域为超全局作用域:全局作用域(函数外)+ 局部作用域(函数内)。即函数的内外都能够使用。

提前定义变量都是数组。

$_GET变量

get提交以以下四种形式存在:


html>
 head>
 meta  charset="utf-8">
 title> New Document title>
 head>
 body>
 
 form method="get" action="get.php">
    昵称input type="text" name="name" />br />
    密码input type="password" name="pwd" />br />
    
    篮球input type="checkbox" name="hobby[]" value="lq"/>
    足球input type="checkbox" name="hobby[]" value="zq"/>
    羽毛球input type="checkbox" name="hobby[]" value="ymq"/>br />
    input type="submit" value="提交"/>
 form>
 br />
  
 a href="get.php?

name=tom&pwd=123456"

>点击跳转a> script type="text/javascript"> //get 形式三 //location.href = "http://www.soscw.com/get.php?name=jerry&pwd=321"; //get 形式四 //location.assign("get.php?name=jerry&pwd=567"); script> body> html>

get.php 代码例如以下:

"content-type:text/html;charset=utf-8");

echo 
; var_dump($_GET); echo
‘; $name = $_GET[‘name‘]; $pwd = $_GET[‘pwd‘]; echo "name = $name , pwd = $pwd"; echo
.$_GET[‘hobby‘][0];

技术分享

$_POST变量


html>
 head>
 meta  charset="utf-8">
 title> New Document title>
 head>
 body>
 
 form method="post" action="post.php">
    昵称input type="text" name="name" />br />
    密码input type="password" name="pwd" />br />
    
    篮球input type="checkbox" name="hobby[]" value="lq"/>
    足球input type="checkbox" name="hobby[]" value="zq"/>
    羽毛球input type="checkbox" name="hobby[]" value="ymq"/>br />
    input type="submit" value="提交"/>
 form>


 body>
html>

post.php代码

"content-type:text/html;charset=utf-8");
echo 
; var_dump($_POST); echo
‘; $name = $_POST[‘name‘]; $pwd = $_POST[‘pwd‘]; echo "name = $name , pwd = $pwd"; echo
.$_POST[‘hobby‘][0];

技术分享

$_REQUEST变量

$_REQUEST 数据 = $_POST 数据 + $_GET数据

html>
 head>
 meta  charset="utf-8">
 title> New Document title>
 head>
 body>
 
 form method="post" action="request.php?a=111&b=222">
    昵称input type="text" name="name" />br />
    密码input type="password" name="pwd" />br />
    input type="submit" value="提交"/>
 form>


 body>
html>

request.php代码:

"content-type:text/html;charset=utf-8");

//$_POST获取数据
echo 
; var_dump($_POST); echo
‘; $name = $_POST[‘name‘]; $pwd = $_POST[‘pwd‘]; echo
."name = $name , pwd = $pwd"; //$_GET获取数据 echo
; var_dump($_GET); echo ‘‘; $a = $_GET[‘a‘]; $b = $_GET[‘b‘]; echo
."a = $a , b = $b"; //$_REQUEST获取数据 echo
; var_dump($_REQUEST); echo ‘‘; $name = $_REQUEST[‘name‘]; $pwd = $_REQUEST[‘pwd‘]; $a = $_REQUEST[‘a‘]; $b = $_REQUEST[‘b‘]; echo
."name = $name , pwd = $pwd ,a = $a , b = $b";

技术分享

假如post和get提交的时候有同样的键名会怎样?

html>
 head>
 meta  charset="utf-8">
 title> New Document title>
 head>
 body>
 
 form method="post" action="request.php?

a=111&b=222"

> 昵称input type="text" name="name" />br /> 密码input type="password" name="pwd" />br /> 身高input type="text" name="a" value="key"/>br /> input type="submit" value="提交"/> form> body> html>

request.php:

php header("content-type:text/html;charset=utf-8"); //$_POST获取数据 echo

; var_dump($_POST); echo

‘; $name = $_POST[‘name‘]; $pwd = $_POST[‘pwd‘]; echo
."name = $name , pwd = $pwd"; //$_GET获取数据 echo
; var_dump($_GET); echo ‘‘; $a = $_GET[‘a‘]; $b = $_GET[‘b‘]; echo
."a = $a , b = $b"; //$_REQUEST获取数据 echo
; var_dump($_REQUEST); echo ‘‘; $name = $_REQUEST[‘name‘]; $pwd = $_REQUEST[‘pwd‘]; $a = $_REQUEST[‘a‘]; $b = $_REQUEST[‘b‘]; echo
."name = $name , pwd = $pwd ,a = $a , b = $b";

技术分享
技术分享
技术分享

ps: get 和 post 尽量别有同样的键名

5.$_SERVER变量

$_SERVER变量保存了client和服务端有关的请求。配置信息。



   header("content-type:text/html;charset=utf-8");
   echo("\$_SERVER超全局变量:
"
); echo ‘‘; foreach ($_SERVERas$key => $value) { echo""; echo""; echo""; echo""; } echo
".$key." ".$value."
; ?>

技术分享

6.$GLOBALS变量

$GLOBALS变量保存了我们定义的全局变量

php

header("content-type:text/html;charset=utf-8"); $a = 5; $b =100; $A=100; function foo() { $c = 9; $d =10; echo $GLOBALS[‘a‘].
; echo $GLOBALS[‘A‘].
; $t = &$GLOBALS[‘a‘];//通过$GLOBALS 不仅訪问到了全局变量,并且改动了它的值 $t =188; echo "foo 函数被调用"; } foo(); echo
; var_dump($GLOBALS); ?>

技术分享


评论


亲,登录后才可以留言!