博客列表 >PHP-03变量与常量

PHP-03变量与常量

移动用户-7131521
移动用户-7131521原创
2021年09月15日 14:37:55692浏览

1.打印输出

1.echo ‘显示’输出内容到浏览器, 不可以打印数组,会报变量类型的错误,
2.print ‘打印’ 有返回值
俩者区别echo 效率更高
3.var_dump 返回完整信息,可以打印数组,包含数值与数据类型
4.ob_clean(); 清除PHP缓冲区内容,上述内容变量的不会输出
5.print_r( $value,true) ;一般用于线上调试输出日志,不会直接给用户看,配合file_put_contents(aa.txt,$value)使用,参数1 是指定文件 默认为当前级别的路径,参数2 是日志要记录的成员变量

2.变量类型

一共8中,分别是4种标量,2种复合(array,object),2种特殊(resouser,null)
标量类型:

  1. $int =100 //整形
  2. $float = 10.0 //浮点型
  3. $bool = ture // 布尔型
  4. $str = "zhangsan" //字符串

资源类型:

  1. resouser //资源类型 保存到外部资源的一个引用
  2. null //不表示空格 也不表示0,更不表示空字符串,只是单纯的表示没有值 为空, 它是不区分大小写的

PHP是弱类型的语言,变量的类型随着值的变化而变化

3.变量类型转换

变量类型转换有俩种形式分为强制转换和自动转换,

a.强制转换

也可以理解为临时转换的,比如在进行url上分页操作获取数据时,url默认都是全部为字符串的,其中4必须要为整形才可以获取到数据


案例代码如下:

  1. $page= $_GET['page']; //获取超全局变量的值赋给page,如果是post类型请求则用$_POST获取
  2. var_dump($page); //打印输出$page的值为 string类型的

强制转换改动后如下:

  1. $page = (int)$_GET['page'];
  2. var_dump($page); //值为int类型数据

也可以强制转换为浮点型 或者字符串型, ()内添加对应的数据类型即可

b.自动转换

数据类型在某些情况下,自动会变为其他的类型参与运算,比如

  1. $name="张三111";
  2. @$nam = 100+$name; //@是错误抑制符
  3. var_dump($nam);
  4. //将字符串类型的值与整形类型值进行相加,得出后结果为int类型

c.永久转换

以上类型是临时转换,都无法改变变量本身值的类型,而是通过转换将得到的新类型的数据赋值给了新的变量,原变量的类型与值均保持不变的

  1. $page = $_GET['page'];
  2. echo gettype($page); //string
  3. echo gettype((int)$page); //integer

利用系统函数gettype可以获取到数据的的类型, 同时也可以利用系统函数settype()来强制转换当前数据的类型

  1. settype($_GET['page'],'integer'); //参数1 需要转换的数据,参数2转换的类型
  2. echo gettype($_GET['page']); //integer

3.变量释义

变量:代码中要暂存的数据载体,会在内存中分出一块空间,可以复用;
命名:合法标识符

  1. 仅允许字母a-zA-Z,数字,下划线_组成,但是不允许数组开头
  2. 系统预定义的保留字,关键字不能作为变量的命名
  3. 命名要有意义,可以一眼就理解
  4. 变量严格区分大小写,函数不区分大小写
  5. 多个单词组成的话可以用驼峰法命名 aaBbCc

4.变量赋值方式

a.传值赋值

将原来变量的值复制出来一份新的值内存空间地址给另外一个变量,修改俩个变量的值互不影响,记住复制操作~

  1. $a=30;
  2. $b=$a;
  3. echo $b; //30
  4. $a=45;
  5. echo $b; //30

a.引用赋值

地址引用符号& 原理,新的变量指向引用原始变量,互相影响,没有复制操作,共用一个地址 因而引用赋值的方式速度效率会更快一些

  1. $a=30;
  2. $b=&$a;
  3. echo $b; //30
  4. $a=45;
  5. echo $b; //45
  6. unset($a) ; // 仅仅是将$a与$b 相关关联的关系取消,不会被直接释放掉
  7. isset($a) //检测变量是否被定义,若变量值存在并且不为null返回true,否则返回false
  8. empty($a) //检测变量是否为空,为空返回true,否则返回flase ; 特殊情况 0,空字符串,null值 false的值返回结果都为true

5.变量作用域

—局部变量,定义在函数内部,属于局部变量,只能在函数内部访问,另外全局变量在函数内部也是无法访问的,如果访问需要通过关键字global 来在函数内部声明

  1. $a=100;
  2. $b=200;
  3. function demo(){
  4. global $a,$b; //1这里用关键字global声明
  5. echo $a+$b;
  6. }
  7. demo(); //300

6.系统预定义变量

//系统预定义变量
// 超全局变量: 数组,任何地方都可以访问,不受作用域限制
// $GLOBALS: 引用全局作用域中可用的全部变量
// $_SERVER: 服务器和执行环境信息
// $_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
// $_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
// $_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
// $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
// $_SESSION:当前脚本可用 SESSION 变量的数组
// $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
// $_ENV: 通过环境方式传递给当前脚本的变量的数组

7.关于常量

1通常固定不变的值为常量,比如圆周率,不能被重新定义或者释放掉
2常量命名不能加$符号,
3常量命名通常全部字母大写,多个单词之间用下划线链接
4常量,类,接口,函数 是全局成员,变量不是全局成员 所以会受作用域限制
####a常量定义
定义有俩种方法,第一种使用const关键字

  1. const PAI = 3.141592657

第二种定义方法使用define()方法

  1. define('CITY','北京');

常量必须初始化赋值,否则会报错,变量可以不用初始化赋值

8.关于魔术常量

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

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

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

  1. __LINE__ // 文件中的当前行号
  2. __FILE__ //文件的完整路径和文件名
  3. __DIR__ //文件所在的目录
  4. __FUNCTION__ //函数名称
  5. __CLASS__ // 类的名称
  6. __TRAIT__ //Trait 的名字
  7. __METHOD__ //类的方法名
  8. __NAMESPACE__ //当前命名空间的名称(区分大小写)
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议