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 值而已。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python入门

30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!

在上面代码中,赋值的右侧形成了一个新元组,而左侧则立刻将该(未被引用的)元组解包到名称<a>和<b>。

690
来自专栏IT可乐

深入理解计算机系统(3.6)------汇编的流程控制

  前面我们所讲的所有指令,代码执行顺序都是一条接着一条顺序的执行。但是实际上在编码过程中,会有某些结构,比如条件语句(if-else),循环语句(for,do...

2127
来自专栏Python爱好者

Java基础笔记19

1466
来自专栏Android开发指南

15:IO之File、Properties类

3828
来自专栏决胜机器学习

Shell基本操作与命令

Shell基本操作与命令 (原创内容,转载请注明来源,谢谢) 本文主要是我最近学习shell语言的学习笔记,主要在于通过学习这些内容,达到看得懂shell脚...

3465
来自专栏架构师之路

一分钟sed入门(一分钟系列)

1.简介 sed是一种行编辑器,它一次处理一行内容。 2.sed调用方式 sed [options] 'command' file(s) sed [option...

39011
来自专栏架构师小秘圈

shell脚本极简教程

一,shell题记 不懂shell的程序员不是好程序员,学习shell是为了自动化,使用自动化可以非常有效的提高工作效率。没有一个大公司不要求linux的基本技...

4146
来自专栏微信公众号:Java团长

详解Java类的生命周期

最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目...

972
来自专栏IT笔记

聊聊Servlet、Struts1、Struts2以及SpringMvc中的线程安全

很多初学者,甚至是工作1-3年的小伙伴们都可能弄不明白?servlet Struts1 Struts2 springmvc 哪些是单例,哪些是多例,哪些是线程安...

3716
来自专栏自动化测试实战

RF自定义系统关键字

3847

扫码关注云+社区

领取腾讯云代金券