php 如何在void函数中抛出异常?

qgelzfjb  于 2022-12-02  发布在  PHP
关注(0)|答案(1)|浏览(173)

我有abc()设置$string。但我想抛出异常,如果$string没有设置。我不知道如何做到这一点。我应该使用如果语句,但我不知道我应该使用什么语句。我会感激如果有人给予我提示,我可以如何修改这个抛出异常,如果没有$string设置。

public function abc(string $string): void
{
    $this->string = $string;
    trow new Exception("Message");
}
krugob8w

krugob8w1#

这取决于你所指的if $string is not set
正如注解中所指出的,如果不向abc传递 anything,将导致抛出Exception:

<?php

class Test {
    public function abc(string $string): void {
        $this->string = $string;
        //throw new Exception("Message");
    }
}

$test = new Test();
$test->abc();

因此,在不提供$string的情况下,您无法调用abc。这是您想要的吗?如果是,那么您不必执行任何操作。
如果您使用is set表示字符串不为空(""),则可以按如下方式使用strlen

<?php

class Test {
    public function abc(string $string): void {
        if (!strlen($string) {
            throw new Exception("Message");
        }
        
        $this->string = $string;
    }
}

$test = new Test();
$test->abc("");

不要使用empty,因为它会将"0"报告为“空”:

var_dump(empty("0")); // bool(true)
var_dump(!strlen("0")); // bool(false)

相关问题