在线编译代码时未捕获 php 中的 TypeError

问题描述 投票:0回答:2

我试图在 php 在线编译器上运行一个非常简单的代码,但每次它都会给我一个错误:这是 link

<?php

function value(integer $h) {
    if(!is_int($h)) {
        throw new InvalidArgumentException('integer expected');
    }
    if($h <= 7) {
        throw new RangeException('integer should be greater than 7');
    }
    echo $h;
    return $return;
}

$something = value(11111);
echo $something;

以下是错误:

Fatal error: Uncaught TypeError: Argument 1 passed to value() must be an instance of integer, integer given,

我在这里做错了什么吗?

php
2个回答
1
投票

在函数中使用类型

int
代替
integer

在 PHP 中,类型名为

int
而不是
integer


0
投票

如果有人感兴趣,请发布更正的代码!

<?php 
function value(int $h) {
    if(!is_int($h)) {
        throw new InvalidArgumentException('integer expected');
    }
    if($h <= 7) {
        throw new RangeException('integer should be greater than 7');
    }
    echo $h;
}

$something = value(11111);
echo $something;
?>

在 PHP 在线编译器中尝试这个 PHP 程序

© www.soinside.com 2019 - 2024. All rights reserved.