Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将用户输入的百分比转换为十进制以及如何输出_Php - Fatal编程技术网

Php 如何将用户输入的百分比转换为十进制以及如何输出

Php 如何将用户输入的百分比转换为十进制以及如何输出,php,Php,我是php新手,所以如果你对我的问题没有耐心,我理解没有必要粗鲁,请忽略我的帖子谢谢 我正在尝试制作一个表单,其中用户输入价格和折扣百分比,以便查看销售价格,这是我到目前为止得到的: <?php $ogprice= $_POST['price']; $discountper= $_POST['discount']; function discountCalculations () { $saleprice = $ogprice - ($ogprice * ($discountp

我是php新手,所以如果你对我的问题没有耐心,我理解没有必要粗鲁,请忽略我的帖子谢谢

我正在尝试制作一个表单,其中用户输入价格和折扣百分比,以便查看销售价格,这是我到目前为止得到的:

 <?php

$ogprice= $_POST['price'];
$discountper= $_POST['discount'];


function discountCalculations () {
  $saleprice = $ogprice - ($ogprice * ($discountper / 100));
  return $saleprice;
}

?>


<html>
 <title>Discount Calculator </title>
<body>

<h1>Discount Calculator</h1>
<form name="discountCalculator" action="functions.php" method="post">
 <input type="text" name="price"  placeholder="Original Price" ><br>
 <input type="text" name="discount" placeholder="Discount" ><br>
 <input type="submit" value="Calculate values"/>
 </form>


 <?php
  echo discountCalculations ();

 ?>
 </body>
 </html>

折扣计算器
折扣计算器



以下html在单独的文件中包含php函数。将您的php移动到一个单独的文件中,其中包含welcome_get.php(为您的流程重命名),并将此示例从w3schools修改为您的输入和输出

<!DOCTYPE HTML>
<html>  
<body>

<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">

名称:
电子邮件:


函数
discountCalculations()
返回所有输入的
0
,因为变量
$ogprice
$discountper
未初始化(它们在使用时实际上不存在)

PHP实际上是通过一个通知告诉您这一点:

PHP注意:未定义变量:折扣

但是,最有可能的是,您的PHP解释器(默认情况下)配置为忽略通知。
(这是错误的,但这是一个不同的主题。)


在PHP中有两个变量作用域:局部作用域(属于每个函数,只有该函数的代码才能访问它)和全局作用域。
与其他可以从任何地方访问全局范围的语言不同,在PHP中,默认情况下只能从全局代码访问全局范围。这是任何函数或类方法之外的代码

台词:

$ogprice = $_POST['price'];
$discountper = $_POST['discount'];
在全局范围内创建变量
$ogprice
$discountper
(因为它们在任何函数之外)。

默认情况下,函数
discountCalculations()
的代码无法查看全局变量
$ogprice
$discountper
。到达线路时:

$saleprice = $ogprice - ($ogprice * ($discountper / 100));
函数的本地范围中不存在变量
$ogprice
$discountper
。PHP显示了三条关于它们的通知(每使用一个未定义变量一条),并使用
NULL
。当在数值上下文中使用时,
NULL
被转换为数字
0
,计算结果相当于:

$saleprice = 0 - (0 * (0 / 100));
显然,结果总是
0


函数可以访问全局范围,但我不会告诉您如何访问。使用全局变量在任何语言中都是不好的做法

相反,我建议您让函数接受要使用的值作为参数:

function discountCalculations ($price, $discount) {
  $saleprice = $price - ($price * ($discount / 100));
  return $saleprice;
}
现在,
$price
$discount
是函数的参数。函数参数属于函数的本地范围,但它们使用用于调用函数的值进行初始化:

$ogprice = $_POST['price'];
$discountper = $_POST['discount'];

echo discountCalculations($ogprice, $discountper);
通过这种方式,您可以使用不同的值重用函数,并且它没有隐藏的依赖项。对于任何阅读代码的人来说,很明显函数需要两个值来完成它的工作


阅读PHP文档中的更多信息。
(然后忘记你在那页上读到的关于
global
关键字的任何内容,因为它对你的代码和编码风格弊大于利:-)

另外,请阅读PHP中的各种错误级别,并在
PHP.ini
或代码中使用以启用所有错误的报告



许多注意事项(如“未定义变量”或“未定义数组索引”)不仅仅是一些可以忽略的小问题,而是真正的编码错误。PHP仍然将它们作为次要的处理方式,但自8.0版以来,它将更加严肃和有效地处理它们。事实上,它们是真正的错误,但将它们报告为错误将破坏自PHP发布以来的过去20年中积累的大量编写糟糕的PHP代码。

除以100…它以字符串形式出现。在其上打上一个“0.”,然后将其强制转换为(浮点)或(双精度)。尝试使用php ex.number_格式的user number_format()($discountper,2,“,”);问题是关于一些不能正常工作的代码。代码在哪里?问题在于输入如何在php处理后输出。这段代码是一个输入php进程输出的例子。除了你的答案中没有PHP代码的痕迹之外:-我是说问题不在于代码,而是PHP需要在一个单独的文件中,这是一个la ajax体系结构,如果不将PHP与客户端分离,客户端就不能在服务器上显示“处理过的数据”。我更新了我的答案,使之更加清晰。除非使用ajax架构,否则不能在同一个文件中执行POST调用和HTML客户端。
$ogprice = $_POST['price'];
$discountper = $_POST['discount'];

echo discountCalculations($ogprice, $discountper);