【问题标题】:Dynamic type checking in PHPPHP中的动态类型检查
【发布时间】:2011-07-02 06:17:58
【问题描述】:

我正在用 PHP 编写一些代码,如果变量是字符串或某个类的实例(或派生的!),我想做一些不同的事情,但我能找到的唯一转换在线参考执行显式静态转换,而不是动态转换。是否可以在运行时检查给定变量的类型并进行比较?

【问题讨论】:

  • 你有这种情况吗——一个变量可能同时包含字符串和对象?
  • 您的意思是像is_() 函数?还是你的意思是别的?
  • 要小心,因为像 PDO 这样的一些库会实例化 stdClass 类型的对象。鸭子打字可能会更好。

标签: php types casting


【解决方案1】:

PHP documentation 建议使用is_*() 函数,其中* 是一个类型。只要您知道要检查的类型,这应该会得到您想要的效果。

当然,如果你提供更多关于你想要做什么的细节,我可以试着举一个具体的例子。

【讨论】:

    【解决方案2】:

    http://php.net/manual/en/function.gettype.php 是您正在寻找的。 检查变量是否来自给定实例 - http://php.net/manual/en/function.is-a.php

    【讨论】:

    • 谢谢 - is-a 链接正是我想要的。
    • 只需阅读手册页上的警告。使用is_*() 函数。另外,您应该使用 instanceof 语言结构而不是 is_a()-function php.net/language.operators.type
    猜你喜欢
    • 1970-01-01
    • 2010-11-23
    • 2014-02-18
    • 2013-09-14
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多