PHP 代码块之间的变量范围
P粉403821740
P粉403821740 2023-10-22 14:41:03
[PHP讨论组]

我(仍然)是 PHP 新手,并不断学习。

我经常需要检索某个变量并访问其属性。

user_login . "
"); echo('User level: ' . $user_info->user_level . "
"); echo('User ID: ' . $user_info->ID . "
"); echo('First Name: ' . $user_info->user_firstname . "
"); echo('Family Name: ' . $user_info->user_lastname . "
"); echo('user_registered: ' . $user_info->user_registered . "
"); ?>

我更愿意检索一次 $user_info = get_userdata($id); ,然后在需要时使用它 在同一个文件中,但在不同的





user_login; ?>



user_login; ?>

但我怀疑 $user_info 不能在块之间共享,因为它不是全局的。 通常的做法是什么?

P粉403821740
P粉403821740

全部回复(1)
P粉262926195

您在 php 代码块中赋予了太多含义。
这不是全球性的事情。
这些块属于同一个 PHP 脚本。这只是输出 HTML 的一种巧妙方式,仅此而已。您可以用回显 HTML 来替换它,不会有丝毫差异。

整个 PHP 脚本立即执行,而不是迭代执行,正如您可能想象的那样,认为 PHP 块在服务器端执行,然后 HTML 块在客户端执行,然后返回到服务器上的 PHP 块边等。这是错误的。
整个 PHP 脚本在服务器端执行,在浏览器中生成纯 HTML,然后消失。

这就是为什么您不能在同一个 PHP 脚本中同时对 HTML 表单及其处理程序进行编程,只需将后者放在前者之后。您必须再次调用服务器才能使处理程序正常工作。这将完全是另一个调用,同一脚本的另一个实例,对先前的调用一无所知,而该调用早已死亡。这是您必须了解的有关 PHP 的另一件事:

PHP 脚本执行是原子的。它不像在浏览器中不断运行的桌面应用程序,甚至不像与桌面应用程序持续连接的守护程序。它更像是一个命令行实用程序 - 完成其工作并退出。它独立运行:

  1. 浏览器进行调用
  2. PHP 唤醒,创建 HTML 页面,将其发送到浏览器然后终止
  3. 浏览器呈现该 HTML 并将其显示给用户。
  4. 用户点击链接
  5. 浏览器进行调用
  6. 另一个 PHP 实例,对之前的调用一无所知,被唤醒等等
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号