大部分的可变函数都是用来测试一个函数的类型的。PHP中有两个最常见的函数,分别是gettype()和settype()。这两个函数具有如下所示的函数原型,通过他们可以获得要传递的参数和返回的结果。

  1. string gettype(mixed var);
  2. bool settype(mixed var,string type);

要使用gettype()函数,必须先给它传递一个变量。它将确定变量的类型并且返回一个包含类型名称的字符串:bool、int、double、string、array、object和resource。如果变量类型不是标准类型之一,该函数就会返回“unknown type(未知类型)”。

要使用settype()函数,必须先给它传递一个要被改变的变量,以及一个包含了上述类型列表中的某个类型的字符串,比如下面的例子:

  1. <?php
  2. $a = 56;
  3. echo GetType($a) . '<br />'; //将会输出 integer
  4. settype($a, 'double');
  5. echo GetType($a). '<br />'; //将会输出double
  6. ?>

当第一次调用gettype()时,$a 的类型是整数。在调用setype()后,它就变成了双精度类型。

PHP还提供了一些特定类型的测试函数。每一个函数都使用一个变量作为其参数,并且返回 true 或 false 。这些函数如下:

  • is_array():检查变量是否是数组。
  • is_double()、is_float()、is_real() (所有都是相同的函数):检查变量是否是浮点数。
  • is_long()、is_int()、is_integer() (所有都是相同的函数):检查变量是否是整数。
  • is_string():检查变量是否是字符串。
  • is_bool():检查变量是否是布尔值。
  • is_object():检查变量是否是一个对象。
  • is_resource():检查变量是否是一个资源。
  • is_null():检查变量是否是null。
  • is_scalar():检查该变量是否是标量,即,一个整数、布尔值、字符串或浮点数。
  • is_numeric():检查该变量是否是任何类型的数字或数字字符串。
  • is_callable():检查该变量是否是有效的函数名称。

PHP中的GetType和SetType的更多相关文章

  1. 对ContentProvider中getType方法的一点理解

    在上篇博客中我们介绍了自定义ContentProvider,但是遗漏掉了一个方法,那就是getType,自定义ContentProvider一般用不上getType方法,但我们还是一起来探究下这个方法 ...

  2. [php-src]窥探Php内核中的变量

    内容均以php-5.6.14为例. 在看各种组合数据类型之前,有必要先熟悉下 Zend/zend_types.h 里面的自定义数据类型. #ifndef ZEND_TYPES_H // 防止多次 in ...

  3. .NET中可空值类型实现原理

    为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable<T>类型,也可简写为T?.但是Nullable<T>自身是结构体,也是值类型,那么它是如何实现将nu ...

  4. 如何在 ShardingSphere 中开发自己的 DistSQL

    在<DistSQL:像数据库一样使用 Apache ShardingSphere>和<SCTL 涅槃重生:投入 RAL 的怀抱>中,已经为大家介绍了 DistSQL 的设计初衷 ...

  5. android ContentResolver详解

    查询出来的cursor的初始位置是指向第一条记录的前一个位置的cursor.moveToFirst()指向查询结果的第一个位置.一般通过判断cursor.moveToFirst()的值为true或fa ...

  6. php核心知识要点

    Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的.面向对象的.解释型的.健壮的.安全的.性能非常之高的.独立于架构的.可移植的.动态的脚本语 ...

  7. PHP--最常用--必背函数总结!php学习者收藏必备!

    一.PHP系统函数 函数 功能 用法 var_dump() 打印变量结构信息,包括类型和值.数组将递归展开值 var_dump ( $arg1...); echo():是语法结构 输出一个或者多个字符 ...

  8. Android ContentResolver

    在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用 程序共享的数据.ContentPro ...

  9. Android 实现Xmpp工具类

    /** * XMPP服务器连接工具类. * * @author chen.lin * */ public class XmppManager { private static final String ...

随机推荐

  1. 小程序语音红包中遇到的 语音识别silk转wav格式 如何在线转 或者mp3转wav格式

    公司在开发一个小程序语音红包,现在遇到的问题就是通过微信的小程序文档接口拿到的录音文件要么是silk格式的,要么是mp3格式的 但是呢,如果要调用百度的语音接口,又必须是wav格式的.也就是说通过微信 ...

  2. think queue 消息队列初体验

    使用的是tp5  自带的消息队列 thinkphp top里的 消息队列框架 think-queue 这是thinkphp官方团队开发的一个专门支持队列服务的扩展包 消息队列应用场景: 消息队列适用于 ...

  3. spring的注解使用

    1.注解测试在xml里面配置<context:component-scan base-package="cn.ql"></component-scan>co ...

  4. python内置函数与匿名函数

    内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() d ...

  5. 队列详解及java实现

    导读 栈和队列是有操作限制的线性表. 目录 1.队列的概念.特点.存储结构. 2.栈队列的java实现. 概念 队列是一种在一端进行插入,而在另一端进行删除的线性表.1.队列的插入端称为队尾:队列的删 ...

  6. pyspark进行词频统计并返回topN

    Part I:词频统计并返回topN 统计的文本数据: what do you do how do you do how do you do how are you from operator imp ...

  7. asp.net core 2.0 查缺补漏

    asp.net core 2.0 一些有用有趣的设置. 面向(targeting)不同的.net版本: 打开asp.net core 2.0的项目文件: xxx.csproj, 这部分: <Pr ...

  8. Java 与C++的各种优势与弱点--学习更新中

    时隔两年没有怎么碰Java了,最近开始学习回顾下.在这里记录下学习的点滴,持续更新...希望对c++\java等不同语言有较为清晰的认识,至少不要学完以后,哪一个都不会了... Java 优势: 1. ...

  9. nginx 的基本配置

    安装(mac):关于brew  的问题:http://www.cnblogs.com/adouwt/p/8042201.html brew install nginx  启动: brew servic ...

  10. hibernate使用注解配置索引

    添加普通索引 @Table(name="t_token", indexes={@Index(name="token_strIndex", columnList= ...