链接php页面的正确方法是什么?

时间:2015-06-20 12:39:45

标签: php

你好,所以我最近学习了PHP,并且想知道如何将不同的页面链接起来以便始终正常工作并尽可能少地产生不一致。

在我的代码中我使用了这个:

include 'newcomment.php';
include 'menu.php';

或者我使用这种类型:

include '../MiniPost/database.php';
include '../MiniPost/newtopic.php';

我确信它们都不是最佳的。第一个更糟糕,因为它让我把我所有的PHP放在一个文件夹中。我不记得我是如何开始使用第二个它它认为我在Stackoverflow上的某个地方看到它...意味着根对吗?几次我遇到问题,例如../MiniPost/Forum/Forum.php并且它一直给我错误它是否有任何关于引用页面的方式? 你用什么来引用这些页面,你认为这是一个很好的做法?

3 个答案:

答案 0 :(得分:3)

..表示当前文件夹中的文件夹。 .表示当前文件夹。

您可以使用子目录中的文件...

$file = "lib/test.php";

...或在上方目录......

$file = "../test.php";

......或所有这些:

$file = "../lib/test.php";

在某些情况下,从当前文件中使路径绝对是有用的。我会推荐它,因为在某些情况下你会遇到问题。

$file = dirname(__FILE__) . "/lib/test.php";

- 或者,更短 -

$file = __DIR__ . "/lib/test.php";

答案 1 :(得分:1)

我建议将常量定义为site_root

您可以将其添加到index.php

define('SITE_ROOT', realpath(dirname(__FILE__)));

然后可能会添加一个非常基本的自动加载器:

<?php
function __autoload($class_name) {
    include SITE_ROOT . '/src/' . $class_name . '.php';
}
?>

自动加载器允许在代码中没有include语句的情况下工作。

只需实例化一个班级:<?php $object = new Test;?>

然后加载的文件为SITE_ROOT.'/src/Test.php'

这会停止在整个代码中传播include / require语句。

答案 2 :(得分:0)

两种方式都是正确的。第一个文件在同一级别(文件夹),第二个选项是你升级并从那里开始。

例如,您有这种结构。

class/
class/myClass.php
category/
category/index.php

如果你需要在index.php中包含myClass.php,你需要上升一级并转到类文件夹并调用该文件。

在这种情况下,

Include('../class/myClass.php');
相关问题