为什么变量在if块内为空,但在其外部却有一个值?

时间:2018-08-15 23:09:45

标签: php arrays if-statement logic conditional

我发现了我无法解释的东西。 $post_id设置为9$bookmarks是其中包含[5] => true的数组。如果我将die($post_id)移到该块之外,并且放在之前还是之后没关系,那么$post_id将包含{{1} },但在块内既没有类型也没有值。怎么可能?

9

UPD:我已经编辑了代码,现在不应该使您感到困惑。

1 个答案:

答案 0 :(得分:2)

die()exit()according to the PHP Manual相同,exit()具有两种不同的行为:

void exit ([ string $status ] )
void exit ( int $status )

它说明:

  

如果status是字符串,则此函数将在之前打印状态   退出。

     

如果status为整数,则该值将用作退出状态   而不是打印。退出状态应在0到254的范围内,   退出状态255由PHP保留,不得使用。状态0   用于成功终止程序。

由于$post_id是一个整数,die($post_id)实际上将不打印任何内容,而是仅修改进程的退出代码。

您可以使die()通过以下方式将数字重铸为字符串来打印数字:

die(strval($post_id));