Design · PHP · Server

Design · PHP · Server

WordPress · Drupal · PrestaShop

  • Startseite
  • WordPress
  • PHP / Datenbanken
  • Ubuntu
  • Prestashop
  • Grafik
  • Glossar

short_open_tag in der .htaccess Datei aktivieren oder deaktivieren

14. Juni 2018 Leave a Comment

Wenn kein Zugriff auf die Datei php.ini besteht, lassen sich die Werte für short_open_tag auch über die .htaccess Datei ändern.

short_open_tag ausschalten:

php_flag short_open_tag 0

short_open_tag aktivieren:

php_flag short_open_tag 1

Filed Under: PHP / Datenbanken

PHP: Loops

2. November 2013 Leave a Comment

Um Aufgaben auszuführen, die sich öfter wiederholen, benutzt man einen sogenannten Loop. Die einfachste Form eines Loops ist der While Loop. Der While Loop besteht aus dem Keyword while, dem die Bedingung in Klammern folgt und der auszuführende Code in geschweiften Klammern.

while (condition) {

// auszuführender Code

}

 

Solange die Bedingung wahr (true) bleibt, wird der Code in den geschweiften Klammern ausgeführt. Der Loop wird beendet, sobald die Bedingung nicht mehr wahr ist (false).

Einfaches Beispiel für einen While Loop:

<?php
     // Zähler
     $i = 1;

     while ($i <= 10) {
               echo $i; . ', ';
               // Erhöhung des Zählers
               $i++;
}

Das Ergebnis ist  in diesem Fall die Ausgabe von: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Sobald der Zähler den Wert 11 hat, wird der Loop nicht mehr ausgeführt, da die Bedingung $i >= 10 nicht mehr wahr ist.

$i ist eine der seltenen Gelegenheiten, bei denen eine Variable nur aus einem Zeichen besteht. Die Bezeichnung $i hat sich als Variable für einen Zähler als allgemeiner Standard durchgesetzt. Benötigt man mehr als einen Zähler, werden weitere Zähler gewöhnlich als $j bzw. $k bezeichnet.

Do … While Loop

Sehr häufig findet man auch einen Do … While Loop. In einem Do … While Loop kommt die Bedingung nach dem Block mit dem Code, der ausgeführt werden soll. Der Do … While Loop beginnt mit dem Keyword do. Danach folgt in geschweiften Klammern der Code, der ausgeführt werden soll, anschließend die Bedingung in runden Klammern. Am Ende steht ein Semikolon.

do {
     // Code, der ausgeführt werden soll
   } while (condition) ;

 

Dadurch, dass die Bedingung ganz am Ende steht, wird der Do … While Loop immer mindestens einmal ausgeführt, auch wenn die Bedingung falsch (false) ist.

Beispiel:

<?php
$i = 50;
do {
     echo $i ;
     $i++;
} while ($1 <= 10);

Als Ergebnis würde $i einmal ausgegeben (50). Weiter passiert nichts, da die nachfolgende Bedingung falsch ist.

Bei einem While und auch bei einem Do … While Loop besteht das Risiko, dass man eine Bedingung setzt, die immer wahr ist und in einem niemals endenden Loop endet (z.B. wenn man vergisst, den Zähler zu erhöhen).

For Loop

Bei einem For Loop ist das Risiko, eine unendlichen Loop zu erhalten, geringer. Die Basis-Syntax sieht wie folgt aus:

for (initialize; condition; increment; ) {

         // Code, der ausgeführt werden soll

}

Der Loop wird durch 3 Ausdrücke kontrolliert, die in Klammern gesetzt dem Keyword for folgen. Der erste Ausdruck wird ausgeführt, bevor der Loop startet. Normalerweise wird dies zum Initialisieren eines Zählers benutzt. Der zweite Ausdruck legt die Bedingung fest, die bestimmt, wie lange der Loop laufen soll. Der dritte Ausdruck wird nach jeder Wiederholung des Loops ausgeführt. Normalerweise wird dies benutzt, um den Zähler zu erhöhen.

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
    <body>
       <h1>Zutaten</h1>
           <ul>
               <?php
                     $zutaten = array('Mehl', 'Milch', 'Zucker', 'Eier', 'Salz');
                     for ($i = 0; $i < count($zutaten); $i++) {
                              echo '<li>' . $zutaten[$i] . '</li>';
               }
               ?>
           </ul>
    </body>
</html>

Das Ergebnis im Browser ist:

Zutaten

  • Mehl
  • Milch
  • Zucker
  • Eier
  • Salz

Es kann vorkommen, dass man bei einem bestimmten Element des Arrays den Code nicht ausführen will. In diesem Fall kann man ein if-Statement mit dem Befehl continue einfügen:

<?php
      $zutaten = array('Mehl', 'Milch', 'Zucker', 'Eier', 'Salz');

      for ($i = 0; $i < count($zutaten); $i++) {
          if ($i == 2) {
                           continue;
          }
          echo '<li>' . $zutaten[$i] . '</li>';
}
?>

In diesem Fall wird das dritte Element (Zucker) bei der Auflistung ausgelassen (da ein Array mit der Zahl 0 beginnt, entspricht ein Index mit der Zahl 2 dem dritten Element des Arrays).

Wenn der Loop nach einem bestimmten Element stoppen soll, benutzt man den break Befehl.

<?php
        $zutaten = array('Mehl', 'Milch', 'Zucker', 'Eier', 'Salz');

        for ($i = 0; $i < count($zutaten); $i++) {
             echo '<li>' . $zutaten[$i] . '</li>';
             if ($zutaten[$i] == 'Zucker') {
             break;
}

 

In diesem Fall wird der Loop, sobald das Element Zucker ausgegeben ist, gestoppt. Die Liste endet also mit dem Element Zucker.

Zutaten

  • Mehl
  • Milch
  • Zucker

 

Von allen Loops ist der For Loop sicherlich der nützlichste. Der Do … While Loop ist eher speziell, da er immer einmal ausgeführt wird, auch wenn die Bedingung falsch ist. Der While Loop ist zwar sehr einfach, beinhaltet allerdings das Risiko einen unendlichen Loop zu schaffen, wenn man nicht aufpasst und niemals der Fall eintritt, dass die Bedingung falsch (false) ist.

Filed Under: PHP / Datenbanken Tagged With: Loops

PHP: Switch Statements und der Ternary Operator

1. November 2013 Leave a Comment

Switch Statements

Alternativ zum Conditional Statement mit if und else kann man auch ein Switch Statement benutzen. Die Basisstruktur eines Switch Statements besteht aus dem Keyword switch gefolgt von einem Paar Klammern, das den Wert enthält, der getestet werden soll. Es folgen geschweifte Klammern, die den eigentlichen Inhalt des Switch Statements enthalten. Hier steht zunächst das Keyword case gefolgt von dem Wert und einem Doppelpunkt. Wenn der im Switch Statement genannte Fall eintritt, dann wird der nachfolgende Code ausgeführt.

switch($var) {
              case value1: do this;
             }

Es wird hiermit das Gleiche erreicht wie bei einem Conditional Statement mit if, bei dem getestet wird, ob $var dem Wert value1 entspricht.
In einem Switch Statement können auch mehrere Werte hintereinander getestet werden, wobei jeder Fall mit einem break; abgeschlossen wird.

switch($var) {
              case value1:
              mache dies;
              break;

              case value2:
              mache was anderes;
              break;

              default:
              mache als Standardhandlung das;
              }

Am Ende kann eine default Option eingefügt werden, die ausgeführt wird, wenn alle anderen genannten Fälle nicht zutreffen. Es können auch mehrere Werte gleichzeitig einer Handlung zugeordnet werden:

switch($var) {
               case value1:
               mache dies;
               break;

               case value2:
               case value3:
               mache was anderes;
               break;

               default:
               mache als Standardhandlung das;
             }

Dieses Switch Statement erfüllt exakt die gleiche Funktion wie ein Conditional Statement mit elseif

if($var == value1) {
                     mache dies;
                   } elseif($var == value1 || value2) {
                     mache was anderes;
                   } else {
                     mache als Standardhandlung das;
                   }

Bei vielen Optionen kann das Switch Statement übersichtlicher und leichter zu handhaben sein, ansonsten gibt es keine speziellen Vor- oder Nachteile, weshalb man das eine dem anderen vorziehen sollte.

Benutzt man das Switch Statement, so muss man aufpassen, dass man nicht vergisst den break Befehl nach jedem Fall einzufügen. Vergisst man den break Befehl, so wird auch der nachfolgende Code ausgeführt, selbst wenn die nachfolgende Bedingung nicht erfüllt ist, da ohne den break Befehl die nachfolgenden Befehle auch noch für die vorherige Bedingung gelten, die wahr war. Es wird bei Vergessen des break Befehls der gesamte Code bis zum Ende oder bis zum nächsten break Befehl ausgeführt.

Der Ternary Operator

Der Ternary Operator weist der Variablen verschiedene Werte zu, je nachdem ob eine Bedingung wahr oder falsch ist. Die Struktur sieht wie folgt aus:

$var = (condition) ? value if true : value if false;

Der Variablen wird mit dem Gleichheitszeichen eine Bedingung zugewiesen. Es folgt ein Fragezeichen und dann der Wert, für den Fall, dass die Bedingung wahr (true) ist. Danach folgt ein Doppelpunkt und der Wert, falls die Bedingung falsch (false) ist.
Der Ternary Operator ist ebenfalls eine Alternative zum if / else Statment. Das oben genannte Strukturbeispiel würde in einem if / else Statement wie folgt aussehen:

if(condition) {
                $var = value if true
              } else {
                $var = value if false
              }

Beispiel für den Ternary Operator:

$language = 'englisch';
$gruss = ($language == 'deutsch') ? 'Guten Morgen' : 'Good Morning' ;
echo $gruss;

Ausgegeben wird in obigem Beispiel Good Morning

Filed Under: PHP / Datenbanken Tagged With: Switch Statements, Ternary Operator

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • 5
  • Next Page »
Anzeige

Themen

Apache Boolean values Boolesche Werte BuddyPress chmod Code Snippets Concatenation Operator Custom Post Types Datenbank Email Enfold fail2ban genesis Grid View htaccess i-mscp Indesign Layout Builder LibreOffice List View Mitgliederbereich MySQL PHP PHP Anfänger PHP Variablen Plugins Prestashop Prestashop 1.5 Prestashop 1.6 Prestashop Module Registrierung RSS Feed s2member Schreibrechte Server Shell ssl Strings Tipps Windows Windows 10 Windows 11 WooCommerce WooCommerce Sortierung WordPress
Anzeige

Letzte Kommentare

  • Martin bei CSS: Automatische Silbentrennung in einzelnen Wörtern verhindern
  • Martin bei CSS: Automatische Silbentrennung in einzelnen Wörtern verhindern
  • Klaus bei Woocommerce: Shop Seiten neu generieren
  • Thomas bei WordPress: Einzelne Kategorien aus dem RSS Feed ausschließen
  • Bernhard bei CSS: Automatische Silbentrennung in einzelnen Wörtern verhindern

Informationen

  • Kontakt
  • Datenschutzerklärung
  • Impressum
  • Cookie-Richtlinie (EU)
  • Kontakt
  • Datenschutzerklärung
  • Impressum
  • Cookie-Richtlinie (EU)
Anzeige
Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Anbieter verwalten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}