PHP 表示实际类型


php indicate the real type

我想或者我更喜欢用 Php 指示函数中参数的真实类型,这可能吗?

例:

<?php
function test($param)
{
   echo $param;
}
$str = "hiiiii everyone";
test($str);
?>

而不是只把$param放在功能测试中;我想放这样的东西

function test(string $param) // string is the type of the param, that can be int, long ect or an object which I had created.
可以使用

最新版本的 PHP 来做到这一点吗?

您要查找的是类型提示。但是,如链接的手册页所述:

类型

提示不能与标量类型(如 int 或字符串)一起使用。

这意味着不,您不能强制函数的参数为字符串。您可以强制它是特定类的实例、可调用的东西或数组。

如果要强制参数为字符串,请执行如下操作:

function my_func ($mustBeAString) {
  if (!is_string($mustBeAString)) return;
  // Do stuff here
}

No.PHP 是一种动态类型语言;变量(因此,参数)没有设置类型。您可以尝试使用 gettype 强制执行自己的内容,即:

function test($param) {
    if(gettype($param) != "string")
        throw new TypeException //or something
}

但这是一个坏主意。不要尝试用您不熟悉的语言实现其他语言的功能。试着拥抱正确的方式,看看它是如何从那里开始的。

类型 Hinting 是在 PHP5 中引入的。现在,您可以通过在参数列表本身中提供特定类型来强制参数为特定类型,如您的示例所示。

不幸的是,标量对象(如intstring)是不允许的。

您可以使用 gettype()is_string() (也处理其他类型)甚至类型运算符 instanceof 等方法在内部进行自己的检查,以确定传递的对象是否属于正确的类型。

我想

把它带到桌面上:

var_dump($str);