PHP---3.PHP的变量和常量

1.PHP变量

变量是用于存储信息的”容器”

1.1 变量的命名规则

  1. 变量必须以$开头,比如$name$不是变量名的一部分,仅仅表示变量名的开始。

  2. 除了$以外,以字母、下划线开头,后面跟的是字母、数字、下划线。

1.2 PHP 是一门弱类型语言

因为PHP是弱类型语言,所以不必向 PHP 声明该变量的数据类型。

PHP 会根据变量的值,自动把变量转换为正确的数据类型。

在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。

1.3 传值和传址

传值

传值,保存值的空间是两个,更改一个空间的值不影响另外的变量;

这里写图片描述

传址

&表示取出变量的地址
传地址,保存值的空间就一个,更改一个变量的值,另一个变量也会变化,因为两个变量指向同一个空间。
这里写图片描述

1.4 销毁变量

通过unset()销毁变量,但是注意unset用来销毁变量名

$a地址指向的值,并没有被销毁掉,任然可以被$b获取,但是如果没有变量去获取地址中的值,那么unset()销毁的变量名指向的地址的值便会由PHP的垃圾回收机制去销毁。垃圾数据就是没有变量引用的数据。

<?php
 $a = 10;
 $b = &$a;
 unset($a);
 echo $a;   //     为空,因为已经获取不到$a了。
 echo $b;  // 10
?>

1.5 超全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。

超全局变量以$_开头,PHP 超级全局变量列表:

$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

超全局变量的数据类型都是数组。

1.5.1 $_GET

$_GET 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"
这里写图片描述

$_GET 也可以收集URL中发送的数据。

<?php
 var_dump ($_GET);
?>

这里写图片描述

1.5.2 $_POST

$_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"

这里写图片描述

1.5.3 $_REQUEST

$_REQUEST:保存的是post和get的数据
这里写图片描述

注意: 通过$_REQUEST保存get和post的值,如果有同名的元素, 默认情况下post的会覆盖get

当然,我们可以在配置文件中进行更改。/etc/php.ini.default(window下是php.ini)。

request order="GP"  //表示先接受get,后接受post,如果想反过来就改为'PG'

1.5 可变变量

将变量名存储到另一个变量中

<?php
  $a = 'this is test';
  $b = 'a';
  echo $$b; // this is test
?>

$b 保存的是a,所以$$b指的就是$a, 也就是this is test

2. 常量

默认是全局变量,可以在整个运行的脚本的任何地方使用。

2.1 自定义常量

当一个数据在脚本执行的周期内不发生变化,可以将这个数据保存在常量中。常量前面没有$。
语法:define(常量名,常量值,是否区分大小写),默认是区分大小写的。

<?php
  define('NAME','好好学习,天天向上');
  echo NAME;   // 好好学习,天天向上
  echo name;   //  name         (常量默认是区分大小写)
?>

更改为不区分大小写:

<?php
  define('NAME','好好学习,天天向上', true);
  echo NAME;   // 好好学习,天天向上
  echo name;   //  好好学习,天天向上
?>

定义常量可以用特殊字符,但是调用的时候必须通过constant关键字调用

<?php
  define('0_0','好好学习,天天向上');
  echo constant('0_0');   // 好好学习,天天向
?>

常量一旦定义,就不能再重新定义,可以在定义常量的时候先通过defined函数来判断常量是否已经定义。

<?php
  define('MSG','好好学习,天天向上');
  if (defined('MSG')) {
    echo '已经定义过了';    // 已经定义过了
  } else {
    define('MSG','好好学习,天天向上'); //如果没有定义的话,那就重新定义
  }
?>

2.2 预定义常量

指的是在PHP中已经定义的常量。
例如:

<?php
  echo PHP_VERSION;   // 7.1.16    PHP的版本
  echo PHP_OS;     //Darwin     运行系统
?>

2.3 PHP 魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量。

不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

<?php
echo __LINE__ ;       //文件中的当前行号。
echo __FILE__ ;       //文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名 
echo __DIR__ ;        //文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
echo __FUNCTION__ ;   //函数名称
echo __CLASS__ ;      // 类的名称
echo __TRAIT__ ;      //Trait 名包括其被声明的作用区域(例如 Foo\Bar)
echo __METHOD__ ;     // 类的方法名
echo __NAMESPACE__ ;  //当前命名空间的名称(区分大小写)
?>

2.4 显示所有常量

<?php
  var_dump(get_defined_constants(true));   //true表示所有的常量按照类分别
?>

这里在提示下,而我们也可以使用const定义常量

<?php
  const NAME = 'hcd';
  echo NAME; // hcd
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值