我已经用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,并且您有一个错误。除非您的代码中有错字...