Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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 IF语句:What';它更有效率吗?很多小的,还是几个大的?_Php_Mysql_Forms_Refactoring_Premature Optimization - Fatal编程技术网

Php IF语句:What';它更有效率吗?很多小的,还是几个大的?

Php IF语句:What';它更有效率吗?很多小的,还是几个大的?,php,mysql,forms,refactoring,premature-optimization,Php,Mysql,Forms,Refactoring,Premature Optimization,我有一个配方应用程序的表单,可以将配料插入数据库。如果尚未提交任何内容,则营养值显示为“0”。否则,它们将更新为post值 我的营养展示结构如下: Calories: <?php if ($ingredientArray[calorieKey] >= 1) echo $ingredientArray[calorieKey]; else echo 0; ?><br /> Protein: <?php if ($ingredientsArray

我有一个配方应用程序的表单,可以将配料插入数据库。如果尚未提交任何内容,则营养值显示为“0”。否则,它们将更新为post值

我的营养展示结构如下:

Calories:
  <?php if ($ingredientArray[calorieKey] >= 1)
  echo $ingredientArray[calorieKey];
    else echo 0; ?><br />
Protein:
  <?php if ($ingredientsArray[proteinKey] >= 1)
  echo $ingredientArray[proteinKey];
    else echo 0; ?><br />
卡路里:

蛋白质:
…并持续约20项。问题是:

只使用一条if/else语句来重构代码以显示两种不同的形式(动态和静态)是更有效还是更好
<?php echo $ingredientArray[calorieKey] >= 1 ? $ingredientArray[calorieKey] : 0 ?>
看起来好多了

别再担心了,注意代码的纯度。


看起来好多了


不要再担心了,要注意代码的纯度。

你需要的只是一个循环

$recipes = array('caloriesKey' => 'Calories', 'proteinKey' => 'Protein');
foreach($recipes as $key => $value) {
    echo $value . ($ingredientArray[$key] >= 1 ? $ingredientArray[$key] : 0) . '<br />';
}
$recipes=array('caloriesKey'=>'carries','proteinKey'=>'Protein');
foreach($key=>$value的配方){
回显$value。($IngRadientarray[$key]>=1?$IngRadientarray[$key]:0)。“
”; }
您需要的只是一个循环

$recipes = array('caloriesKey' => 'Calories', 'proteinKey' => 'Protein');
foreach($recipes as $key => $value) {
    echo $value . ($ingredientArray[$key] >= 1 ? $ingredientArray[$key] : 0) . '<br />';
}
$recipes=array('caloriesKey'=>'carries','proteinKey'=>'Protein');
foreach($key=>$value的配方){
回显$value。($IngRadientarray[$key]>=1?$IngRadientarray[$key]:0)。“
”; }
这里的效率根本不重要。除非您有数以百万计的重复if语句,否则处理时间实际上是零,与所有其他导致页面需要时间加载的事情相比(如从数据库获取数据、将输出发送到客户端以及客户端在其浏览器中呈现数据等)

因此,您应该专注于使代码尽可能可读和可维护


有时您应该牺牲可读性以获得更好的性能。。。但是,在您真正遇到性能问题之前,您离这一点还有很长的路要走。

这里的效率根本不重要。除非您有数以百万计的重复if语句,否则处理时间实际上是零,与所有其他导致页面需要时间加载的事情相比(如从数据库获取数据、将输出发送到客户端以及客户端在其浏览器中呈现数据等)

因此,您应该专注于使代码尽可能可读和可维护


有时您应该牺牲可读性以获得更好的性能。。。但是,在您真正遇到性能问题之前,您离这一点还有很长的路要走。

一段代码如何创建另一个变量,我们称之为
$displayArray
,它将保存您要打印的实际值

然后,在构建视图时,只需循环使用
$displayArray


这看起来可能没有什么大的区别,但它使我们更容易了解下一个家伙的情况,并且让您更容易更改,甚至更容易交换显示同一组信息的方式。

如何使用一块代码来创建另一个变量,让我们称之为
$displayArray
,哪个将保存要打印的实际值

然后,在构建视图时,只需循环使用
$displayArray


这看起来可能没有什么大的区别,但它使我们更容易了解下一个家伙的情况,而且它让您更容易改变,甚至更容易交换显示相同信息集的方式。

您可以向我们展示两个代码示例
小代码
大代码
,因为我无法理解,你不能告诉我,这是你的应用程序的瓶颈…不,这只是我用来解释我的整体问题的一个例子-几个大的块,或者许多小的块。你可以给我们展示你的代码的两个例子
小的一个
大的一个
,因为我无法理解你不能告诉我,这是你的应用程序的瓶颈…不,这只是我用来解释我的整体问题的一个例子-几个大模块,或者许多小模块。我的问题更多的是一般知识。我只是用上面的例子。而且,由于写高效代码所花的时间与写垃圾代码所花的时间一样多,我宁愿在有时间的时候学习如何写好代码。@elev8:写好代码通常比写垃圾代码快。:)即便如此,还是要关注代码的可读性和可维护性。不要过早地进行优化。@elev8:这不是我的观点:),尽管它可能会得到改进。这里的其他几个答案为提高可读性提供了一些建议。我特别喜欢@PeterSzymkowski使用的
?:运算符,而不是
if。。else
。我的问题更多的是一般知识。我只是用上面的例子。而且,由于写高效代码所花的时间与写垃圾代码所花的时间一样多,我宁愿在有时间的时候学习如何写好代码。@elev8:写好代码通常比写垃圾代码快。:)即便如此,还是要关注代码的可读性和可维护性。不要过早地进行优化。@elev8:这不是我的观点:),尽管它可能会得到改进。这里的其他几个答案为提高可读性提供了一些建议。我特别喜欢@PeterSzymkowski使用的
?:运算符,而不是
if。。else
。有人告诉我,使用foreach太多会减慢工作速度,不是吗?我在一些数据建模讲座上听到了这一点。但是thx,循环绝对是更好的方式!有人告诉我,使用foreach太多会减慢工作速度,不是吗?我在一些数据建模讲座上听到了这一点。但是thx,循环绝对是更好的方式!