Frage von gilljuli, 66

Wann benutzt man die Datentypen in PHP und wie benutzt man sie(Boolean, String, Integer, float)?

Wie baut man z. B. Boolean, String, Integer, Float in den Quelltext ein und vor allem wann?

Antwort
von fluffiknuffi, 29

Die Frage ist ungenau.

Ich bin kein Experte was die Fachtermini angeht aber eine Variable hat immer einen Datentyp, sprich sie weiß immer, was in ihr steht. (Ok vllt. nicht bei null aber das ist jetzt nicht so wichtig.)

Den Datentyp einer Variable zu ändern ist in PHP ganz einfach, indem man ihr einen entsprechenden Wert zuweist:

$test = 123;
// Jetzt enthält test einen Integer

$test = 'Text';
// Jetzt enthält $test einen String.

Es gibt Methoden, mit denen du das auch überprüfen kannst:

$test = 123;
if (is_int($test)) echo '$test ist int';

Das Beispiel gibt '$test ist int' aus.

Antwort
von Omnivore08, 41

Das ist in JEDER Programmiersprache gleich:

bool - für Wahrheitswerte true/false

int - ganzzahliger Datentyp

String - Zeichenkette

float - Gleitkommazahlen

Antwort
von weed9r, 50

In Php ist es nicht weiter notwendig, Typsicherheit herzustellen, bzw ist es bis PHP7 nicht vorgesehen gewesen.

Jede variable ist sowohl string, bool, int, float, etc...(abgesehen von arrays und objekten/klassen)

Aber PHP7 ist es jedoch so, dass du variablen einen Wertebereich zuweisen kannst. 

Kommentar von gilljuli ,

Danke! Leider brauche ich die Info für eine Klausur und ich bin echt überfragt!

Kommentar von weed9r ,

class Foo(int integer, string name) { /*so on*/ }

Man benutzt sie meines Wissens derzeit nur im Constructor 

Kommentar von fluffiknuffi ,

weed9r  dann aber mit einer Methode (function) und nicht einer Klasse. :p

function add(float $a, float $b): float {
return $a + $b;
}
Kommentar von weed9r ,

Stimmt. Bin etwas raus was PHP angeht...Dieses überholte und langsame Konzept... :P

http://www.hostingadvice.com/blog/comparing-node-js-vs-php-performance/

Kommentar von fluffiknuffi ,

Da PHP 7 mitunter 100% schneller als PHP 5.6 sein soll müssten da schon aktuelle Benchmarks her. ;)

Außerdem, ich kann super mit beiden leben. Wenn es auf Performance, Echtzeitzeugs etc. angeht -> dann nur her mit Node.js, immer gerne. Aber wenn das keine oder keine große Rolle spielt, dann gibt es viele andere Argumente, die wichtiger sein sollten.

Kommentar von weed9r ,

ach ich versuch seit nem jahr mein Umfeld davon zu überzeugen, dass wir doch ein Backend in nodejs - gerade für unsere Angular-Anwendungen - mal basteln sollten...Ich glaube das würde den SPA bereich sehr vor ran bringen...

Kommentar von grumbl ,

Variablentypen am Beispiel von PHP zu zeigen ist echt schwachsinnig von deinem Lehrer.

Kommentar von fluffiknuffi ,

Geht. Es gibt noch weniger geeignetes. JavaScript zum Beispiel.

Kommentar von weed9r ,

Ungläubiger!

ES6 ist älter als PHP7! :D

Kommentar von fluffiknuffi ,

Oh oh an ES6 hatte ich tatsächlich nicht gedacht. Aber da man dort keine Typen für Parameter festlegen kann stimmt es doch? 

Kommentar von weed9r ,

Doch kannst du, musst du aber nicht ;)

Kommentar von fluffiknuffi ,

Hast du ein Beispiel dafür, wie das geht?

Kommentar von weed9r ,

Grad mal schnell geschaut, ich hab da wohl was durcheinander gebracht...ES6 ist etwas anders aufgebaut:
https://angularjs.de/artikel/angular2-tutorial-deutsch

export class PizzaAppComponent {
public pizzas = [];

constructor(private pizzaService: PizzaService) {
}
[...] }

Hier siehst du im Constructor, dass Parameter privat deklariert werden und vom Typ PizzaService sein sollen. Während PizzaService nur ein Objekt von Typ [object PizzaService] ist.

Kommentar von gilljuli ,

finde ich auch
Boolean: true false
String: Zeichenkette
integer: z. b. 183763
float: z. b. 5,52

und jetzt?! was soll ich damit anfangen?

Kommentar von weed9r ,

Ich würde dir gern helfen, allerdings glaube ich nicht, dass dein Lehrer weiß wovon er spricht. 

Ich versuche das mal etwas deutlicher darzustellen.

Typsicherheit ist in der nativen Programmierung wichtig um Wertebereiche von Variablen zu sichern.

Das macht man mit variablen von Typ char, word, double, float, decimal, integer, etc je nach Sprache und Projekt.

Der Hintergrund ist recht simpel. Deine Variable brauch einen gewissen Platz in deinem Speicher. Um diesen Speicher und damit die Schnelligkeit deines Programms gering zu halten, beachtet man das.

Php ist keine systemnahe Sprache sondern eine interpretierte Sprache. Das heißt es gibt ein Programm, was deinen Code übersetzt. Dieser Übersetzer macht nichts anderes als zu gucken wie groß der wertebereich werden kann und sich demnach anzupassen.

Ergo macht der Interpreter von PHP genau das, was dein Lehrer von PHP will. Das wär als wolltest du eine Entscheidung von deinem Lehrer, die dir aber nur dein Schulleiter geben kann.

Am leichtesten lässt sich das wie folgt beweisen.

Verändere in PHP mal eine Variable vom typ integer zum Typ String durch Wertezuweisung. Das geht problemlos. Jetzt versuch das mal in C++, C#, Java, oder ähnliche. da platzt der Compiler.

Kommentar von TomMetal ,

Meinst du wirklich, dass deine (übrigends sehr guten und richtigen) Ausführungen jemandem helfen, der "echt überfragt ist" bei dem Thema "Datentypen"? ;)

Kommentar von weed9r ,

Ich habe versucht es so einfach und deutlich wie möglich zu verfassen. Aber ich verstehe deine Kritik. Die Informatik ist einfach ein zu großes Feld. 

Keine passende Antwort gefunden?

Fragen Sie die Community