从另一页上的公共函数获取值时出现问题



你好,请原谅我的问题,我对编程还很陌生,有点困惑。

我已经创建了一个公共函数,并试图在另一个页面上回显一个行计数,该行计数将用户名值传递给函数。我知道这是有效的,因为如果我在函数本身中打印结果,我会得到所需的结果。

这是我的页面中传递变量的代码,也是我试图回显结果的地方。。这是帖子的数量,$xcount

<?php $rez=$crud->postcount($pc); ?>

<div class="card mb-4">
<div class="card-header">Welcome <?php echo $_SESSION['user']?></div>
<div class="card-body">   
<div>  

<form action="" method="post">
<input type="submit" name="submit" id="submit" class="button" value="log out"/>
</form>
<image src = "<?php echo $_SESSION['user_image']?>" style="max-width:100px; max-height:100px<br>">
<p><?php  echo 'Posts created: '.$xcount;?></p>
<p>Contenthere!</a></p>
</div>
</div>
</div>

$pc已经定义,并且在函数中可用,如果我打印结果,它就会工作。然而,上面代码中$xcount的值没有打印出来,如果我在vscode中将其悬停在上面上面写着unset。我知道我一定是在做一些完全愚蠢的事情,所以请提前原谅我。

这是我另一页的代码。

public function postcount($pc){

$sql=("SELECT count(*) from `posts` WHERE `created_by` =:pc ");
$res=$this->db->prepare($sql);
$res->bindParam(':pc',$pc);
$res->execute();
$xcount=0;
$xcount= $res->fetchColumn();
print ' number of posts:' .$xcount;
return $res;
}

当您只想在HTML中使用$xcount值时,您应该使用变量$rez,其中函数返回值被分配给:

<?php echo 'Posts created: '.$rez;?>

您应该删除";打印";行,否则数字将显示在页面顶部。

问题是$xcount是在函数的范围内定义的。因此,它不能从外部访问,也不应该是这样,因为它是一种不干净的编程方式(在大多数情况下(。

最新更新