美文网首页17.11 PHP入门
04 php变量、常量

04 php变量、常量

作者: 海野夏桑 | 来源:发表于2017-12-05 14:47 被阅读21次

1.区分大小写

php变量区分大小写,
php常量也区分大小写,可以设置为不区分,不建议,
系统关键字不区分

2.变量定义

1.php变量不需要声明,创建变量的同时便进行赋值,以$开头

$v = 1;    //创建变量v并且赋值为1

3.变量传值(数值传值、引用传值)

变量的引用传值,和数值传值不一样,是将旧变量和值之间的引用关系,复制一份,赋予新变量

  • 数值传值
    $v1 = 10;
    $v2 =$v1;
    
数值传值.png
  • 引用传值
    $v1 = 10;
    $v1 = &$v1;
    
引用传值.png

4.作用域

有4种变量作用域local、global、static、parameter,所有在函数外部定义的变量为global,所有在函数内部定义的变量为local(仅能在函数内部访问)。

  • 函数内部访问global变量,有2种方法
    <?php
    
    $v1 = 5;
    $x = 10;
    function test(){
        #方法1:使用global关键字,引用全局变量
        global $v1,$x;
        echo $v1;
        echo $x;
        #方法2:所有全局变量都存在于数组$GLOBALS中,用变量名作键可以引用
        echo $GLOBALS['v1'];
    }
    test();
    
    ?>
    
  • static作用域,当一个函数执行完毕,它的所有变量都会变删除,如何你想某局部变量不变删除,那么在创建变量时加上static关键字
      <?php
    
          function test(){
              static $x = 100;
              echo $x;
              $x ++;
          }
          test();    //100
          test();    //101
          test();    //102
          
      ?>
    
  • 参数作用域parameter,暂且按下不表

5.可变变量

所谓可变变量,其实就是:变量名字可以动态变化,以获取不同的值

$a = "xyz";
$xyz = 100;
echo $$a    //100
//从后往前进行运算,因为 $a="xyz",则$$a=$xyz=100;

其用处就是可以:灵活获取名字有规律可循的变量

$v1 = 200;
$v2 = 300;
$v3 = 100;
$v4 = 150;
$v5 = 250;
$sum = 0;
//求以上变量的和
//因为以上变量的名字是有规律的,所以可以这样来求
for($i = 1; $i < 6; $i ++){
      $v = "v" . $i;
      $sum += $$v;
}
echo $sum;    //1000

6.预定义变量,系统自己定义好的,都是数组。具有超全局作用域

1.$_GET

和$_POST类似,收集用户以get方式提交的数据,可以是form表单提交的数据,也可以是:

  • a链接,<a herf='目标文件路径.php?d1=v1&d2=v2' ></a>
    可以获取到d1和d2
  • js语法跳转,其实就和a标签是一样的
    <script>
        location.href='目标文件路径.php?d1=v1&d2=v2'
    </script>
    
  • 同样是js语法跳转,不同的写法而已
    <script>
        location.assign('目标文件路径.php?d1=v1&d2=v2')
    </script>
    
  • php语法跳转
    <?php
    header("location:目标文件路径.php?d1=v1&d2=v2")
    ?>
    

这其实是在学页面跳转方法吧???
(注:用get方法提交的表单数据,其名称和值会显示在地址栏中,所以:1.密码以及敏感信息,切忌用get方法提交; 2.然而正因为变量可以显示在URL中,所以可以收藏在收藏夹中,在某些情况下,很有用吧; 3.get方法不适合大型变量值,提交的值不能超过2000字符

2.$_POST

代表用户通过表单以post方式(method="post")提交的所有数据。form表单的action属性写数据要提交到的地址,action=""则提交到本页面。

  • 提交到 01.php进行处理
    html页面
    <form action="01.php" method="post">
          <input type="text" name="d1">
          <input type="text" name="d2">
          <input type="submit" value="submit">
    </form>
    
    01.php
    if(!empty($_POST[0])){
      $v1 = $_POST['d1'];
      $v2 = $_POST['d2'];
      print($v1);
      print($v2);
      print_r($_POST);
    }else{
      print "请填写数据!";
    }
    
  • 提交到本页面(简单计算器案例)
      <?php
    
          if(!empty($_POST)){
              $f = $_POST['simple'];
              $d1 = $_POST['d1'];
              $d2 = $_POST['d2'];
              if($f == '+'){
                  $result = $d1 + $d2;
              }else if($f == '-'){
                  $result = $d1 - $d2;
              }else if($f == '*'){
                  $result = $d1 * $d2;
              }else if($f == '/'){
                  $result = $d1 / $d2;
              }
          }else{
              $result = '';
              $f = '';
              $d1 = '';
              $d2 = '';
          }
      ?>
      <form action="" method="post">
          <input type="text" name="d1" value="<?php echo $d1 ?>">
          <select name="simple">
              <option value="+">+</option>
              <option value="-" <?php if($f == '-'){echo 'selected = selected';} ?> >-</option>
              <option value="*" <?php if($f == '*'){echo 'selected = selected';} ?>>*</option>
              <option value="/" <?php if($f == '/'){echo 'selected = selected';} ?>>/</option>
          </select>
          <input type="text" name="d2" value="<?php echo $d2 ?>">
          <input type="submit" value="submit">
          <input type="text" value="<?php echo $result ?>">
      </form>
    
3.$_REQUEST

变量$_GET和变量$_POST合集,同时存储了这两种数据。基本没什么用?

4.$_SERVER

含义:
1.在一次浏览网页(每和服务器发生联系就是一次)的过程中,浏览器端的一些信息或服务器端的一些信息。
2.这些信息,随着不同的页面、不同的服务器、不同的时间,都有所不同。
3.我们只是在程序中拿到这些信息并拿来用,例如:取得用户访问的IP
4.这些信息大约有30个左右,先学几个吧

  • $_SERVER['REMOTE_IP']:获取访问者的IP
  • $_SERVER['SERVER_IP']:获取服务器的IP
  • $_SERVER['SERVER_NAME']:获取服务器名字
  • $_SERVER['SERVER_ROOT']:获取站点真实物理路径
  • $_SERVER['PHP_SELF']:获取当前网页地址,不含域名部分
  • $_SERVER['SCRIPT_FILENAME']:获取当前网页的绝对路径
  • $_SERVER['QUERY_STRING']:获取当前网页地址中的所有get数据

嘛,记不住的话,我们可以把$_SERVER这个数组整一个输出来

<?php
  
  echo "<table border='1'>";
  foreach($_SERVER as $k => $v){
      echo '<tr>';
              echo '<td>' . $k . '</td>';
              echo '<td>' . $v . '</td>';
      echo '</tr>';
  }
  echo "</table>";

?>

可以完整地看到$_SERVER地内容了,以表格形式列出来,很清晰。

5.$GLOBALS

丫的居然不带下划线?这个命名有毒!php设计地出来谈谈人生???
$GLOBALS这个变量作用详见全局作用域。

6.其余的还有$_SESION,$_COOKIE,$_FILES

7.常量

1.定义
define('常量名', '常量值')
const 常量名 = 常量值
常量不可被销毁,只能储存标量类型,字符串、整型、浮点型、布尔型

2.取值(使用)
直接用,常量默认是全局的
constant('常量名') ,常量名是一个字符串

3.预定义常量,嘛好几百个,都不知道都是可以的?
M_PI //圆周率
PHP_OS //php运行所在的系统
PHP_VERSION //php版本
PHP_INT_MAX //php最大整数

4.魔术常量
就是值会变的常量,记几个
_FILE_       :当前网页文件
_DIR_         : 当前网页所在目录
_LINE_\       :当前所在行号

相关文章

  • 04 php变量、常量

    1.区分大小写 php变量区分大小写,php常量也区分大小写,可以设置为不区分,不建议,而系统关键字不区分。 2....

  • php简明手册

    # **PHP简明手册** ## **变量 和 常量** > 1. 变量和常量是PHP中最基本的数据存储单元,它们...

  • PHP 学习总结一

    php 常量的申明: php 全局变量的申明和使用: ...

  • 从0到1学习网络安全 【PHP基础-常量】

    PHP 常量 常量类似变量,但是常量一旦被定义就无法更改或撤销定义。 PHP 常量 常量是一个简单值的标识符。该值...

  • PHP学习线路图

    PHP教程 PHP教程PHP简介PHP环境设置PHP语法概述PHP变量类型PHP常量类型 PHP运算符类型PHP ...

  • PHP学习

    PHP内建函数-php真正的威力 php魔术变量PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是...

  • PHP学习线路图 PHP教程

    PHP学习线路图 PHP教程 PHP教程PHP简介PHP环境设置PHP语法概述PHP变量类型PHP常量类型 PHP...

  • PHP入门系列(三)——变量&常量

    目录变量常量 变量 概念 变量是用于存储信息的"容器",首先请明确,php是一种弱类型语言,PHP 会根据变量的值...

  • 4.PHP入门-语法概述(四)常量

    常量类似变量,但是变量是可以修改其值的,而常量一旦被定义就无法更改或撤销定义。 PHP 常量 常量是单个值的标识符...

  • PHP 常量与变量

    写在前面 常量用于存储不经常改变的数据信息的量,常量的值被定义后,在程序整个执行期间,这个值都有效,并且不可再次赋...

网友评论

    本文标题:04 php变量、常量

    本文链接:https://www.haomeiwen.com/subject/atzabxtx.html