2009-07-03 20 views
4

Ja, es ist eine einfache Frage, aber ich kann keine Antwort finden durch die PHP-Dokumentation oder Google. (Ich lerne gerade PHP ....)Einfache PHP-Frage

Wenn dies funktioniert:

<?php $d=date("D"); if ($d="Mon") { ?>echo this text on Monday<?php endwhile; ?><?php } else { ?><?php } ?> 

Warum funktioniert das nicht?

<?php $d=date("D"); if ($d="Mon,Tue") { ?>echo this text on Monday and Tuesday<?php endwhile; ?><?php } else { ?><?php } ?> 

Benötige ich verschiedene Trennzeichen zwischen Mon und Tue? Ich habe es versucht || und & & ....

Danke, Mark

Antwort

3

Versuch:

<?php $d=date("D"); if (in_array($d,array('Mon','Tue'))) { ?>echo this text on Monday and Tuesday<?php endwhile; ?><?php } else { ?><?php } ?> 
+0

Funktioniert gut - Danke, Mark – markratledge

7

Sie gehen davon aus, dass date("D") mehr als einen Wert zurückgeben. Es wird nur den aktuellen Tag zurückgeben. Stattdessen verwenden:

<?php $d=date("D"); if (in_array($d, array("Mon","Tue"))) { ?>echo this text on Monday and Tuesday<?php endwhile; ?><?php } else { ?><?php } ?> 
+0

Schnell kleinere Frage. Irgendein Unterschied zwischen "" und "" in PHP? Auch gute Verwendung von Arrays. : P – Zack

+0

Doppelt zitierte Strings ("") interpolieren $ Variablen, während einzelne zitierte ('') nicht. In diesem Beispiel können alle Zeichenfolgen in einfachen Anführungszeichen stehen und möglicherweise sogar an Leistung gewinnen. Du weißt nie mit PHP. – spoulson

+0

Brauchen Sie einfach eine andere) nach der Array-Liste, und es funktioniert auch mit einfachen Anführungszeichen. Danke, Mark – markratledge

4

Der String $d entweder wird sich enthalten „Mo“ oder „Di“, nie „Mo, Di“. Sie können Zeichenfolgen nicht auf diese Weise vergleichen. Sie müssen einen Ausdruck wie folgt verwenden:

if ($d == "Mon" || $d == "Tue") { 
0

Vielleicht:

if ($d == "Mon" || $d == "Tue") { 

auch, PHP zwei Operatoren für Gleichheit.

== und ===

8

Sie eine Zuordnung von $d durchzuführen, wenn Sie ($d="Mon") sagen. Was Sie wollen, ist der Vergleichsoperator (==):

if ($d == "Mon" || $d == "Tue") 
0

Wenn Sie noch Zeichenfolge mit dem Wert 'Mo, Di', dann können Sie prüfen,

if($d=='Mon,Tue') 

Es gibt keine Chance dafür, also müssen Sie OR-Bedingung verwenden.
dh

if($d=='Mon' || $d=='Tue') 
0

diesen Code Versuchen Sie, die mehr Benutzer lesbar ist:

<?php $d=date("D"); 
$days=array("Mon,Tue"); 
if ($d="Mon,Tue") if(in_array($a,$days)) { ?>echo this text on Monday and Tuesday<?php endwhile; ?><?php } else { ?><?php } ?>