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 值而已。
- 软件测试金字塔
- Selenium2+python自动化59-数据驱动(ddt)
- 浅谈我对动态规划的一点理解---大家准备好小板凳,我要开始吹牛皮了~~~
- Selenium2+python自动化60-异常后截图(screenshot)
- Cisco Packet Tracer 6.0 实验笔记
- kali 2018.1安装教程
- python接口自动化2-发送post请求
- TypeScript 动态创建类
- Java学习笔记【持续更新】
- 互联网协议入门(二)
- 设计模式六大原则(4):接口隔离原则
- 设计模式六大原则(3):依赖倒置原则
- 闲的无聊时候就手动写第一个漏洞扫描工具吧!
- 模拟退火算法从原理到实战【基础篇】
- 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
- 面试常考知识点总结——面试必看
- linux 实现双网卡绑定单个IP——bond篇
- Hacking with iOS: SwiftUI Edition - 愿望清单项目(一)
- 重拾Java Web应用的基础体系结构
- 使用SAP C4C自定义BO实现自定义的Number Range
- 限流算法简介及Guava RateLimiter令牌桶限流介绍
- K8S的名称空间创建&&版本的升级、回滚操作
- SAP Cloud for Customer CLR(Code List Restriction)的一种高级用法
- SAP WebClient UI One Hit Navigation的实现方法
- 【打包构建】Mac下使用expect实现执行sudo命令时自动输入密码
- ASP.NET Core 奇淫技巧之SPA部署
- SAP Cloud for Customer Rule Editor的使用方法和底层工作原理
- (数据科学学习手札94)QGIS+Conda+jupyter玩转Python GIS
- 72-STM32+ESP8266+AIR202基本控制篇-移植使用-移植Android的MQTT包到自己的工程项目
- 用上Latex实现编辑伪代码