php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.01.2012, 23:57  
Neuer Benutzer
 
Registriert seit: 05.01.2012
Beiträge: 15
PHP-Kenntnisse:
Anfänger
Southlinch befindet sich auf einem aufstrebenden Ast
Standard PHP Typdeklaration

Ist Typdeklaration in php sinnvoll ?

PHP-Code:
<?php
$zahl 
= (int)12;
$text = (string)'Hallo Welt!';
?>
Also mit dem angeben des Typs ist es langsamer als ohne, also da scheints schonmal nicht sinnvoll zu sein ^^
Aber ich will auf jeden Fall sauber programmieren, also sollt ich des machen oder nicht ?
Oder ist das eine total schwachsinnige Idee in php Typen deklarieren zu wollen ... denn wenns sinnvoll wäre, dann wärs ja ein Muss oder ? ^^
Southlinch ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.01.2012, 00:25  
php.de
Gast
 
Beiträge: n/a
Standard

In diesem speziellen Fall sind die Typdeklarationen sinnlos.

Es kann aber Sinn machen, eine Zahl, die eigentlich ein int ist, als float zu deklarieren. Nämlich dann, wenn man die Zahl einer Funktion/Methode übergibt, die unbedingt eine Float-Zahl verlangt.

(int) kann man z. B. benötigen, wenn man einen String zerlegt und dann Teile einer Funktion/Methode übergeben möchte, die eine Zahl erwartet. Z. B. checkdate.

Sehr heikel wird es bei Berechnungen. Dann muss man sehr aufpassen, was man macht. Aus einer Zahl, die eigentlich ein int sein sollte, kann leicht ein float mit Rundungsfehler entstehen. Dann muss man (int) mit round kombinieren.

Für Berechnungen bietet PHP auch die bc-Funktionen an. Dabei wird mit Strings gerechnet. Und nur so nebenbei erwähnt: es gibt auch big_int und GMP. Zu PHP4-Zeiten ist man sogar manchmal auf MySQL ausgewichen, um Berechnungen durchzuführen.

Geändert von php.de (06.01.2012 um 00:34 Uhr).
  Mit Zitat antworten
Alt 06.01.2012, 00:35  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Das sind keine Typdeklarationen sondern Type Casts.

In deinen beiden Beispielen castest du einen Wert zu einen Typen den er bereits besitzt.

Das was du da hast dient der Umwandlung von Variablentypen.

PHP-Code:
$integer 5;
$float   = (float)$integer;

$float    5.5;
$integer  = (int)$float
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 06.01.2012, 00:38  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Kurz: Du kannst in Typen konvertieren, dauerhaft Typen sichern aber nicht. Und bei direkter Zuweisung eines Wertes kannst Du Dir den Aufwand sparen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.01.2012, 00:39  
Neuer Benutzer
 
Registriert seit: 05.01.2012
Beiträge: 15
PHP-Kenntnisse:
Anfänger
Southlinch befindet sich auf einem aufstrebenden Ast
Standard

Ok mein Beispiel war schlecht, sollte aber wirklich nur zeigen was ich meine ^^
@ danke für die Antworten
Southlinch ist offline   Mit Zitat antworten
Alt 06.01.2012, 00:43  
php.de
Gast
 
Beiträge: n/a
Standard

Wenn dir die Datentypen wichtig sind, solltest du dir 2 Punkte angewöhnen:

1) eine Notatione einführen
Beispiele:
Ganzzahlen: iZahl, iNumber, iRow, ...
Floatzahlen: fValue, fAverage, fSum, ...

2) in Funktionen/Methoden zuerst immer den Datentyp der übergebenen Parameter kontrollieren und Exceptions werfen, falls der Datentyp nicht ok ist.
  Mit Zitat antworten
Alt 06.01.2012, 01:00  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

Zitat:
Zitat von php.de Beitrag anzeigen
1) eine Notatione einführen
Beispiele:
Ganzzahlen: iZahl, iNumber, iRow, ...
Floatzahlen: fValue, fAverage, fSum, ...
das ist selbst in Sprachen, die feste Datentypen haben relativ sinnfrei

Wenn ihr feste Datentypen haben wollt, verwendet doch eine Sprache, die sie hat.
zwutz ist offline   Mit Zitat antworten
Alt 06.01.2012, 01:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nein, das ist gar nicht sinnfrei. Notation ist eine Art interne Vereinbarung und dient gleichzeitig der impliziten Dokumentation.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.01.2012, 01:14  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

$oRequest, $iCount, $fAmount, $aCollection, $sFirstname....
Bei so einer Notation krieg ich Augenschmerzen. Ist maximal Geschmackssache.
__________________
dsentker ist offline   Mit Zitat antworten
Alt 06.01.2012, 01:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Siehste, und ich nicht. Hab das seit Jahren in Benutzung und es immer noch nicht satt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php typdeklaration, php deklarieren von datentypen, int in php deklarieren, php typen deklarieren, typdeklaration, was sind typdeklarationen, php integer typdeklarationen funktionsparameter, php typen int float, php float deklarieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum