类型转化的判别

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. struts2:struts.properties配置文件介绍及常量加载顺序

    1. 背景 struts2框架中有两个核心配置文件,其中struts.xml文件主要负责管理应用中的action映射,以及该action包含的result定义等.除此之外,struts2框架还包括一个 ...

  2. 【Spark 深入学习-08】说说Spark分区原理及优化方法

    本节内容 ------------------ · Spark为什么要分区 · Spark分区原则及方法 · Spark分区案例 · 参考资料 ------------------ 一.Spark为什 ...

  3. vue手写的轮播图片,解决已经修改data中的值,页面标签已绑定,但页面没效果

    1.效果 2.index.html <!DOCTYPE html> <html lang="en"> <link> <meta chars ...

  4. vue遍历时添加个数过滤条件

    1.效果 本身有5个地址,显示3个 2.address.html <!DOCTYPE html> <html lang="en"> <head> ...

  5. FAL_CLIENT和FAL_SERVER参数详解

    FAL_CLIENT和FAL_SERVER参数详解 转载:http://openwares.net/database/fal_client_fal_server.html FAL_CLIENT和FAL ...

  6. JVM 内部原理(七)— Java 字节码基础之二

    JVM 内部原理(七)- Java 字节码基础之二 介绍 版本:Java SE 7 为什么需要了解 Java 字节码? 无论你是一名 Java 开发者.架构师.CxO 还是智能手机的普通用户,Java ...

  7. npm WARN unmet dependency错误解决方法

    在MAC上安装webpack以及reactjs等其它组件时,安装太慢卡住不动,直接ctrl+c终止后,再npm install后出npm WARN unmet dependency错误,npm cac ...

  8. rabbitmq启动异常table_attributes_mismatch

    rabbitmq启动异常table_attributes_mismatch 2017年01月09日 16:57:50 growithus 阅读数:18     [root@localhost rabb ...

  9. .NET中进行Base64加密解密

    方法一: /// <summary> /// Base64加密 /// </summary> /// <param name="Message"> ...

  10. 巧妙解决windows下 copy命令不接受太长路径的问题

    今天遇到了写的bat文件中执行xcopy成功,但是部分文件丢失的问题,查看日志,发现很多提示 : “the system can not find the path specified.“ 但是去指定 ...