函数声明两次错误

时间:2018-04-19 19:06:07

标签: php

我试图理解功能。我创建了一个函数,我想多次调用它。首先,我进行SQL查询,将其保存在数组中并将其转换为秒。接下来的事情是做一个新的SQL查询(这完全可以完成他的工作)。当我尝试将其转换为秒时出错,我收到此错误:

  

无法重新声明myfunction()(之前在C:\ xampp \ htdocs \ webpagina中声明遇到输入 - kopie \ try.php:103)在C:\ xampp \ htdocs \ webpagina中遇到输入 - kopie \ try.php在线103。

有人可以帮忙吗?

<?php
$servername = "localhost"; //inloggegevens database
$username = "root";
$password = "";
$dbname = "test";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {


// check of er nog genoeg tijd over is en vergelijk met ingevoerde tijd

    $sql1 = "SELECT tijd FROM gespeeldeTijd";   // get data with sql query
    sqlquery($sql1, $conn, "tijd");

    if ($stateLoop == "1") {
        convertArrayToMHS($myArray);
        hsmToSeconds($sumUren, $sumMinuten, $sumSeconden);
        print_r($seconden);
        $myArray = [];
        $stateLoop == "0";

        $sql2 = "SELECT tijd FROM toegelatentijd WHERE naam = 'thomas'";   // get data with sql query
        sqlquery($sql2, $conn, "tijd");

        if ($stateLoop == "1") {
            convertArrayToMHS($myArray);
            hsmToSeconds($sumUren, $sumMinuten, $sumSeconden);
            print_r($seconden);
            $myArray = [];
            $stateLoop == "0";
        }
    } else {

    }


// check of er nog een tijd loopt
    $sql1 = "SELECT stopTijd FROM gespeeldeTijd ORDER BY ID DESC LIMIT 1";   // get data with sql query
    sqlquery($sql1, $conn, "stopTijd");

    if ($stateLoop == "1") {
        /* print_r($myArray); */
        // get time now an compare these to the time asked in sql 1, if time is still not reached get time and display, if time is reached show input field
    } else {

    }
}

function sqlquery($sql, $conn, $naamtabel) {
    global $myArray;
    global $stateLoop;

    $stateLoop = "0";

    $result = $conn->query($sql);

    if ($result->num_rows > 0) {  // do a while loop to fetch all data to an array
        // output data of each row
        while ($row = $result->fetch_assoc()) {
            $myArray[] = $row["$naamtabel"]; //alle data van kolom "tijd" in een array
            /* print_r($myArray); */
        }

        $stateLoop = "1";
    } else { // if there are no results
        echo "0 results";
    }
}

function convertArrayToMHS($myArray) {

    global $sumUren;
    global $sumMinuten;
    global $sumSeconden;
    global $array_product;

    function myfunction($value) {  //function to do to evry part of the array
        global $array_product;
        $array_product[] = explode(":", $value);   // split the time in hours, minutes, seconds
        return $array_product; //bevat alle gesplitte waardes
    }

    array_walk($myArray, "myfunction"); // walk trough evry part of the array en voer er "myfunction" op uit
    /* print_r($array_product); */


    /* print_r($totalElements); */

    $uren = array_column($array_product, '0');  // zet  alle waarden in een aparte array met 0  (uren)
    $minuten = array_column($array_product, '1');  // zet  alle waarden in een aparte array met 0  (uren)
    $seconden = array_column($array_product, '2');  // zet  alle waarden in een aparte array met 0  (uren)


    $sumUren = 0;
    $sumMinuten = 0;
    $sumSeconden = 0;

    foreach ($uren as $uren) { //tel alle uren van de sql database bijeen
        $sumUren = $sumUren + $uren;
    }

    foreach ($minuten as $minuten) { //tel alle minuten van de sql database bijeen
        $sumMinuten = $sumMinuten + $minuten;
    }

    foreach ($seconden as $seconden) { //tel alle seconden van de sql database bijeen
        $sumSeconden = $sumSeconden + $seconden;
    }
}

function hsmToSeconds($sumUren, $sumMinuten, $sumSeconden) {
    global $seconden;
    $seconden = ($sumUren * 3600) + ($sumMinuten * 60) + $sumSeconden;   //uren/minuten/seconden omzetten naar seconden
}
?>

1 个答案:

答案 0 :(得分:0)

您拨打convertArrayToMHS两次,每次致电myfunction

将myFunction放在convertArrayToMHS之外。