我已经用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';

而且我不知道这应该如何工作。

谁可以给我解释一下这个 ?

最佳答案

来晚了,但是似乎没有人缓存它:这个for循环等效于:

$i = 1;

为什么 ?因为在for循环的条件部分中,您具有3个与AND绑定(bind)的条件:
$i < $uriSize
&&
$uriArr[$i] != $wsDir
&&
$i++;

在第一次迭代中,$i++的计算结果为0,该值等于false,并且仅在之后递增。因此,循环仅在一次迭代后停止,并且$i为1,并且您有一个错误。除非您的代码中有错字...

09-28 03:05