2016-07-28 8 views
-1

Nach bestem meiner begrenzten Kenntnisse und Fähigkeiten mit PHP sollte der folgende Code arbeiten:Warum sind meine Variablen nicht definiert?

<?php 
////DISPLAY DATE OF NEXT COUNCIL MEETING//// 

$now = date('U'); //get current time 
$firstTues = strtotime("-1 month first Tuesday 4pm"); //get first Tuesday of the month 
$secondTues = strtotime("-1 month second Tuesday 5pm"); //get second Tuesday of the month 
$fourthTues = strtotime("-1 month fourth Tuesday 5pm"); //get forth Tuesday of the month 
$nextTues = strtotime("first Tuesday 4pm"); //get first Tuesday of next month 

function nextCouncilMeeting() { 

//If todays date less than 1st Tuesday at 11pm, display date for 1st Tuesday 4pm. 
if ($now < $firstTues) { 
    echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A', $firstTues); 
} 

//If todays date greater than 1st Tuesday 5pm and less than 2nd Tuesday 11pm, display date for 2nd Tuesday 5pm 
elseif ($now > $firstTues and $now < $secondTues) { 
    echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A', $secondTues); 
} 

//If todays date greater than 2nd Tuesday 5pm and less that 4th Tuesday 11pm, display date for 4th Tuesday 5pm 
elseif ($now > $secondTues and $now < $fourthTues) { 
    echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A', $fourthTues); 
} 

//If todays date greater than 4th Tuesday 
elseif ($now > $fourthTues){ 
    echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A', $nextTues); 
} 
else{ 
    echo "foobar"; 
} 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
<p id="test"> 
Current Time: <?php echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A',$now); echo " " . $now;?></br> 
First Tuesday: <?php echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A',$firstTues);echo " " . $firstTues;?></br> 
Second Tuesday: <?php echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A',$secondTues);echo " " . $secondTues;?></br> 
Fourth Tuesday: <?php echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A',$fourthTues);echo " " . $fourthTues;?></br> 
Next Month First Tuesday: <?php echo date('F j\<\s\u\p\>S\</\s\u\p\> \a\t g:i A',$nextTues);echo " " . $nextTues;?> 
</p> 
<h2>Next Council Meeting:</h2> 
<h1><?php nextCouncilMeeting()?></h1> 
</body> 
</html> 

Aber meine Variablen einen Fehler als undefiniert werfen, was ich falsch mache?

+1

Dank @ JonathanKuhn, ich dachte, es musste etwas dumm sein, setzen Sie Ihren Kommentar in eine Antwort, und ich gebe Ihnen einige Rep. Danke, dass du mich auf diese Seite gebracht hast. – ShemSeger

Antwort

1

Wenn Sie das Programm mit Fehlerberichterstattung ausführen und alle Fehler anzeigen, wird das Problem ein wenig deutlicher. Siehe this demo und die Fehler, die es wirft. Es handelt sich um ein Problem des Scopings. PHP hat einen funktionalen Gültigkeitsbereich, dh Variablen, die außerhalb von Funktionen definiert sind, sind in Funktionen nicht sichtbar. Sie sollten Ihren Wert entweder als Argument an die Funktion übergeben oder den schlechten Weg gehen und sie innerhalb Ihrer Funktion als global deklarieren.

Verwandte Themen