php的八种基本数据类型
php的八种基本数据类型
四种标量类型(存储单一量):
①整数型(int)
例子:123,788,100,说有的整数等都是int型。
演示代码:
<?php
$a=180;//声明一个变量a,赋值180
echo $a;//输出a的值180
var_dump($a);//输出变量a,查看类型
②小数点(float也称作double)
例子:1.5,5.2,1.0,3.0都是float类型。所有的小数点数。科学计数法(2000:2E3,0.15:1.5E-1)等都是float型。
<?php
$aa=18.5;
$aa1=3.0;
var_dump($aa);
③布尔型(bool)
bool型只有两个值,用于判断:ture(正确),false(错误)
布尔值 FALSE 本身
整型值 0(零)
浮点型值 0.0(零)
空字符串,以及字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅 PHP 4.0 适用)
特殊类型 NULL(包括尚未赋值的变量)
从空标记生成的 SimpleXML 对象
其它非零值(不论正负)一样,被认为是 TRUE!
演示代码:
<?php
$a=0;
var_dump((bool)$a);//整数型0,bool输出为false
$t;
var_dump((bool)$t);//没有赋值的变量,bool输出为false
$h=' ';
var_dump((bool)$h);//空字符串,或者字符串0,bool输出为false
$arry=[];
var_dump((bool)$arry);//没有内容的数组,输出为false
$num=0.0;
var_dump((bool)$num);// 浮点数0.0也输出false
$null=null;
var_dump((bool)$null);// 空值(null)也输出flase
注意:字符串空格不算空字符串,字符串空格输出布尔型为ture;
④字符串(string)
string表示字符串,ABC,185,sghgssd都是输出字符串。
一个字符串可以用 4 种方式表达:
单引号
双引号
heredoc 语法结构:相当于双引号
nowdoc 语法结构(自 PHP 5.3.0 起):相当单引号
<?php
$a=180;
$name='小强';
$logo='JD';
$heredoc=<<<EOD
<ul>
<li>$name</li>
<li>$logo</li>
<li>$a</li>
</ul>
EOD;
$cc=1888;
echo $heredoc;
$nowdoc=<<<'EOT'
<ul>
<li>$name</li>
<li>$logo</li>
<li>$cc</li>
</ul>
EOT;
echo $nowdoc;
语法:<<<开始标识符
....
开始标识符;
注意:heredoc和双引号会解析php的代码
变量解析:
当字符串用双引号或 heredoc 结构定义时,其中的变量将会被解析。
这里共有两种语法规则:一种简单规则,一种复杂规则。简单的语法规则是最常用和最方便的,它可以用最少的代码在一个 string 中嵌入一个变量,一个 array 的值,或一个 object 的属性。
复杂规则语法的显著标记是用花括号包围的表达式。
①简单方法:
双引号和heredoc的用法
代码:
<?php
//双引号解析
$a='haha;'
echo "$a"//变量a被解析,显示haha
heredoc自定义定界符
代码:
<?php
$a='tom';
$heredoc=<<<EOD
$a
EOD;
//变量a被解析显示
②复杂方法(花括号法):
复杂语法不是因为其语法复杂而得名,而是因为它可以使用复杂的表达式。
任何具有 string 表达的标量变量,数组单元或对象属性都可使用此语法。只需简单地像在 string 以外的地方那样写出表达式,然后用花括号 { 和 } 把它括起来即可。用花括号将变量名括起来,例如{$a},变量将被解析。花括号进行定界符解析。
代码如下:
<?php
//输出haha123,把变量a赋值haha
$a='haha';
echo "{$a}123"//花括号内的变量被解析,输出haha123
花括号的增删改查
<?php
$str='tombbb';
echo $str;//输出str的值tombbb
echo '<br>';
//利用{}增加,从0开始数
$str{6}='s';
//输出增加后的数值,理论输出tombbbs
echo $str;
echo '<br>';
//利用{}修改;
$str{1}=1;
echo $str;//输出t1mbbbs
echo '<br>';
echo $str{2};//理论输出m
echo '<hr>';
//利用{}进行删除
$str{1}=' ';
echo '<br>';
echo $str;//显示t mbbbs
两种复合类型(存储多个量)
数组(array)
语法:
$变量名=array();
$变量名2=[];
代码如下:
<?php
//声明一个数组
$ary1=array('a','b','c');//标准风格,php5.4以前
$ary2=['d','e','f'];//短风格,php5.6以后版本支持
echo $ary2[1];//输出ary的第2位值。输出e。
注意:数组顺序也是从0开始。
对象(object)
语法:
$变量名=new stdclass();
代码演示:
<?php
$a=new stdclass();//对象初始化(object)
var_dump($a);//输出a的数据类型,显示为object(stdClass)#1 (0) { },对象输出类型
?>
两种特殊类型:
resource(资源)
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
例子:
代码如下:
<?php
$a=fopen('note.txt','r'); //fopen函数,第一个打开的文件(note.txt),第二个值:只读(r);
var_dump($a);//如果同级目录下存在note.txt则显示资源流以及类型,没有文件存在提升布尔型false.
文件存在提示资源流:

文件不存在时候返回布尔型,false。

NULL(空值)
特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。
在下列情况下一个变量被认为是 NULL:
- 被赋值为 NULL。
- 尚未被赋值。
- 被 unset()。
注意:使用 (unset) $var 将一个变量转换为 null 将不会删除该变量或 unset 其值。仅是返回 NULL 值而已。
- 关于Shell你想知道的都在这儿
- Java中使用线程时,请不要忘记Spring TaskExecutor组件
- 常见.NET功能代码汇总
- 如何通过追踪代码自动发现网站之间的“关联”
- 教你如何和使用这款强大的渗透平台-Xerosploit
- No.014 Longest Common Prefix
- Java实现解析IP地址的方法,给出一串数字,生成正确的IP地址
- 图解“管道过滤器模式”应用实例:SOD框架的命令执行管道
- No.013 Roman to Integer
- OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service & Client
- Java实现的手工做乘法方法,给出二个字符串数字,返回相乘结果
- No.012 Integer to Roman
- 黑帽SEO剖析之手法篇
- IOS学习1——IOS应用程序的生命周期及基本架构
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 现实版心灵捕手| 黑客侵入你的脑电波成为可能
- Net作业调度(三) — Quartz.Net进阶
- 爬虫课程(十三)|ajax分析法(雪球),通过获取api并破解api的反爬策略爬取数据
- c#语言-高阶函数
- 日志系统实战(二)-AOP动态获取运行时数据
- 日志系统实战(三)-分布式跟踪的Net实现
- Hadoop和大数据分析简介
- 多线程中的锁系统(一)-基础用法
- 多线程中的锁系统(二)-volatile、Interlocked、ReaderWriterLockSlim
- 多线程中的锁系统(三)-WaitHandle、AutoResetEvent、ManualResetEvent
- 那些年我们一起追过的缓存写法(一)
- c#实现redis客户端(一)
- Net作业调度(四)—quartz.net持久化和集群
- Windows Phones 7 文件操作
- 内存中的 MapReduce 和 Hadoop 生态系统:第 1 章