如何在 php 中跨项目访问文件


How to access files Cross-Project in php?

我有项目A,它有a.php我有项目B有b.php如何从 b.php 访问 a.php.所有这些项目都与 HOME 位于同一根请帮忙

<?php class B { function getB() { return "B"; } } <?php include '/projectB/B.php'; class AA { function getA() { $objB=new B(); echo $objB->getB(); } } $obj=new AA(); $obj->getA(); ?>

抛出的错误是在 C:''wamp''www''projectA''AA 中找不到类 B.php

如果文件 a.php

位于另一个目录中,则路径可以是相对路径(相对于当前文件 a.php 目录)或绝对路径(基于服务器的绝对文件路径)。

相对示例:

<?php 
     include('../a.php'); // one directory back, as the file path is always relative to the file in which include (or require or any of the others) is being called.
?>

绝对示例:

<?php
     include('/path/to/server/root/some/folder/a.php'); // absolute path 
?>

希望这有帮助。


更新

一直说"这是错误的"或"它不起作用",但你真的没有很好地解释你的文件结构。因此,我将假设您的文件夹结构如下所示,例如:

  • 网页根目录
    • 项目A
      • 答.php
    • 项目B
      • 乙.php

现在,如果你在 a.php 内部,你可以要求 b.php如下所示:

require_once('../ProjectB/b.php');

如果您在 b.php 内部并希望包含 a.php,则可能如下所示:

include_once('../ProjectA/a.php');

请注意,我已经使用了包含和要求,由您来研究使用哪个。

只需要从b.php要求a.php这是代码:

require_once("a.php");

如果 a.php 和 b.php 位于同一文件夹中:

在 b.php:

<?php
  include_once(__DIR__ . '../projectA/A.php');
?>

__DIR__是 b.php 中文件夹的动态路径。

http://php.net/manual/en/language.constants.predefined.php

如果 A 包含在 B 中非常重要.php则使用要求:

<?php
  require_once(__DIR__ . '../projectA/a.php');
?>

被限制在创建它们的"空间"内。从理论上讲,您不能交叉授粉类。

您有两种选择:

1) 创建一个单例类(参见函数中的全局 PHP 类?

2) 从 BB 类扩展 AA 类,例如:

Class AA extends class B{
   // Yada yada yada
}

值得阅读以下两个资源:

http://php.net/manual/en/keyword.extends.php

http://php.net/manual/en/language.oop5.inheritance.php