我想或者我更喜欢用 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 中引入的。现在,您可以通过在参数列表本身中提供特定类型来强制参数为特定类型,如您的示例所示。
不幸的是,标量对象(如int
和string
)是不允许的。
您可以使用 gettype()
、is_string()
(也处理其他类型)甚至类型运算符 instanceof
等方法在内部进行自己的检查,以确定传递的对象是否属于正确的类型。
我想
把它带到桌面上:
var_dump($str);