Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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
Javascript 通过AJAX传递PHP类实例?_Javascript_Php_Jquery_Ajax_Instance - Fatal编程技术网

Javascript 通过AJAX传递PHP类实例?

Javascript 通过AJAX传递PHP类实例?,javascript,php,jquery,ajax,instance,Javascript,Php,Jquery,Ajax,Instance,我最近为我们正在使用的一个新API编写了一个PHP包装类,并被要求设置一个使用它的演示。某些特性可以直接从PHP调用,但是,在单击按钮时执行操作等需要使用JS/AJAX 因为我的主PHP文件中已经有一个对象的实例,我可以将其作为参数传递给JS,然后通过Ajax传递给我的处理程序吗?还是有必要建立两个单独的实例?我能想到的最接近您所希望的事情是通过将PHP对象复制到JavaScript变量,然后在Ajax事件期间通过数据参数。PHP代码并不像您所描述的那样持久化-一旦浏览器请求了一个页面,该页面的

我最近为我们正在使用的一个新API编写了一个PHP包装类,并被要求设置一个使用它的演示。某些特性可以直接从PHP调用,但是,在单击按钮时执行操作等需要使用JS/AJAX


因为我的主PHP文件中已经有一个对象的实例,我可以将其作为参数传递给JS,然后通过Ajax传递给我的处理程序吗?还是有必要建立两个单独的实例?

我能想到的最接近您所希望的事情是通过将PHP对象复制到JavaScript变量,然后在Ajax事件期间通过数据参数。PHP代码并不像您所描述的那样持久化-一旦浏览器请求了一个页面,该页面的PHP代码就完成了,在这一点之后,服务器就不会持久化任何变量。

这真的有必要吗?您应该通过传递可以使用的相关数据来创建一个新实例。或者解释一下您想要实现什么
PHP
JavaScript
生活在两个不同的“环境”中,您可以将普通的旧值从一个世界传递到另一个世界(整数、字符串、布尔值、数组),但也不能传递对象引用。另外,对于PHP页面的每次调用,都会创建一个新的上下文,这意味着您不能在对
PHP
文件的两次调用之间共享对对象的引用(
JavaScript
与此无关)json序列化是我唯一想到的事情。。。是的,它是另一个具有相同价值的实例。我用来帮助人们理解的一个类比是,PHP处理器就像一个学生在做作业;“问题”是PHP文件/代码。“solution”是根据任何给定参数或“solve for X”生成的HTML。关键的一点是:学生一给出答案,他就扔掉了他写出来的所有草稿。(如果不这样做,对于一个大小合适的服务器来说,将是一个巨大的内存问题)这是一个很好的类比。我必须记住这一点!太好了,谢谢你的回答!为了简单起见,我将把所有与API相关的PHP代码移到处理程序中,并使用主页面通过AJAX发送命令。