我查看了其他 Stack Overflow 问题,但没有一个解决了该问题。以下类定义变量,然后在 HTML 代码中调用该变量。
我对另一个 PHP 页面使用了相同的方法,它运行良好。出于某种原因,它在此页面上不起作用。我已经多次这样做了,没有任何问题。PhpStorm说变量$user “可能尚未定义”,但我知道它是。我怎样才能解决这个问题?
我试过在页面顶部设置变量 global 没有运气。我尝试在 if(isset()) 之后设置变量 global 并且仍然不起作用。这是我的 PHP 代码:
<?php
session_start();
require_once 'includes/class.user.php';
$user_edit = new USER();
if(!$user_edit->is_logged_in())
{
$user_edit->redirect('index.php');
}
if(isset($_GET['user_id'])) {
$tid = $_GET['user_id'];
$stmt = $user_edit->runQuery("SELECT * FROM users WHERE user_id = :id");
$stmt->execute(array(':id' => $tid));
$user = $stmt->fetch(PDO::FETCH_ASSOC);
}
?>
<?php include('header.php'); ?>
<div class="container side-collapse-container">
<p><?php if (!empty($user['username'])) {
echo $user['username'];
} ?></p>
</div>
<?php include('footer.php'); ?>
Run Code Online (Sandbox Code Playgroud)
这是使用 XAMPP 运行后在浏览器中显示的内容
注意:未定义变量:user in C:\Users\USER\PhpstormProjects\site1\view_user.php 第 22 行
小智 5
PhpStorm 说 $user 变量可能未定义,因为它当前设置在“if”块中。如果您希望 PhpStorm msg 消失,请将“if”上方的 $user 定义为数组。
$user = [];
if (isset($_GET['user_id'])) {
$tid = $_GET['user_id'];
$stmt = $user_edit->runQuery("SELECT * FROM users WHERE user_id = :id");
$stmt->execute(array(':id' => $tid));
$user = $stmt->fetch(PDO::FETCH_ASSOC);
}
Run Code Online (Sandbox Code Playgroud)
如果用户名未显示在页面上,则查询返回为空 (false) 或索引“用户名”不正确。
当然,要填充 $user,user_id 需要在查询字符串中。
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |