PHP之类型转化
类型转化的判别
PHP在变量定义中不需要(或者不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的,
也就是说,如果把一个string值付给变量$var,$var就成了一个string,如果又把一个integer付给$var,那它就成了一个integer。
PHP的自动类型转换的一个例子是惩罚运算符"*",如果任何一个操作数是float,则所有的操作数都被当成float。结果
也是float,否则操作符会被解释为integer,结果也是integer。注意这并没有改变这些操作数本身的类型,改变的仅是
这些操作数如何被求值以及表达式本身的类型,
Note:
自动转化为数组的行为目前没有定义。
此外,由于PHP支持使用和数组下标同样的语法,访问字符串下标,以下例子在所有PHP版本中都有效:
类型强制转换
php中的类型强制转化和c中的非常像:在要转换的变量之前加上用括号括起来的目标类型。
php 中使用强制类型转化后,但是原来的变量的类型和值是不变的。
允许的强制转换有:
①、(int) ,(integer) -转化为整型integer。
②、(bool),(boolean)-转换为布尔类型Boolean
③、(float),(double),(real)-转换为浮点型float。
④、(string)-转化为字符串string,
⑤、(array)-转换为数组array
⑥、(object)-转换为对象object
⑦、(unset) -转化为null(PHP5)
(binary)转换和b前缀转换支持为php5.2.1新增,
注意在括号内允许有空格和制表符,所以下面两个立志功能相同:
将字符串文字和变量转换为二进制字符串:
note:
可以将变量放置在双引号中的方式来代替将变量转化成字符串:
$foo = 10; // $foo是一个整数
$str = "$foo"; // $str 是一个字符串
$fst = (string) $foo; //$fst也是一个字符串
有时在类型之间强制转换时确切地会发生什么可能不是很明显。
//检查一个字符串是否是整数字符串
function check_int( $str )
{
return is_numeric( $str ) && intval( $str ) - $str == 0;
}
PHP之类型转化的更多相关文章
- Spring mvc @initBinder 类型转化器的使用
一.单日期格式 因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器: 1.applicactionContext.xml <?xml version="1.0" e ...
- C#定义类型转化 及 格式化字符串
operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...
- C++中的显式类型转化
类型转化也许大家并不陌生,int i; float j; j = (float)i; i = (int)j; 像这样的显式转化其实很常见,强制类型转换可能会丢失部分数据,所以如果不加(int)做强制转 ...
- jQuery源码分析系列(36) : Ajax - 类型转化器
什么是类型转化器? jQuery支持不同格式的数据返回形式,比如dataType为 xml, json,jsonp,script, or html 但是浏览器的XMLHttpRequest对象对数据的 ...
- Asp.net 面向接口可扩展框架之使用“类型转化基础服务”测试四种Mapper(AutoMapper、EmitMapper、NLiteMapper及TinyMapper)
Asp.net 面向接口可扩展框架的“类型转化基础服务”是我认为除了“核心容器”之外最为重要的组成部分 但是前面博文一出,争议很多,为此我再写一篇类型转化基础服务和各种Mapper结合的例子,顺便对各 ...
- Asp.net 面向接口可扩展框架之类型转化基础服务
新框架正在逐步完善,可喜可贺的是基础服务部分初具模样了,给大家分享一下 由于基础服务涉及面太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 ...
- 《精通C#》自定义类型转化-扩展方法-匿名类型-指针类型(11.3-11.6)
1.类型转化在C#中有很多,常用的是int类型转string等,这些都有微软给我们定义好的,我们需要的时候直接调用就是了,这是值类型中的转化,有时候我们还会需要类类型(包括结构struct)的转化,还 ...
- java类型转化之SimpleDateFormat-时间转化
关于Date,时间戳(long),String类型之间的相互转换,主要是用到类SimpleDateFormat. 先介绍SimpleDateFormat类的一些常见格式: 1.参数: code des ...
- Javascript基础系列之(三)数据类型 (类型转化)
所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,通过全局函数,可以实现更为复杂的数据类型. var a = 3; var b = a + 3; var ...
- delphi 类型转化
1.typecasting类型强制转化 var B : Boolean; Begin B := Boolean(1); End; 对于对象和接口,采用as操作符进行转化,但要先进行兼容性判断. 2.P ...
随机推荐
- Xilinx 常用模块汇总(verilog)【04】
作者:桂. 时间:2018-05-15 13:07:02 链接:http://www.cnblogs.com/xingshansi/p/9040472.html 前言 Xilinx 常用模块汇总(v ...
- 第三部分:Android 应用程序接口指南---第二节:UI---第四章 Action Bar
第4章 Action Bar Action Bar是一个能用于确定应用程序和用户的位置,并提供给用户操作和导航模式的窗口功能.如果需要显著地展示当前用户的操作或导航,应该使用Action Bar,因为 ...
- [k8s]jenkins部署在k8s集群
$ cat jenkins-pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: jenkins-pvc spec: ...
- Json返回结果为null属性不显示解决方法
返回时null属性不显示:String str = JSONObject.toJSONString(obj); 返回为null属性显示:String str = JSONObject.toJSONSt ...
- 基音检测算法的性能:Performance Evaluation of Pitch Detection Algorithms
http://access.feld.cvut.cz/view.php?cisloclanku=2009060001 Vydáno dne 02. 06. 2009 (15123 přečtení) ...
- Oracle---常用SQL语法和数据对象
1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字 ...
- 执行一条SQL语句,插入多条数据!
insert into blog (bid, aid) values (2,1)(2,2)(2,3)
- hdoj:2027
#include <iostream> #include <string> #include <vector> using namespace std; int m ...
- Java Utils工具类大全(转)
源码和jar见:https://github.com/evil0ps/utils #Java Utils --- 封装了一些常用Java操作方法,便于重复开发利用. 另外希望身为Java牛牛的你们一起 ...
- elasticsearch client 为空 错误信息:java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor
错误信息:java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor() ...