如何在PHP中编写好的代码?

时间:2012-08-13 11:07:52

标签: php optimization

我必须在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"/>

convert.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) ;
?>

有关改进此代码的任何建议吗?

2 个答案:

答案 0 :(得分:2)

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

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

使用含义全变量名称并且不要使它们太大。

尝试添加小注释来解释代码或更轻松地使代码更容易由另一个人<登记/>
我们要看的主要内容是:
使代码可读

答案 1 :(得分:1)

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

配置文件可能如下所示:

<?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>

然后执行Switch-Case语句

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

希望有所帮助。