Blogger Information
Blog 15
fans 0
comment 0
visits 10476
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP-03变量与常量
移动用户-7131521
Original
697 people have browsed it

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__ //当前命名空间的名称(区分大小写)
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post