Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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

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_Web Applications_Memory - Fatal编程技术网

PHP初学者:对象存储在哪里以及如何存储?

PHP初学者:对象存储在哪里以及如何存储?,php,oop,web-applications,memory,Php,Oop,Web Applications,Memory,在一个用PHP编写的应用程序(例如,社交网络)中,假设有10个用户(已登录)正在浏览该网站 在PHP代码中,创建了一个“user”对象来存储用户数据并将值传递给其他函数和类 问:当这10个用户转到user.php时,它有代码来创建“user”对象,这些对象是如何存储在php的内存中的?它们不冲突吗?每个“用户”对象都是唯一存储在内存中的,还是会被另一个对象覆盖 例如,用户a访问第一个对象,所以对象“user”包含他/她的数据,但当用户第二次访问时,内存中的“user”对象被覆盖,所以当第一个用户

在一个用PHP编写的应用程序(例如,社交网络)中,假设有10个用户(已登录)正在浏览该网站

在PHP代码中,创建了一个“user”对象来存储用户数据并将值传递给其他函数和类

问:当这10个用户转到user.php时,它有代码来创建“user”对象,这些对象是如何存储在php的内存中的?它们不冲突吗?每个“用户”对象都是唯一存储在内存中的,还是会被另一个对象覆盖

例如,用户a访问第一个对象,所以对象“user”包含他/她的数据,但当用户第二次访问时,内存中的“user”对象被覆盖,所以当第一个用户调用该对象时,它是检索到的第二个用户数据

或者,它是独一无二的吗


我想作为一个新手来理解PHP中的对象,请简单地解释一下,因为我找到的关于OOP的网页都没有解释这一点

您需要了解对象设计模式与php的关系,php本身就是一个很大的主题。有一本叫做“PHP对象、模式和实践”的优秀Apress书籍,它解释了一些更常见的模式以及您可能如何使用它们,这将是开始学习的好地方

您需要了解对象设计模式与php的关系,php本身就是一个很大的主题。有一本叫做“PHP对象、模式和实践”的优秀Apress书籍,它解释了一些更常见的模式以及您可能如何使用它们,这将是开始学习的好地方

用户信息都存储在数据库中,用户对象必须在每次加载页面时检索此数据

对象知道用户在看什么页面,因为他们的session_id存储在cookie中,在一个nut shell中是一个随机的id,它是给你的


使用会话id,您可以从数据库中检索正确的信息。

用户信息都存储在数据库中,用户对象必须在每次加载页面时检索此数据

对象知道用户在看什么页面,因为他们的session_id存储在cookie中,在一个nut shell中是一个随机的id,它是给你的


使用会话id,您可以从数据库中检索正确的信息。

了解这一点的最佳方法是在本地PC或Mac上安装php,然后创建一个php信息文件

<?php
phpinfo();
?>

。。。然后在浏览器中打开它…这将显示服务器上php和其他内容的所有设置

关于您问题的答案,对于新手来说,这是一个更高级的主题,但是php会话是保存用户信息的工作。它们通常在一小段时间内使用用户唯一的会话id,并动态分配内存或磁盘空间/平面文件或数据库(再次参见上面的设置)来存储相关数据


不幸的是,对于您来说,这些都不是“自动的”,您必须创建脚本来实现它,并以您想要的方式进行操作。在这个网站上提问是一个很好的开始…

了解这一点的最好方法是在本地PC或Mac上安装php,然后创建一个php信息文件

<?php
phpinfo();
?>

。。。然后在浏览器中打开它…这将显示服务器上php和其他内容的所有设置

关于您问题的答案,对于新手来说,这是一个更高级的主题,但是php会话是保存用户信息的工作。它们通常在一小段时间内使用用户唯一的会话id,并动态分配内存或磁盘空间/平面文件或数据库(再次参见上面的设置)来存储相关数据


不幸的是,对于您来说,这些都不是“自动的”,您必须创建脚本来实现它,并以您想要的方式进行操作。在这个网站上提问是一个很好的开始…

PHP是一个CGI应用程序,也就是说,它会在每次请求时启动和终止

  • 客户端向web服务器发送请求
  • 服务器启动PHP并将请求传递给它
  • PHP为脚本分配一块内存
  • 您的脚本正在执行,它创建的所有对象都存储在该内存块中
  • 您的脚本生成一些html,该html被发送到客户端
  • 内存被释放,PHP被停止
如果同时有10个客户端请求,将启动10个php副本,并使用10个独立的内存块。因此,不,来自不同请求的对象不会相互干扰


(注意:这个解释被刻意简化了,实际上有不同的php设置和持久性选项)。

php是一个CGI应用程序,这意味着它会在每个请求时启动和终止

  • 客户端向web服务器发送请求
  • 服务器启动PHP并将请求传递给它
  • PHP为脚本分配一块内存
  • 您的脚本正在执行,它创建的所有对象都存储在该内存块中
  • 您的脚本生成一些html,该html被发送到客户端
  • 内存被释放,PHP被停止
如果同时有10个客户端请求,将启动10个php副本,并使用10个独立的内存块。因此,不,来自不同请求的对象不会相互干扰

(注意:这个解释故意简化,实际上有不同的php设置和持久性选项)