搜索
首页后端开发php教程PHP数据类型总结_PHP教程

PHP数据类型总结_PHP教程

Jul 13, 2016 pm 05:50 PM
falseintphptrue取值名称总结数据类型表示

 PHP共有8中数据类型:

 类型名称  类型表示  取值
 bool  布尔型   true,false
 integer  整型 -2147483647-2147483648
 string  字符串型  字符串长度取决于机器内存
 float  浮点型  最大值1.8e308
 object  对象 通过new实例化 $obj=new person(); 
 array  数组类型  $arr=array(1,2,3,4,5,6);//一维数组
 resourse    
 null  空值  null
 

布尔型bool :

对于其他类型我们可以使用(bool)或者(boolean) 进行强制转换 eg:(bool)1=true;

以下几种情况在强制转化的时候默认为false:


 
 转换  结果
 布尔型的false var_dump((bool) false)  bool(false)
 整型0  var_dump((bool) 0);  bool(false)
 浮点型0.0  var_dump((bool) 0.0);  bool(false)
 字符串‘0’ var_dump((bool) '0');  bool(false)
 空数组$arr=array(); var_dump((bool) $arr)  bool(false)
 不包含任何成员变量的空对象只在PHP4使用,PHP5中为true  bool(false)
 NULL或者尚未赋值的变量var_dump((bool) NULL)  bool(false)
 从没有任何标记(tags)的XML文档生成的SimpleXML 对象  bool(false)
 

字符串'0.0'转换结果为bool(true)
注:-1和其他非零值(不论正负)都是true
 
整型integer:
整型的范围-2147483647--2147483647 ,如果超过该值会自动转换成float型
我们可以使用echo PHP_INT_SZIE  输出integer的字长,和机器有关。echo PHP_INT_MAX 输出integer的最大值
PHP中没有整除运算 如果执行 1/2 会产生  float的0.5  如果想实现整除效果,则可以使用 (int)(1/2)=0 或者使用round(25/7)=4
强制转化成整型 (int)或者(integer) bool型 ture 转换成 1 ,false转换成0
 
浮点型float:
取值范围 最大值 :1.8e308  不知道最小值是多少? 求高手告知
浮点数的字长也和机器有关, 好像没有PHP_FLOAT_SIZE 啊,求高手告知如何的到浮点数字长
 
字符串类型string:
定义字符串的4种方法:
1.单引号
2.双引号
3.heredoc语法结构
4.nowdoc 语法结构(PHP5.3.0之后)
单引号
单引号定义了最原始的字符串,里面的所有内容都按字符串处理,如果字符串中包含单引号则可以用\转义
双引号
双引号定义的字符串会解析一些特殊字符(\n,\b)和变量
可以将变量放置在双引号中的方式来代替将变量转换成 字符串(string):
$num=10;
$str = "$num"; //$str为字符串型的10
heredoc语法结构
字符串本身
标示符
结束时的标示符必须在一行的开始位置,而且标示符的定义格式也必须按照PHP定义的规则,只能包含数字,字母,下划线,并且不能以数字下划线开头
结束标示符哪一行不允许有其他字符,可以在标示符后面添加一个分号,切分号前后也不能有tab或空格,否则PHP将无法解析该标示符,会继续向下查找标示符,如果在文件结尾前仍没有找到则会产生一个错误
heredoc就是一个没有使用双引号的双引号,就是里面可以包含双引号,且不用转义,而且可以解析特殊字符和变量
nowdoc 语法结构
字符串本身
标示符 www.2cto.com
nowdoc的开始标示符必须使用单引号括起来,结束标示符和其他规则都和heredoc一样
nowdoc就是没有使用单引号的单引号,nowdoc包含的字符串会原样输出,里面包含的特殊字符和变量不会被解析
 
如果双引号中包含数组变量中的几种情况
//我们先定义以下数组
[php]
1. $arr=array(   
2.   'one'=>array( 
3.    'name'=>'jiangtong', 
4.    'sex'=>'男' 
5.   ), 
6.   'two'=>'zhaohaitao', 
7.   'three'=>'fanchangfa' 
8.  ); 

上面是的数组中第一个元素二维的,后两个是一维的,我们访问一维的时候下面几种方式:
[php]
1. echo "$arr[two]"//key没有单引号 
2. echo "$arr['two']"//key有单引号 会出错,如果我们改成 echo "{$arr['two']}"; 则可以正确输出结果 
3. echo "{$arr[two]}"//有双大括号,但是key没有单引号 这种情况PHP会先寻找有没有常量banana,有的话则将其替换,由于没有two常量则出错  
可见在访问一维数组的时候 要么不加key不加引号(考虑到第三种情况啊),加了就要被{}括起来,可以全不加。
多维数组测试
[php]
1. echo "$arr[one][name]";  //输出结果为Array[name] 可见它返回了一个数组,只解析了一维 
2. echo"{$arr['one']['name']}";//输出结果为jiangtong 
 在多维数组的访问中必须使用了大括号key必须使用双引号括起来
 
数组类型
在字符串类型中已经提到,被大括号括起来的,如果不加key引号,是合法的,那么PHP首先会查找是否有名为key的常量,有的话就会被替换,没有的话会产生一个找不到常量的警告才按普通字符串处理,所以建议大家一定加单引号
转换成数组使用(array)type  或者array(type) ,但是如果将只有一个值的转换成数组,会得到一个元素的数组,且下标为0,将NULL转换成数组会得到空的数组
我们可以在遍历数组的时候改变数组的值,在PHP5.0以上可以使用引用实现
[php]
1. $arr=array('a','b','c','d','e' ); 
2.  foreach($arr as &$value) 
3.  { 
4.       $value=strtoupper($value); 
5.       echo $value; 
6.  }//输出结果 ABCDE 

Object对象类型
实例化对象我们使用new  加入有一个person类,我们可以通过以下方式
 
[php]
1. $objPerson=new person(); 

强制转换 (object): 如果将一个对象转化成对象那么它没有任何改变,对于其他任何值将会实例化一个stdclass的对象,如果该值为NULL,则会实例化一个空对象,如果 将数组转换成对象那么会将数组的key作为对象的属性,value为属性值,其他类型的值则名为scalar的成员变量包含该值
[php]
1. $arr=array('one'=>'a','two'=>'b' ); 
2. $obj=(object)$arr; 
3. echo $obj->one   //输出结果为a; 
注:这是由key的数组如果没有字符key的数组,我不知道如何访问,谁知道希望告诉小弟一下,谢谢。
对于其他值
[php]
1. $obj1=(object)'jiang'; 
2.  echo $obj1->scalar;//输出结果jiang 

NULL 空类型
null大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,下面三种情况变量被认为为NULL
1.被赋值为NULL
2.尚未被赋值
3.被unset();

 
摘自 jt521xlg的专栏

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478264.htmlTechArticlePHP 共有 8 中数据类型: 类型名称 类型表示 取值 bool 布尔型 true,false integer 整型 -2147483647-2147483648 string 字符串型 字符串长度取决于机器内...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
超越炒作:评估当今PHP的角色超越炒作:评估当今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

PHP中的弱参考是什么?什么时候有用?PHP中的弱参考是什么?什么时候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

解释PHP中的__ Invoke Magic方法。解释PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。

解释PHP 8.1中的纤维以进行并发。解释PHP 8.1中的纤维以进行并发。Apr 12, 2025 am 12:05 AM

Fibers在PHP8.1中引入,提升了并发处理能力。1)Fibers是一种轻量级的并发模型,类似于协程。2)它们允许开发者手动控制任务的执行流,适合处理I/O密集型任务。3)使用Fibers可以编写更高效、响应性更强的代码。

PHP社区:资源,支持和发展PHP社区:资源,支持和发展Apr 12, 2025 am 12:04 AM

PHP社区提供了丰富的资源和支持,帮助开发者成长。1)资源包括官方文档、教程、博客和开源项目如Laravel和Symfony。2)支持可以通过StackOverflow、Reddit和Slack频道获得。3)开发动态可以通过关注RFC了解。4)融入社区可以通过积极参与、贡献代码和学习分享来实现。

PHP与Python:了解差异PHP与Python:了解差异Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

php:死亡还是简单地适应?php:死亡还是简单地适应?Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来:改编和创新PHP的未来:改编和创新Apr 11, 2025 am 12:01 AM

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境