在之前的编程中,URL的Argv经常用到,使用GET或POST数组进行获取。对于Path,笔者则未进行了解。下面用个例子讲述它们的区别:
创建route.php以输出URL的Path和Argv:
<?php
echo $_SERVER['PATH_INFO']."<br>";
$pathinfo = explode('/',$_SERVER['PATH_INFO']);
echo '<pre>';
//打印Path
print_r($pathinfo);
//打印参数Argv
print_r($_GET);
?>
假设URL为127.0.0.1:9090/test/route.php/book/article/part?argv0=10&argv1=11,则网页输出为
Array
(
[0] =>
[1] => book
[2] => article
[3] => part
)
Array
(
[argv0] => 10
[argv1] => 11
)
第一个数组为Path,第二个数组为参数数组$_GET。
通过解析Path与Argv参数,PHP引擎就可以根据预先设定的Route::rule,进行路由转发(类似重定向)及处理,达到安全和工程化的目的。
附言:所有的编程语言都在相互借鉴与进化。某种语言拥有的先进特性或表达方式,很快其他语言也很有可能拥有。语言之间大的差别还是使用场景的不同。