动态检查多个以数字结尾的相同命名变量

我有大约 15 个具有相同名称和数字的变量。


例如$Something1 $Something2 $Something3…………


在我使用它们之前,我必须检查它们是否存在null。


我为此写了一些for循环。但这并不是很好的解决方案。有难闻的气味。


for ($Something = 1; $Something < 16; $Something++){

    $SomethingNu = 'Something'.$Something;

        if($$SomethingNu === null){

            $$SomethingNu = 'some default value';

        }

}

我可以做这样的事情。但是,它也有难闻的气味。


if($Something1 === null){

    $Something1 = 'some default value';

}

if($Something2 === null){

    $Something2 = 'some default value';

}

if($Something3 === null){

    $Something3 = 'some default value';

}

.....

如果some default value在此特定示例中它们为 null ,则它们将具有相同的默认值。


我的问题是:


这样做的最佳解决方案是什么?


qq_花开花谢_0
浏览 138回答 1
1回答

子衿沉夜

您可以创建一个可变参数函数,为您抛出的任意数量的变量设置默认值:<?phpfunction var_checker(&...$vars) {&nbsp; &nbsp; foreach ($vars as $var_keys => &$var_var) {&nbsp; &nbsp; &nbsp; &nbsp; if ($var_var == NULL) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $var_var = "some default value";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}$foobar = "something";$foobar2 = NULL;var_checker($foobar, $foobar2);var_dump($foobar);var_dump($foobar2);输出:string(9) "something"string(18) "some default value"
打开App,查看更多内容
随时随地看视频慕课网APP