PHP学习(类型转化)

PHP 在变量定义中不需要(或不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的。也就是说,如果把一个 string 值赋给变量 $var $var 就成了一个 string 。如果又把一个 integer 赋给 $var ,那它就成了一个 integer

PHP 的自动类型转换的一个例子是加法运算符“+”。如果任何一个操作数是 float ,则所有的操作数都被当成 float ,结果也是 float 。否则操作数会被解释为 integer ,结果也是 integer 。注意这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。

如果要强制将一个变量当作某种类型来求值,需要类型强制转换

PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型。

转为布尔型

要明确地将一个值转换成 boolean ,用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制结构需要一个 boolean 参数时,该值会被自动转换。 当转换为 boolean 时,以下值被认为是 FALSE

转换为整型

要明确地将一个值转换为 integer ,用 (int)(integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。

参见:类型转换的判别

布尔值转换

FALSE 将产生出 0(零), TRUE 将产生出 1(壹)。

浮点型转换

当从浮点数转换成整数时,将向下取整。

字符串转换为数值

当一个字符串被当作一个数值来取值,其结果和类型如下:

如果该字符串没有包含 ‘.‘,‘e‘ 或 ‘E‘ 并且其数字值在整型的范围之内(由 PHP_INT_MAX 所定义),该字符串将被当成 integer 来取值。其它所有情况下都被作为 float 来取值。

该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 ‘e‘ 或 ‘E‘ 后面跟着一个或多个数字构成。

时间: 2024-11-05 23:27:09

PHP学习(类型转化)的相关文章

Asp.net 面向接口可扩展框架之类型转化基础服务

新框架正在逐步完善,可喜可贺的是基础服务部分初具备模样了,给大家分享一下 由于基础服务涉及太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 说到类型转化必须要清楚.net的类型,类型都不清楚何来类型转化 1.Primitive类型 1.1 这个概念估计很多人都没听说过,Primitive不是一个新类型,而是.net类型中最基本的一种分类,是基元类型的意思       MS将类型分为三类:Primitive(基元类型).Complex(复

javascript中的隐式类型转化

javascript中的隐式类型转化 #隐式转换 ## "+" 字符串和数字 如果某个操作数是字符串或者能够通过以下步骤转换为字符串的话,+将进行拼接操作. 如果其中一个操作数是对象(包括数组),则首先对其调用`ToPrimitive`抽象操作,该抽象操作再调用`[[DefaultValue]]`,以数字作为上下文. `[1,2]+[3,4]=='1,23,4'` 原因,因为数组的valueOf操作无法得到简单的基本类型,于是它转而调用toString.因此上栗得到的是'1,23,4'

Spring mvc @initBinder 类型转化器的使用

一.单日期格式 因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器: 1.applicactionContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

jQuery源码分析系列(36) : Ajax - 类型转化器

什么是类型转化器? jQuery支持不同格式的数据返回形式,比如dataType为 xml, json,jsonp,script, or html 但是浏览器的XMLHttpRequest对象对数据的响应只有 responseText与responseXML 二种 所以现在我要定义dataType为jsonp,那么所得的最终数据是一个json的键值对,所以jQuery内部就会默认帮你完成这个转化工作 jQuery为了处理这种执行后数据的转化,就引入了类型转化器,如果没有指定类型就依据响应头Con

lua学习——类型与值

Lua是动态类型语言,变量不要类型定义 lua中有8个基本类型:nil,boolean,number,string,      userdata,function,thread,table 用函数type可以测试给定变量或者值的类型 1.nil nil类型只有一个值,那就是nil.一个全局变量没有被赋值以前默认为nil,给全局变量赋值nil可以删除该变量 2.boolean 取值false,true,lua中所有值都可以作为条件,在控制结构中,除false,nil为假,其他为真 如:0和空串都是

经过字段类型转化后的查询不走索引

表结构如下: mysql> show create table tag_item_list\G*************************** 1. row ***************************       Table: tag_item_listCreate Table: CREATE TABLE `tag_item_list` (  `tag_item_list_id` bigint(20) unsigned NOT NULL auto_increment,  `ta

C++中的显式类型转化

类型转化也许大家并不陌生,int i; float j; j = (float)i; i = (int)j; 像这样的显式转化其实很常见,强制类型转换可能会丢失部分数据,所以如果不加(int)做强制转换,严检查的编译会报错,宽检查的编译会报warning.在C语言中,指针是4字节或者8字节的,所以指针之间的强制转换在转换的时候就如同不同的整数类型之间的赋值,问题在于对该指针的使用上,必须确保该指针确实可以做出这样的强制转换.常见的情况是void*到不同的指针类型(比如内存分配,参数传递),cha

自定义类型转化

string num1 = "12"; string num2 = "13"; int num3; int num4 = 77; bool bo; num3 = int.Parse(Convert.ToString(num2)); bo = int.TryParse(Convert.ToString(num1), out num4); Console.Write(num3 +","+bo +","+num4 ); int.Tr

struts2 之类型转化&amp;日期

Struts中的基本类型是可以通过struts的默认类型转化器转化的..日日类型默认的是1992-02-03这样的格式,如果我们填写1992年02月03日,name就会报错...因此我们需要进行类型转化... 1.局部类型转化器: 开发步骤: (1)写一个类型转化器继承StrutsTypeConverter这个类. (2)在要转化的类的同级目录下写一个和ActionName-conversion.properties的配置文件,如我这里要转化的是UserAction类中date类型... (3)

第四十一课、类型转化构造函数(上)

一.C语言中的类型转换 1.标准数据类型之间会进行隐式的类型安全转换2.转换规则如下 3.由此可知,如果是小类型转到大类型,C语言是支持隐式转换,是安全的 #include<iostream> using namespace std; int main() { short s = 'a';//小类型转化为大类型,安全 unsigned int ui = 1000;//1000默认为int,小类型转化为大类型 int i = -2000; double d = i; cout <<