3_PHP表达式_3_有关变量或常量状态的函数
以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。
1. 数据类型查看函数
PHP为变量或常量提供了查看数据类型的函数,其中包括gettype()和var_dump()函数。
(1)gettype()函数
语法格式:string gettype( mixed var )
函数功能:gettype()函数需要变量名(带$符号)或常量名作为参数,该函数返回变量或常量的数据类型,这些数据类型包括:integer、double、string、array、object、unknown type(未知数据类型)等。
(2)var_dump()函数
语法格式:void var_dump(mixed var)
函数功能:var_dump()函数需要传递一个变量名(带$符号)或常量名作为参数,经常使用var_dump()函数查看变量或常量的值、数据类型等信息。
<?php
define("USERNAME","root");
$score = 67.0;
$age = 20;
$words = array(2,4,6,8,10);
echo gettype(USERNAME); //输出: string
echo "<br/>";
echo gettype($score); //输出:double
echo "<br/>";
echo gettype($age); //输出:integer
echo "<br/>";
echo gettype($words); //输出:array
echo "<br/>";
echo var_dump(USERNAME); //输出:string(4) "root"
echo "<br/>";
echo var_dump($score); //输出:float(67)
echo "<br/>";
echo var_dump($age); //输出:int(20)
echo "<br/>";
echo var_dump($words); //输出:array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(6) [3]=> int(8) [4]=> int(10) }
echo "<br/>";
?>
输出:
string
double
integer
array
string(4) "root"
float(67)
int(20)
array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(6) [3]=> int(8) [4]=> int(10) }
2.检查常量或变量是否定义函数
(1)defined()函数
语法格式:bool defined()函数定义。该函数参数为常量名(注意常量名必须带双引号或单引号),如果常量经过define()函数定义,该函数返回布尔值TRUE,否则返回FALSE。
<?php
define("USERNAME","root");
if(defined("USERNAME")){
echo "USERNAME常量经过了define()函数的定义";
}
echo "<br/>";
echo STUDENT;
?>
输出:
USERNAME常量经过了define()函数的定义 Warning: Use of undefined constant STUDENT - assumed 'STUDENT' (this will throw an Error in a future version of PHP) in D:\phpStorm_Save\first\helloworld.php on line 7
STUDENT
说明:
由于STUDENT常量未经define()函数定义,输出常量STUDENT的值时,先抛出Notice信息,然后将常量名作为常量的值输出。编程人员必须避免使用未经define()函数定义的常量。
(2)isset()函数
语法格式:bool isset(mixed var)
函数功能:检查变量var是否定义。该函数参数为变量名(带$号),如果变量已经定义,该函数返回布尔值TRUE,否则返回FALSE。
<?php
$age = 20;
if(isset($age)){
echo '变量$age已经定义<br/>';
}else{
echo '变量$age没有定义<br/>';
}
if(isset($name)){
echo '变量$name已经定义<br/>';
}else{
echo '变量$name没有定义<br/>';
}
?>
输出:
变量$age已经定义
变量$name没有定义
注意单引号与双引号的区别:
echo语句输出的字符串必须使用一对单引号( ‘ )指定。如果将上面的程序的单引号全都替换成双引号,执行结果将会如下
Notice: Undefined variable: age已经定义 in D:\phpStorm_Save\first\helloworld.php on line 4
变量 Notice: Undefined variable: name没有定义 in D:\phpStorm_Save\first\helloworld.php on line 11
变量
说明:
从执行结果来看:PHP预处理器会把 “$age已经定义” 以及 " $name已经定义 "作为变量名进行解析(PHP支持中文简体变量名,但不建议使用中文简体变量名)。
3.取消变量定义unset()函数
unset()函数语法格式:void unset(mixed var)
函数功能:取消变量var的定义。该函数的参数为变量名(带$符号),函数没有返回值。
<?php
$age1 = 18;
$age2 = &$age1;
$age2 = 20;
echo $age1;
echo "<br/>";
//取消 $age1 的定义
unset($age1);
//由于 $age1 没有定义,该语句将输出notice信息
echo $age1;
echo "<br/>";
echo $age2;
?>
输出:
20 Notice: Undefined variable: age1 in D:\phpStorm_Save\first\helloworld.php on line 8 20
说明:
使用unset()函数,只是断开了变量名与变量的值之间的联系,没有立即销毁变量$age1, 变量 $age1由PHP垃圾回收机制在 “适当” 时刻进行回收。
4.检查变量是否为 “空”
PHP提供了检查变量是否为“空”的两个函数: is_null()函数和empty()函数。
(1)is_null() 函数
语法格式:boolean is_null(mixed var)
函数功能:检查变量var是否为NULL,如果值为NULL则返回TRUE,否则返回FALSE。
函数说明:is_null() 函数用于判断变量是否为NULL时,可以看作isset()函数的反函数。下面3种情况变量的值为NULL。
(1)变量未经定义。
(2)变量的值赋值为NULL。
(3)变量经unset()函数处理后。
<?php
var_dump(is_null($a));
echo "<br/>"; $b = null;
var_dump(is_null($b));
echo"<br/>"; $c = FALSE;
var_dump(is_null($c));
echo "<br/>"; unset($c);
var_dump(is_null($c));
?>
输出:
Notice: Undefined variable: a in D:\phpStorm_Save\first\helloworld.php on line 2
bool(true)
bool(true)
bool(false) Notice: Undefined variable: c in D:\phpStorm_Save\first\helloworld.php on line 14
bool(true)
说明:
$a 与 $b 虽然都为NULL,但由于 $a 未经定义,因此 is_null($a)会抛出Notice信息。$b的值定义为NULL,is_NULL($b)不会抛出Notice信息。
(2)empty()函数
语法格式:boolean empty(mixed var)
函数功能:用于检查变量var是否为“ 空 ” ,该函数参数var为变量名( 带$号 )。如果变量var为空,则empty()函数返回TRUE,否则返回FALSE。
注意:使用empty()函数时,变量为 "空" 的意义为:若变量var的值为空字符串" "、整数0、字符串零“0”、浮点数0.0、NULL、变量未被定义、FALSE或空数组array(),都将视为 “ 空 ”。empty()函数只用于检测变量是否为空,传递其他参数都将造成程序解析错误。
<?php
class Student{
}
$a = 0;
$b = "0";
$c1 = "";
$c2 = " "; //说明:空格字符串“ ”不是“空”
$d = NULL;
$e = FALSE;
$f = array();
$g = new Student();
$h = 0.0;
var_dump(empty($a)); //输出: bool(true)
echo "<br/>";
var_dump(empty($b)); //输出: bool(true)
echo "<br/>";
var_dump(empty($c1)); //输出: bool(true)
echo "<br/>";
var_dump(empty($c2)); //输出: bool(false)
echo "<br/>";
var_dump(empty($d)); //输出: bool(true)
echo "<br/>";
var_dump(empty($e)); //输出: bool(true)
echo "<br/>";
var_dump(empty($f)); //输出: bool(true)
echo "<br/>";
var_dump(empty($f)); //输出: bool(true)
echo "<br/>";
var_dump(empty($g)); //输出: bool(false)
echo "<br/>";
var_dump(empty($h)); //输出: bool(true)
echo "<br/>";
?>
输出:
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
说明:
(1)空字符串 “” 为空,空格字符串 “ ” 不是 “ 空 ”。
(2)“一个变量的值为NULL” 与 “一个变量未被定义”是两个不同的概念。
(3)对于一个未经定义的变量$a, isset($a)的结果是FALSE,且不会抛出Notice信息。is_null($a)与empty($a)的结果虽然都是TRUE,但is_null($a)将抛出Notice信息。
<?php
var_dump(is_null($a)); //抛出$a变量未定义Notice信息,然后输出:true
echo "<br/>";
var_dump(empty($a)); //直接输出:true
echo "<br/>";
var_dump(isset($a)); //直接输出: false
?>
输出:
Notice: Undefined variable: a in D:\phpStorm_Save\first\helloworld.php on line 2
bool(true)
bool(true)
bool(false)
5.数据类型检查函数
PHP为变量或常量提供了检查数据类型的函数,这些函数的共同特征是:需要向这些函数传递一个变量名(带$符号)或常量名(注意常量名必须带双引号或单引号)作为参数,如果检查复合要求,函数返回TRUE,否则返回FALSE。
数据类型检查函数
| 函数名 | 功能 | 语法格式 |
| is_bool | 检测变量或常量是否是布尔型 | bool is_bool(mixed var) |
| is_string | 检测变量或常量是否是字符串 | bool is_string(mixed var) |
|
is_int is_integer is_float |
检测变量或常量是否是整数 | bool is_int(mixed var) |
|
is_double is_float is_real |
检测变量或常量是否是浮点型 | bool is_float(mixed var) |
| is_numeric | 检测变量或常量是否为数字或数字字符串 | bool is_numeric(mixed var) |
| is_scaler | 检测变量或常量是否是标量数据类型 | bool is_scaler(mixed var) |
| is_array | 检测变量是否是数组 | bool is_array(mixed var) |
| is_object | 检测变量是否是一个对象 | bool is_object(mixed var) |
| is_resource | 检测变量是否为资源对象 | bool is_resource(mixed var) |
<?php
class Student{
}
$bool = TRUE;
$string = "你好";
$int = 100;
$float = 100.00;
$numeric = "01234.56789";
$array = array(1,3,5);
$object = new Student();
var_dump(is_bool($bool)); //输出: bool(true)
echo "<br/>";
var_dump(is_string($string)); //输出: bool(true)
echo "<br/>";
var_dump(is_int($int)); //输出: bool(true)
echo "<br/>";
var_dump(is_float($float)); //输出: bool(true)
echo "<br/>";
var_dump(is_numeric($numeric)); //输出:bool(true)
echo "<br/>";
var_dump(is_array($array)); //输出:bool(true)
echo "<br/>";
var_dump(is_object($object)); //输出:bool(true)
echo "<br/>";
?>
输出:
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
3_PHP表达式_3_有关变量或常量状态的函数的更多相关文章
- JS基础-数据类型-运算符和表达式-变量和常量
1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ...
- 3_PHP表达式_1_常量
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP常量分为自定义常量与预定义常量. 1.自定义常量 在使用前必须先定义,PHP的define()函数专门用于定 ...
- C#输入输出及类型转换,变量,常量。
//输出 Console.WriteLine("大哇塞"); 自动回车的. Console.Write("Hello world"); 不带回车的 注意: 1 ...
- PHP中的变量与常量详解
几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...
- [.net 面向对象编程基础] (5) 基础中的基础——变量和常量
[.net面向对象编程基础] (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...
- 泛函编程(34)-泛函变量:处理状态转变-ST Monad
泛函编程的核心模式就是函数组合(compositionality).实现函数组合的必要条件之一就是参与组合的各方程序都必须是纯代码的(pure code).所谓纯代码就是程序中的所有表达式都必须是Re ...
- php标记,变量,常量
php标记 语法:有4种书写格式 1.<?php ... ?> 强烈推荐使用. 如果当前 php的代码段,是整个文档的最后一段,可以省略结束标记?(建议省略) 每句语句都要以分号;结束. ...
- javascript 概述及基础知识点(变量,常量,运算符,数据类型)
JavaScript概述 1.1 什么是JavaScript: javaScript(简称js),是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言.同时也是一种广泛用于客户端Web开发的脚本语 ...
- 【Java学习笔记之三】java中的变量和常量
变量和常量 在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量. 在实际的程序中,可以根据 ...
随机推荐
- ZingChart 隐藏数据点
正常情况下 zingChart 的数据点会显示到图表中,但是如果数据点很多的情况下,可能会让你无法准确的预测趋势,而且也不美观 在 js 配置中添加最多允许显示的数据点,超过这个值将不显示数据点 效果 ...
- Remix 搭建与简单使用,并支持外部访问
Remix 搭建与简单使用,并支持外部访问 转 https://blog.csdn.net/linshenyuan1213/article/details/83444911 remix是基于浏览器的在 ...
- Typescript中的可索引接口 类类型接口
/* 5.typeScript中的接口 可索引接口 类类型接口 */ /* 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用 ...
- Java之Object对象中的wait()和notifyAll()用法
用一个例子来说明Object对象中的wait方法和notifyAll方法的使用. 首先定义一个消息类,用于封装数据,以供读写线程进行操作: /** * 消息 * * @author syj */ pu ...
- Oracle中RAISE异常
转: Oracle中RAISE异常 由三种方式抛出异常 1. 通过PL/SQL运行时引擎 2. 使用RAISE语句 3. 调用RAISE_APPLICATION_ERROR存储过程 当数据库或PL/S ...
- py文件单独调试django ORM的配置
1.新建一个py文件 2.代码环境搭建 import os if __name__ != '__main__': exit() # 加载django项目的配置信息 os.environ.setdefa ...
- QML注意color小写
1.用的时候大小写一样的 如: color="#3D3D3D" 和 color="#3d3d3d"都是同一个颜色 2.判断的时候,QML默认是小写 如:if(c ...
- Python - Django - ORM 常用字段
AutoField: int 自增列,必须填入参数 primary_key=True 如果没有写 AutoField,则会自动创建一个列名为 id 的列 from django.db import m ...
- 基于EasyDSS流媒体解决方案创建视频点播、短视频、视频资源库等视频播放系统
随着前端技术的不断发展,视频点播早已不再是IE6时代的浏览器嵌入式Windows Media Player.也不是后来的flash media player需要的rtmp点播流,现在能够唯一满足全终端 ...
- LeetCode_389. Find the Difference
389. Find the Difference Easy Given two strings s and t which consist of only lowercase letters. Str ...