2017-03-11 4 views
1

ich php variable $i zu einem Funktionsnamen mit Parameternwie variabel ist Namen in PHP funktionieren

for($i=1; $i<=50; $i++) { 
$currentMonth = date("F"); 

/* draws a calendar */ 
function draw_calendar($month,$year,$per_day_chu){ 
    $currentDayOfMonth = date("j"); 
    /* draw table */ 
    $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">'; 

    /* table headings */ 
    $headings = array('Su','Mo','Tu','Wed','Th','Fr','Sa'); 
    $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>'; 

    /* days and weeks vars now ... */ 
    $running_day = date('w',mktime(0,0,0,$month,1,$year)); 
    $days_in_month = date('t',mktime(0,0,0,$month,1,$year)); 
    $days_in_this_week = 1; 
    $day_counter = 0; 
    $dates_array = array(); 
    /* row for week one */ 
    $calendar.= '<tr class="calendar-row">'; 
    return $calendar; 
} 

echo $currentMonth.", ".date("Y"); 
echo draw_calendar(date("m"), date("Y"), $per_day_chu); 
} 

im obigen Code Ich mag dafür die Funktionsnamen als function draw_calendar$i($month,$year,$per_day_chu){ und Funktionsaufruf als echo draw_calendar(date("m"), date("Y"), $per_day_chu); aufnehmen möchte

Gibt es eine Möglichkeit, dies zu erreichen. Ich habe keine Ahnung, wie ich das einrichten soll. Vielen Dank.

Antwort

2

Ich glaube, Sie müssen dies tatsächlich tun: -

for($i=1; $i<=50; $i++) { 
    $currentMonth = date("F"); 
    echo $currentMonth.", ".date("Y"); 
    echo draw_calendar(date("m"), date("Y"), $per_day_chu); 
} 

function draw_calendar($month,$year,$per_day_chu){ 
    $currentDayOfMonth = date("j"); 

    $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">'; 


    $headings = array('Su','Mo','Tu','Wed','Th','Fr','Sa'); 
    $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>'; 


    $running_day = date('w',mktime(0,0,0,$month,1,$year)); 
    $days_in_month = date('t',mktime(0,0,0,$month,1,$year)); 
    $days_in_this_week = 1; 
    $day_counter = 0; 
    $dates_array = array(); 

    $calendar.= '<tr class="calendar-row">'; 
    return $calendar; 
} 

Hinweis: -

Funktionscode Looping falsche Praxis ist.

Überprüfen Sie auch, dass $per_day_chu jedes Mal innerhalb Ihrer for Schleife verfügbar ist und jedes Mal einen korrekten Wert haben.

3

Sie sollten Ihre Funktion außerhalb Ihrer Schleife platzieren und dann den Anruf in Ihre Schleife machen.