类型转化的判别

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之类型转化的更多相关文章

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

    一.单日期格式 因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器: 1.applicactionContext.xml <?xml version="1.0" e ...

  2. C#定义类型转化 及 格式化字符串

    operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...

  3. C++中的显式类型转化

    类型转化也许大家并不陌生,int i; float j; j = (float)i; i = (int)j; 像这样的显式转化其实很常见,强制类型转换可能会丢失部分数据,所以如果不加(int)做强制转 ...

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

    什么是类型转化器? jQuery支持不同格式的数据返回形式,比如dataType为 xml, json,jsonp,script, or html 但是浏览器的XMLHttpRequest对象对数据的 ...

  5. Asp.net 面向接口可扩展框架之使用“类型转化基础服务”测试四种Mapper(AutoMapper、EmitMapper、NLiteMapper及TinyMapper)

    Asp.net 面向接口可扩展框架的“类型转化基础服务”是我认为除了“核心容器”之外最为重要的组成部分 但是前面博文一出,争议很多,为此我再写一篇类型转化基础服务和各种Mapper结合的例子,顺便对各 ...

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

    新框架正在逐步完善,可喜可贺的是基础服务部分初具模样了,给大家分享一下 由于基础服务涉及面太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 ...

  7. 《精通C#》自定义类型转化-扩展方法-匿名类型-指针类型(11.3-11.6)

    1.类型转化在C#中有很多,常用的是int类型转string等,这些都有微软给我们定义好的,我们需要的时候直接调用就是了,这是值类型中的转化,有时候我们还会需要类类型(包括结构struct)的转化,还 ...

  8. java类型转化之SimpleDateFormat-时间转化

    关于Date,时间戳(long),String类型之间的相互转换,主要是用到类SimpleDateFormat. 先介绍SimpleDateFormat类的一些常见格式: 1.参数: code des ...

  9. Javascript基础系列之(三)数据类型 (类型转化)

    所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,通过全局函数,可以实现更为复杂的数据类型. var a = 3; var b = a + 3; var ...

  10. delphi 类型转化

    1.typecasting类型强制转化 var B : Boolean; Begin B := Boolean(1); End; 对于对象和接口,采用as操作符进行转化,但要先进行兼容性判断. 2.P ...

随机推荐

  1. MySql实现sequence功能的代码

    使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度) 第一步:创建Sequence管理表 sequence DROP TABLE IF EXISTS sequence; CREATE T ...

  2. Maven使用详解,非常详细

    本文转:http://blog.csdn.net/u010425776/article/details/52027706 什么是Maven? 如今我们构建一个项目需要用到很多第三方的类库,如写一个使用 ...

  3. iOS 版本更新(强制更新)检测问题

    iOS 版本更新(强制更新)检测问题 通常iOS系统中是默认设置再wifi状态,且网络状况良好下自己更新应用的. 但是如果用户设置了不自动更新,但是我们的APP出现重要的版本,一定需要用户更新的情况下 ...

  4. 给dubbo接口添加白名单——dubbo Filter的使用

    本文转自:http://blog.csdn.net/mj158518/article/details/47379799 在开发中,有时候需要限制访问的权限,白名单就是一种方法.对于Java Web应用 ...

  5. VirtualBox 4.3“不能为虚拟电脑 打开一个新任务”解决方案 - 转

    最近做项目因为设计不同网络,还要大家文件和数据库服务器环境,所以需要多台机器进行测试,最简单的方法当然是跑多个虚拟机了.虽然不可否认 VMware 确实强大,不过相比较起来我更喜欢功能比较简单轻省的 ...

  6. C++ 智能指针五

    /* 代码分析: 这是标准库的源码,我们看到在enable_shared_from_this内部保存了一个weak_ptr.shared_from_this函数就是通过这个weak_ptr得到了. 但 ...

  7. JAVA的各种O

    转自:http://jeoff.blog.51cto.com/186264/88517/ J2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑.若与公司大牛谈技术人家 ...

  8. 如何解决安装VMware后郑广电宽带客户端不能登录的问题?

    如何解决安装VMware后郑广电宽带客户端不能登录的问题? 问题:安装VMware后,郑广电宽带客户端不能登录,提示:“不允许代理上网”. 解决:将VMware的虚拟网卡(VMnet1和VMnet8) ...

  9. 织梦中在线显示pdf文件的方法

    如何在织梦中添加pdf文件并显示呢?下面这个教程将带领大家来操作.(注:手机版无法查看) 第一步:在系统-系统基本参数-附件设置中添加pdf格式 并且将大小调大 第二步:在核心-内容模型-普通文章中添 ...

  10. python加快数据处理的方法

    1.一切数据库操作最好使用内网连接, 2.使用批量操作接口操作数据库,而不是多线程频繁操作单条数据 3.如果python进程的cpu使用率达到100%了,需要开启多进程.java单个进程cpu使用率在 ...