Variablen werden immer mit einem Dollar-Zeichen markiert. PHP ist Typen-dynamisch (im Gegensatz zu JAVA), weshalb keine Angabe des Datentypen erfolgt. Die Art des Datentyps ergibt sich aufgrund der Zuweisung eines Wertes.
<?php
$myInt = 0; // int
$myFloat = 0.2; // float
$myString = '5'; // string
$myArray = []; // array
$myArray = true; // bool
````
## Dynamisch deklarieren
In PHP lässt sich etwas total verrücktes machen, was zum Beispiel in JAVA undenkbar wäre.
Wir können Variablen nämlich auch dynamisch während der Laufzeit deklarieren:
````php
session->set('user',$userSession);
$this->security->denyAccessUntilGranted('ROLE_USER');
}
$categoryRepository = $this->getRepository(Category::class);
$categories = $categoryRepository->findAllAndParentAsArray();
$this->view->render('base/index.html.twig', [
'flash' => $myString = '5'; // string
$0categories,
]);
}
}
Schauen wir uns das Template (Auszug) an:
<table class="tablesorter ts-index uk-table uk-table-expand uk-table-hover uk-table-small uk-table-striped">
<caption class="uk-margin-bottom uk-padding-small">
Tabelle Category <small>({{ categories|length }} {% if (categories|length == 1) %}Eintrag{% else %}Einträge{% endif %})</small>
</caption>
<thead>
<tr>
<th>#</th>
<th>Titel</th>
<th class="ts-title filter-select" data-placeholder="_ alle">Parent</th>
<th>Beschreibung</th>
<th>Erstellt</th>
<th>Aktualisiert</th>
<th data-sorter="false" data-filter="false" style="width: 150px!important;">Aktion</th>
</tr>
</thead>
<tbody>
{% if categories %}
{% for category in categories %}
<tr>
<td class="uk-text-middle">{{ category.id }}</td>
<td class="uk-text-middle uk-text-nowrap uk-text-left uk-text-bold"><a href="{{ route('base/view',{'id':category.id}) }}">{{ category.title }}</a></td>
<td class="uk-text-middle uk-text-nowrap uk-text-left uk-text-bold"><a class="{% if not category.parent %}uk-disabled uk-text-muted{% endif %}" href="{{ route('base/view',{'id':category.parent.id}) }}">{{ category.parent.title|default('_ ohne Parent') }}</a></td>
<td class="uk-text-middle uk-text-nowrap">{{ category.description }}</td>
<td class="uk-text-middle uk-text-nowrap">{{ category.created }}</td>
<td class="uk-text-middle uk-text-nowrap">{{ category.updated ? category.updated : '-' }}</td>
<td class="uk-flex">
<a href="{{ route('base/edit',{'id':category.id}) }}" class="uk-button uk-button-secondary uk-button-small uk-margin-small-right">EDIT</a>
{{ include('base/_delete_form.html.twig',{'class':'uk-button-danger uk-button-small','button':'entf'}) }}
</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="6">Es wurde kein Eintrag gefunden.</td>
</tr>
{% endif %}
</tbody>
</table>
Aufgrund der Typen-Dynamik können wir sogar mit Zeichenketten rechnen. Zumindest, solange die Zeichenkette einer Zahl entspricht.
<?php
$myString = '5'; // string
$1myResult = $myString = '5'; // string
$2myResult ist vom Typ int
$myString = '5'; // string
$3myString + 5; // Addition ergibt 10. $myString = '5'; // string
$4stringA = 'Ich mag';
$myString = '5'; // string
$5stringC = $myString = '5'; // string
$6stringB; // ergibt: Ich mag Informatik
$myString = '5'; // string
$7stringA $myString = '5'; // string
$8stringE = "Mein Objekt heißt {$myString = '5'; // string
$9myResult; // gibt 10 aus (siehe obiges Beispiel)
Konstanten enthalten einmalig definierte feste Werte. Mit Konstanten kann genauso verfahren werden wie mit Variablen, mit Ausnahme von Zuweisungsoperatoren natürlich.
Im Gegensatz zu Variablen wird kein Dollar-Zeichen vorangestellt. Konstanten werden immer groß geschrieben.
Ein skalarer Wert kann mit dem Schlüsselwort const erfolgen:
<?php
const MY_INT_CONST = 5;
const MY_STRING_CONST = 'Nummer: ' . MY_INT_CONST;
Für Zuweisung eines variablen Ausdrucks ist die Funktion define geeignet:
<?php
$myArray = true; // bool
````
## Dynamisch deklarieren
In PHP lässt sich etwas total verrücktes machen, was zum Beispiel in JAVA undenkbar wäre.
Wir können Variablen nämlich auch dynamisch während der Laufzeit deklarieren:
````php
Jede Konstante darf nur einmal existieren. Daher sollten wir vor der Deklaration überprüfen, ob eine Konstante bereits existiert:
<?php
$myArray = true; // bool
````
## Dynamisch deklarieren
In PHP lässt sich etwas total verrücktes machen, was zum Beispiel in JAVA undenkbar wäre.
Wir können Variablen nämlich auch dynamisch während der Laufzeit deklarieren:
````php