如何用php编写好的代码


How to write good code in php?

我必须用php编写一个货币转换器,它可以转换以下货币:

EUR -> USD
EUR -> GBP

代码必须具有良好的结构和清晰。我的代码如下所示:

在 index.php 中,我编写 html 输入如下:

                <select name="fT">
                    <option value="euro-usd@EUR-USD">EUR -> USD</option>
                    <option value="euro-gbp@EUR-GBP">EUR -> GBP</option>
                <select>
                   <input type="text" name="amount" id="amount" value="">
                   <input type="submit"/>

转换.php如下所示:

<?php
include ("functions.php");
$fT = $_POST['fT'];
$amount = $_POST['amount'];
$valueAndText = explode('@', $fromTo);
$fromTo = $valueAndText[0];
$text = explode('-', $valueAndText[1]);
$from = $text[0];
$to = $text[1];
echo convertCurr($fT, $amount) ;
?>

改进此代码的任何建议?

尝试从我们的项目中删除所有硬代码。

将它们移动到配置文件并包含在项目中。这样您就可以随时更改它们,而无需对涂层部分进行任何修改。

使用有意义的完整变量名称,不要使它们太大。

尝试添加一些小注释,以解释代码或更轻松地使用代码 由另一个人

我们必须看的主要内容是

使代码可读

您可以将股价放在配置文件中,每次更改都可以替换该文件。我正在考虑您确实希望将数据存储在文件中而不是数据库中。

配置文件可能如下所示:

<?php
 $config['usd-eur']=1.2;
 $config['usd-gbp']=0.5;
?>

将此文件命名为 config.php,并将其与脚本一起放置,然后包含它。

<?php
 require_once('config.php');
?>

关于 $_POST 变量,您需要转义它们以保护自己免受 MySQL 和 XSS 攻击。

您可以使用此功能:

<?php
function filter($data) {
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
    $data = stripslashes($data);
$data = mysql_real_escape_string($data);
return $data;
}?>

然后遍历你的 POST 变量:

foreach($_POST as $key => $value) {
 $mydata[$key] = filter($value);
}

再一次,您为检测$fromto变量的选择而执行的处理量。

为什么不这样做:

<select name="fromTo">
  <option value="1">(EUR) ---> (USD)</option>
  <option value="2">(EUR) ---> (GBP)</option>
</select>

然后执行切换案例语句

<?php
 switch($mydata['fromTo']){
  case 1:
   $from='euro';
   $to='usd';
   break;
  case 2:
   $from='euro';
   $to='gbp';
   break;
 }

希望有帮助。