【发布时间】:2017-04-09 00:30:45
【问题描述】:
我已经用 php 编程大约 2 年了。
我只是偶然发现了这个 for 循环:
// Check the URI namespace for a context
$wsDir = basename(dirname(__FILE__));
$uriArr = explode("/", $_SERVER['REQUEST_URI']);
for (
$i = 0, $uriSize = sizeof($uriArr);
$i < $uriSize && $uriArr[$i] != $wsDir && $i++;
);
$i++;
self::$executionContext = isset($uriArr[$i]) && !empty($uriArr[$i]) && substr($uriArr[$i], 0, 1) != '?'
? strtoupper($uriArr[$i]) : 'SOAP';
我不知道这应该如何工作。
谁能给我解释一下?
【问题讨论】:
-
如果你找到写这篇文章的人,我有几个选择词给他们:P。
-
看起来它正在寻找 URI 中基目录的结束位置。 for 循环不需要块,它会无条件地执行第一个表达式一次。然后它将在第二个条件为真时执行。第三个条件是空的,意味着它什么都不执行。
-
PHP Docs 确实在示例 4 中表明它可以在没有语句块的情况下使用。
-
@R.Chappell 如果你仔细观察,你会发现 for 循环条件是 2,而不是 3。据我所知,这样做的唯一想法是初始化
$i -
@VasilShaddix 在for循环中第二个语句的末尾是一个
;,表示有3个语句,只是第三个是完全空的。