04 php变量、常量

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_\       :当前所在行号

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 一、数组 1、数组定义 数组就是一个键值对组成的语言结构,键类似于酒店的房间号,值类似于酒店房间里存储的东西。 $...
    空谷悠阅读 800评论 4 11
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,670评论 0 11
  • 把当前目录作为Root Document只需要这条命令即可:php -S localhost:3300 也可以指定...
    绚烂的时光阅读 723评论 0 1
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,080评论 4 97