PHP_SELF vs同一页面的url

时间:2012-04-09 17:29:00

标签: php javascript mysql

我正在尝试使用php的include函数使我的代码更清晰。我在我的三个页面中使用了相同的代码部分,但是这个页面中的一个是我在执行这部分代码时调用的页面。我也可以代替

action="<?=$_SERVER['PHP_SELF']?>"

使用此页面的链接(action =“thispage.php”)?另外为了使用包括代码必须完全相同?我的意思是我的部分代码几乎相同,只是一些小的东西改变了。比如在每个页面中,我都有一个我在所选链接中应用的CSS样式。有没有办法改变包含的代码的一些东西?谢谢!

2 个答案:

答案 0 :(得分:1)

当然,你可以。虽然更简单的方法是在表单上使用action=""。空字符串告诉浏览器将表单提交到您当前所在的页面。

当您包含文件时,它实际上包含在您的代码中,因此它“继承”当前范围内的所有变量。您可以在文件中定义一个变量,然后在另一个文件中的条件内使用该变量来确定它应该做什么。

答案 1 :(得分:0)

你可以创建一个可以传递许多参数的函数:

function include_partial($path, $options = array()) {
    extract($options); // import array keys as local variables
    include($file);
}

// usage
include_partial('/path/to/file', array('action' => $_SERVER['PHP_SELF']);

当然,如果没有jsut函数在你包含的文件中设置varibles,你可以做同样的事情:

$action = $_SERVER['PHP_SELF'];
include('/path/to/file');

我喜欢这个函数的是它允许你对变量进行范围调整,这样你就不会继续使用全局范围。