javascript - 让我的功能变得更好

标签 javascript php html performance

如何使这段代码更高效? Net-beans 说我的函数中有太多行。它还说,在我有 if 语句的地方,我应该引入一个新函数。有人可以帮助我创建一个好的函数并使我的函数更小

function dispalyEvent($weekNr, $week, $year){
    echo "<p>";
    $gendate = new DateTime();
    $gendate->setISODate($year,$week,$weekNr);

    $month = $gendate->format('m');
    $day =  $gendate->format('d');
    $event_query = mysql_query("SELECT * FROM calendar ORDER BY starttime"); 

    while($event = mysql_fetch_array($event_query)) { 
    $startYear = $event['startyear'];
    $startMonth = $event['startmonth'];
    $startDay = $event['startdate'];
    $endYear = $event['endyear'];
    $endMonth = $event['endmonth'];
    $endDay = $event['enddate'];

    $period = new DatePeriod(
            new DateTime($startYear.$startMonth.$startDay),
            new DateInterval('P1D'),
            new DateTime($endYear.$endMonth.$endDay +1)
    );

    $currentDate = $year."-".$month."-".$day;

        foreach ($period as $savedDate) {   

            if ($currentDate == $savedDate->format('Y-m-d')){
                buildEvent($event['ad'], $event['starttime'], $event['title'], $event['endtime'], $event['location'], $event['address'], $event['price'], $event['description']);
            }    
            if ($event['Approved'] == "Approved"){
                    buildEvent($event['ad'], $event['starttime'], $event['title'], $event['endtime'], $event['location'], $event['address'], $event['price'], $event['description']);
            }

        }

    }
    echo "</p>";
}
?>

最佳答案

除了切换到 MySQLiPDO出于安全和支持原因;您还可以清除大部分未使用的代码。

例如:您实际上不必为每个数组值创建新变量。

这就是我的想法:

<?php
function dispalyEvent($weekNr, $week, $year){
    echo "<p>";
    $currentDate = new DateTime()->setISODate($year,$week,$weekNr)->format('Y-m-d');

    $event_query = mysql_query("SELECT * FROM calendar ORDER BY starttime");         
    while($event = mysql_fetch_array($event_query)) { 
        $period = new DatePeriod(
            new DateTime($event['startyear'].$event['startmonth'].$event['startday']),
            new DateInterval('P1D'),
            new DateTime($event['endyear'].$event['endmonth'].(event['$endday']+1))
        );

        foreach ($period as $savedDate) {   
            if ($currentDate == $savedDate->format('Y-m-d') || $event['Approved'] == "Approved"){
                buildEvent($event['ad'], $event['starttime'], $event['title'], $event['endtime'], $event['location'], $event['address'], $event['price'], $event['description']);
            }
        }
    }
    echo "</p>";
}
?>

关于javascript - 让我的功能变得更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724827/

相关文章:

javascript - 动态 HTML 表无法访问 javascript/jQuery

html - iOS 7 Safari 强制使用粗体按钮

android - 如何在 Android WebView 中横向全屏播放视频?

javascript - jQuery 淡化/动画不透明度到不同的显示类型然后阻止

php - Yii Rest api 在数据库中插入数据

javascript - jQuery 和附加大量 HTML

PHP mySQL 查询返回单个字段作为 2 元素数组

php - 重写站点上的 URL 地址

javascript - 清除/重新初始化 Highchart

javascript - 添加表单标签时出现未定义错误