Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 必须要求相同的文件两次,如何解决这个问题?_Php_Oop - Fatal编程技术网

Php 必须要求相同的文件两次,如何解决这个问题?

Php 必须要求相同的文件两次,如何解决这个问题?,php,oop,Php,Oop,我需要两次类文件。有什么办法可以解决这个问题吗?我有一门课叫Book。有一个主页需要类Book,因为它创建了Book对象的对象。有一个javascript文件,它使用ajax加载一个脚本,该脚本保存了编辑过的book对象。这里是一个事件流,需要我两次请求类文件: 有一个主页面需要Book类,因为它将创建一个Book对象并显示关于该书的信息。这个页面有一个保存按钮 有一个javascript文件,它使用AJAX加载一个PHP脚本,保存编辑过的图书对象 save脚本还需要Book类,因为它需要加载相

我需要两次类文件。有什么办法可以解决这个问题吗?我有一门课叫Book。有一个主页需要类Book,因为它创建了Book对象的对象。有一个javascript文件,它使用ajax加载一个脚本,该脚本保存了编辑过的book对象。这里是一个事件流,需要我两次请求类文件:

  • 有一个主页面需要Book类,因为它将创建一个Book对象并显示关于该书的信息。这个页面有一个保存按钮
  • 有一个javascript文件,它使用AJAX加载一个PHP脚本,保存编辑过的图书对象
  • save脚本还需要Book类,因为它需要加载相同的对象。(实际上无法通过AJAX传递PHP对象)
  • 首先,这甚至不起作用。当我在save脚本中需要Book类时,它失败了。第二,有没有更好的方法可以做到这一点,因为我需要两次Book课程。

    应该可以满足您的需要

    话虽如此(在重新阅读您的问题后),您提到的两个脚本似乎完全不同。。所以


    AJAX如何包括失败?您看到了什么错误?

    您可以始终使用
    require\u once()
    强制脚本使用现有资源。对于需要Book类的PHP页面的AJAX调用,除非您将其存储在memcache或其他东西中,否则您无法使用父页面实例化的类,因为就您的服务器而言,它是一个新请求

    奇怪的是,这些听起来像是单独的脚本,但您是否尝试过使用
    require\u once()
    ?由于HTTP是无状态的,对第二个PHP脚本的ajax调用与呈现该页面的第一个PHP页面无关。我敢打赌,错误与此无关。保存脚本文件中的require错误。它在PHP主页中工作。我非常确定save脚本中的路径是正确的:require_once(“../classes/BookClass.php”);很确定?为什么你不能绝对肯定?这似乎是一个很简单的验证途径…我100%确定。我使用的是绝对路径,打印出来并加载,它是正确的。看起来你很困惑。对于用户来说,这似乎是一个页面,但是对于PHP来说,这是两个完全不同的请求。无论您在主页上使用什么代码来加载书籍,都无法神奇地告诉AJAX脚本要加载什么。它们是两个独立的对象。您必须在页面的JavaScript中保存书籍的ID(或您使用的任何构造细节),然后使用该脚本告诉AJAX PHP要加载哪本书。保存脚本中的错误是,在require之后出现的任何代码都不会执行。我在类文件的require之前和之后放置了一个echo,只有require之前的echo才会执行。@egidra然后您需要更改日志记录级别,以便看到实际错误。听起来您的类包含文件中出现了一些不稳定的情况。我建议您使用
    dbg
    逐步了解它,以准确地找出问题所在并更改日志记录级别。如何更改日志记录级别?@egidra在脚本顶部,您可以放置:
    error\u reporting(-1)
    或者您可以编辑php.ini require_once('BookClass.php')是进入主php文件还是保存php文件?或者两者都有?