我希望$ userhp1打印到屏幕,并且还保存到分配的sql表。这很好,但它们都返回不同的结果。反正有没有让它们返回相同的值?
ob_start();
vitality(); //runs vitality function
$uservit = ob_get_contents(); // stores result on $uservit
ob_end_clean();
echo "-Vitality:";
echo "$uservit<br />";// Prints vitality
$userhp1 = $uservit * 2.8; // multiplys vitality too create HP
$userhp2 = $userhp1;
echo "-HP From vit:";
echo "$userhp2"; // prints hp
$con=mysqli_connect("localhost", "***", "***", "***");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"UPDATE users SET hp=$userhp2
WHERE id='1'");
mysqli_close($con);
答案 0 :(得分:1)
您的代码有两个问题:
ob_start();
vitality();
$uservit = ob_get_contents();
在这里,您似乎正在使用ob_*
函数系列从函数返回值。 ob_get_contents
将返回一个字符串,你似乎对此并不高兴,因为你将它用作整数:
$userhp1 = $uservit * 2.8;
您只需return
该函数的值即可。输出缓冲用于其他事情。
其次,您宣布$userhp2 = $userhp1;
,然后您不要同时修改$userhp1
和$userhp2
。为什么不在$userhp1
上使用$userhp2
而不是首先设置后者?