zoukankan      html  css  js  c++  java
  • php之变量

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

    1.变量的命名

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

    <?

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

    !。。 $if = 102; echo $if.'<br>';

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

      变量命名的通常写法:

    5. 驼峰法: myName userName

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

    2.变量的传值方式

    $a = 10; //表示声明了一个a的变量,再把10赋值给a;
    这里写图片描写叙述

    1. 值传递
    <?php
    header("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. 引用传递
    <?php
    
    header("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提交以以下四种形式存在:

    <!DOCTYPE html>
    <html>
     <head>
     <meta  charset="utf-8">
     <title> New Document </title>
     </head>
     <body>
     <!-- get形式一 -->
     <form method="get" action="get.php">
        昵称<input type="text" name="name" /><br />
        密码<input type="password" name="pwd" /><br />
        <!-- name="hobby[]"  由于每一个选项的name都是一样的。防止覆盖 -->
        篮球<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 />
      <!-- get形式二 -->
     <a href="get.php?

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

    get.php 代码例如以下:

    <?php
    
    header("content-type:text/html;charset=utf-8");
    
    echo '<pre>';
    var_dump($_GET);
    echo '</pre>';
    $name = $_GET['name'];
    $pwd = $_GET['pwd'];
    
    echo "name  = $name , pwd = $pwd";
    
    echo '<br>'.$_GET['hobby'][0];

    这里写图片描写叙述

    $_POST变量

    <!DOCTYPE html>
    <html>
     <head>
     <meta  charset="utf-8">
     <title> New Document </title>
     </head>
     <body>
     <!-- 表单一般都用post方式提交 -->
     <form method="post" action="post.php">
        昵称<input type="text" name="name" /><br />
        密码<input type="password" name="pwd" /><br />
        <!-- name="hobby[]"  由于每一个选项的name都是一样的,防止覆盖 -->
        篮球<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代码

    <?php
    
    header("content-type:text/html;charset=utf-8");
    echo '<pre>';
    var_dump($_POST);
    echo '</pre>';
    $name = $_POST['name'];
    $pwd = $_POST['pwd'];
    
    echo "name  = $name , pwd = $pwd";
    
    echo '<br>'.$_POST['hobby'][0];

    这里写图片描写叙述

    $_REQUEST变量

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

    <html>
     <head>
     <meta  charset="utf-8">
     <title> New Document </title>
     </head>
     <body>
     <!-- 表单採用post 和get 方式 一起提交 -->
     <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代码:

    <?php
    
    header("content-type:text/html;charset=utf-8");
    
    //$_POST获取数据
    echo '<pre>';
    var_dump($_POST);
    echo '</pre>';
    $name = $_POST['name'];
    $pwd = $_POST['pwd'];
    
    echo '<br>'."name  = $name , pwd = $pwd";
    
    //$_GET获取数据
    echo '<pre>';
    var_dump($_GET);
    echo '</pre>';
    $a = $_GET['a'];
    $b = $_GET['b'];
    
    echo '<br>'."a  = $a , b = $b";
    
    //$_REQUEST获取数据
    echo '<pre>';
    var_dump($_REQUEST);
    echo '</pre>';
    $name = $_REQUEST['name'];
    $pwd = $_REQUEST['pwd'];
    
    $a = $_REQUEST['a'];
    $b = $_REQUEST['b'];
    
    echo '<br>'."name  = $name , pwd = $pwd ,a  = $a , b = $b";

    这里写图片描写叙述

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

    <html>
     <head>
     <meta  charset="utf-8">
     <title> New Document </title>
     </head>
     <body>
     <!-- 表单採用post 和get 方式 一起提交 -->
     <form method="post" action="request.php?

    a=111&b=222"> 昵称<input type="text" name="name" /><br /> 密码<input type="password" name="pwd" /><br /> <!-- post 这里也有个 name="a" --> 身高<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 '<pre>'; var_dump($_POST); echo '</pre>'; $name = $_POST['name']; $pwd = $_POST['pwd']; echo '<br>'."name = $name , pwd = $pwd"; //$_GET获取数据 echo '<pre>'; var_dump($_GET); echo '</pre>'; $a = $_GET['a']; $b = $_GET['b']; echo '<br>'."a = $a , b = $b"; //$_REQUEST获取数据 echo '<pre>'; var_dump($_REQUEST); echo '</pre>'; $name = $_REQUEST['name']; $pwd = $_REQUEST['pwd']; $a = $_REQUEST['a']; $b = $_REQUEST['b']; echo '<br>'."name = $name , pwd = $pwd ,a = $a , b = $b";

    这里写图片描写叙述
    这里写图片描写叙述
    这里写图片描写叙述

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

    5.$_SERVER变量

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

    <?php
    
       header("content-type:text/html;charset=utf-8");
       echo("$_SERVER超全局变量:<br>");
       echo '<table border=1s>';
       foreach ($_SERVER as $key => $value) {
         echo "<tr>";
         echo "<td>".$key."</td>";
         echo "<td>".$value."</td>";
         echo "</tr>";
       }
       echo '</table >';
    
    ?>

    这里写图片描写叙述

    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'].'<br>'; echo $GLOBALS['A'].'<br>'; $t = &$GLOBALS['a'];//通过$GLOBALS 不仅訪问到了全局变量,并且改动了它的值 $t =188; echo "foo 函数被调用"; } foo(); echo '<pre>'; var_dump($GLOBALS); ?>

    这里写图片描写叙述

  • 相关阅读:
    PKG_CONFIG_PATH 、LD_LIBRARY_PATH、PATH三个的作用
    klocwork报错:Error occurred during build: C/C+ defects detection stage failed. Program exited with 139
    修改默认内核启动以及删除Linux多余的内核
    【笔记】ubuntu内核升级到4.19后,docker服务无法启动
    TypeError: unhashable type: 'collections.OrderedDict'
    jquery 如何给新生成的元素绑定 hover事件?
    css中判断IE版本的语句
    (转)JS获取当前对象大小以及屏幕分辨率等
    (转)ie浏览器判断
    (转)javascript中的this
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7326633.html
Copyright © 2011-2022 走看看