我对 PHP 还很陌生,并且继续学习。
我经常需要检索某个变量并访问其属性。
<?php
$id = $_REQUEST['id'];
$user_info = get_userdata($id);
echo('Username: ' . $user_info->user_login . "<br>");
echo('User level: ' . $user_info->user_level . "<br>");
echo('User ID: ' . $user_info->ID . "<br>");
echo('First Name: ' . $user_info->user_firstname . "<br>");
echo('Family Name: ' . $user_info->user_lastname . "<br>");
echo('user_registered: ' . $user_info->user_registered . "<br>");
?>
我宁愿检索一次$user_info = get_userdata($id);
然后在需要的时候使用它
在同一个文件但在不同的地方<?php?>
blocks
<?php
$id = $_REQUEST['id'];
$user_info = get_userdata($id);
?>
<some HTML>
<?php echo $user_info->user_login; ?>
<some HTML>
<?php echo $user_info->user_login; ?>
但我怀疑$user_info
不能在块之间共享,因为它不是全局的。
通常的做法是什么?
您在 php 代码块中赋予了太多含义。
这不是全球性的事情。
这些块属于同一个 PHP 脚本。这只是输出 HTML 的一种巧妙方式,仅此而已。你可以用回显 HTML 来代替它,不会有丝毫差异。
整个 PHP 脚本立即执行,而不是迭代执行,正如您可能想象的那样,认为 PHP 块在服务器端执行,然后 HTML 块在客户端执行,然后返回到服务器端的 PHP 块,等等在。那是错误的。
整个 PHP 脚本在服务器端执行,在浏览器中生成纯 HTML,然后死了。
这就是为什么您不能通过将后者放在前者之后的方式在同一个 PHP 脚本中同时对 HTML 表单及其处理程序进行编程。你必须再次调用服务器使处理程序工作。这将完全是另一个调用,同一脚本的另一个实例,对之前的通话一无所知它已经死了很久了。这是您必须了解的关于 PHP 的另一件事:
PHP 脚本的执行是原子的。它不像在浏览器中不断运行的桌面应用程序,甚至不像与桌面应用程序持续连接的守护程序。它更像是一个命令行实用程序 - 完成其工作并退出。它离散地运行:
- 浏览器进行调用
- PHP 唤醒,创建 HTML 页面,并将其发送到浏览器and dies
- 浏览器呈现该 HTML 并将其显示给用户。
- 用户点击链接
- 浏览器进行调用
-
另一个 PHP 实例,对之前的调用一无所知,被唤醒等等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)