SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
PHP




          PHP Schulung

          Christian Münch
      netz98 new media GmbH
            07.01.2008
Was ist eine
Programmiersprache?

●   Von einer Programmiersprache spricht
    man (vereinfacht ausgedrückt), wenn
    eine bestimmte Aufgabe durch eine
    Abfolge von Befehlen gelöst wird
●   Ist HTML eine Programmiersprache?
Geschichte

●   1954 Fortran
●   1958 Algol
●   1959 Lisp
●   1960 Cobol
●   1965 Basic
●   1972 C
●   1983 C++
●   1987 SQL, Perl
●   1993 Ruby
●   1995 Java
●   1997 PHP / JavaScript
●   2000 C#
Sprachgenerationen

●   1. Generation: Maschinensprache
    –   1/0 Bits...
●   2. Generation: Assembler
    –   Für bestimmte Prozessoren
●   3. Generation: Hochsprachen
    –   C, C++, Visual Basic, Pascal
●   4. Generation: Spezialsprachen
    –   SQL, ABAP, SAS
Programmierstil

●   Einrückung von untergeordneten Programmelementen
    (Einrückungsstil)
●   Positionierung umschließender Syntaxelemente wie {}, [], (),
    BEGIN, END
●   Einsatz von Leerzeichen und Leerzeilen
●   Einsatz von Kommentaren
●   Namenskonventionen für Symbole
●   Reihenfolge der Deklaration von Symbolen
●   Länge und Umfang von Symbolen
●   Verschachtelungstiefe untergeordneter Programmelemente
PHP Tags

●   <?php code ?>
●   <? code ?>
●   <% code %>
●   <script language=quot;phpquot;> code </script>
●   <?= $variable; ?>
●   <%= $variable; %>
Kommentare

 <?php
 print quot;Einzeilig, C++.nquot;; // bis zum Zeilenende
 print quot;Einzeilig, Unix Shell.nquot;; # bis zum
 Zeilenende

 /*
 Alles Zeilen bis zum nächsten Auftreten
 der Zeichenkombination Sternchen und Slash
 sind Bestandteil des Kommentars.
 */
 print quot;Mehrzeilig, wie aus C bekannt.nquot;;

 ?>
Typisierung

●   Angabe einer konkreten Spezifikation zur
    Datenhaltung
●   Definition von Daten oder
    Datenstrukturen = Datentyp
    –   Typisierte Sprachen: z.B. C++ oder Java
    –   Typenlose Sprachen: z.B. JavaScript
●   Wofür?
    –   Der Effizienz der Programme,
    –   Der Entlastung des Programmautors
    –   Der Typsicherheit, d.h. dem Schutz des Programmierers
Datentypen in PHP

●   Einfache Datentypen / Skalare
    –   Integer
    –   Float (Double)
    –   Boolean
    –   String
●   Zusammengesetzte Typen
    –   Array
    –   Objekt
●   Spezielle Typen in PHP
    –   NULL, Resource ID
Skalare Datentypen

●    Integers in PHP entsprechen dem
    Datentyp long in C. Auf einer 32-Bit
    Maschine entspricht dies: -2.147.482.648
    bis +2.147.482.647
●    Bei einem Überlauf wandelt PHP den Typ
    automatisch nach Float.
Zusammengesetzte
Datentypen

●   Arrays (Hashes)
    –   keine Dimensionierung notwendig
    –   dynamisches Wachstum
    –   beliebige Datentypen als Key und als Value
    –   mehrdimensional
    –   Auto-Index Funktionalität
Variablen (Typen)

●   Global, Superglobal
    –   $GLOBALS,
    –   $_SESSION
    –   $_SERVER
    –   $_GET
    –   $_POST
    –   $_REQUEST
●   Lokal
    –   selbstdefinierte Variablen: z.B. $myVar
Variablen

●   Speicher wird automatisch bereitgestellt und
    beim beenden des Scripts freigegeben.
●   Der Speicher kann mit “unset” direkt
    freigegeben werden.
●    Ein Variablenname beginnt mit einem
    Dollarzeichen ($) gefolgt von einem
    Unterstrich (_) oder einem Buchstaben,
    gefolgt von einer beliebigen Anzahl
    alphanumerischer Zeichen (u. Unterstrich).
●   Die Bezeichner sind case-sensitiv
Konstanten

●   Definiert mit define Funktion
    –   z.B. define(“MY_CONST”, 1);
●   Immer groß schreiben!
●   Können nicht mehr geändert werden.
Variable Variablen

 // ${} Syntax für eine klare
 Namensbindung
 $name = quot;variable_valuequot;;
 ${$name} = quot;Hello quot;;
 echo $variable_value;

 // Alternative Syntax
 $$name = quot;World!quot;;
 echo $variable_value . quot;nquot;;
Operatoren

●   Ausdrücke
    –   ., +, -, *, /, %, &, |, ~
    –   +=, .=, -=, *=, /=, %=, &=, |=
    –   <, <=, ==, ===, =>, $gt;, !=
    –   * $v++, ++$v, $v--, --$v;
●   Logische Verknüpfungen
    –   && vs. and
    –   || vs. or
Operatoren – Für was?

●   Kombinieren und manipulieren von
    Konstanten und Variablen
●   Können eine unterschiedliche Wertigkeit
    (precedence) haben.
Zuweisungsoperator

1. $a = 10;

2. $c = “Hallo Welt”;

3. $test = false;

4. $a = $b

5. $a = $b = 29;

6. $a = &$b;
Arithmetische Operatoren

●   Addition (+)
●   Substraktion (-)
●   Multiplikation (*)
●   Division (/)
●   Modulo (%)
Beispiele für Arithmethische
Operatoren

1. 5 + 10

2. 2 * $a

3. 5 + 6 * 2

4. 2 % 2

5. $a = 2;
   $b = &$a;
   $b = 3;
   $c = $a * $b;
Arithmetische Operatoren
– Was ist zu beachten?

●   Der Modulo Operator verhält sich anders
    als im Mathemtikuntericht gelernt.
    –   Es wird auch ein negativer Wert
        zurückgeliefert
●   Die Reihenfolge ist zu beachten
●   Nötigenfalls Klammern setzen
    –   5 + 6 * 2 ist nicht (5 + 6) * 2
Spezielle Verwendung von
Operatoren
1. $a++

2. ++$a

3. $c += 2;

4. $d *= 2;

5. $e -= 2;

6. $a = 1;
   $b = $a++ + 1;
   echo $a;
   echo $b;

7. $a = 1;
   $b = ++$a + 1;
   echo $a;
   echo $b;

Weitere ähnliche Inhalte

Was ist angesagt?

Scalaz introduction for Java programmers
Scalaz introduction for Java programmersScalaz introduction for Java programmers
Scalaz introduction for Java programmersBernhard Huemer
 
Von Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und AttributgrammatikenVon Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und AttributgrammatikenTim Furche
 
Prototype 1.7
Prototype 1.7Prototype 1.7
Prototype 1.7msebel
 
Genügend gute Gründe, wieso Ruby besser als PHP ist
Genügend gute Gründe, wieso Ruby besser als PHP istGenügend gute Gründe, wieso Ruby besser als PHP ist
Genügend gute Gründe, wieso Ruby besser als PHP istDaniel Spangenberg
 
Ruby is Magic - Episode #7: Closures
Ruby is Magic - Episode #7: ClosuresRuby is Magic - Episode #7: Closures
Ruby is Magic - Episode #7: ClosuresDirk Breuer
 
Perl 5.20: Feature, Kultur, Module, Werkzeuge
Perl 5.20: Feature, Kultur, Module, WerkzeugePerl 5.20: Feature, Kultur, Module, Werkzeuge
Perl 5.20: Feature, Kultur, Module, Werkzeugelichtkind
 

Was ist angesagt? (7)

Scalaz introduction for Java programmers
Scalaz introduction for Java programmersScalaz introduction for Java programmers
Scalaz introduction for Java programmers
 
Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
 
Von Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und AttributgrammatikenVon Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
 
Prototype 1.7
Prototype 1.7Prototype 1.7
Prototype 1.7
 
Genügend gute Gründe, wieso Ruby besser als PHP ist
Genügend gute Gründe, wieso Ruby besser als PHP istGenügend gute Gründe, wieso Ruby besser als PHP ist
Genügend gute Gründe, wieso Ruby besser als PHP ist
 
Ruby is Magic - Episode #7: Closures
Ruby is Magic - Episode #7: ClosuresRuby is Magic - Episode #7: Closures
Ruby is Magic - Episode #7: Closures
 
Perl 5.20: Feature, Kultur, Module, Werkzeuge
Perl 5.20: Feature, Kultur, Module, WerkzeugePerl 5.20: Feature, Kultur, Module, Werkzeuge
Perl 5.20: Feature, Kultur, Module, Werkzeuge
 

Andere mochten auch

Der Banker Klaus
Der Banker KlausDer Banker Klaus
Der Banker KlausBoris Janek
 
Biohacking - Warum einen Computer im Arm?
Biohacking  - Warum einen Computer im Arm?Biohacking  - Warum einen Computer im Arm?
Biohacking - Warum einen Computer im Arm?Petr Kirpeit
 
Projekt Portfolio - Bisherige Projekte
Projekt Portfolio - Bisherige ProjekteProjekt Portfolio - Bisherige Projekte
Projekt Portfolio - Bisherige ProjekteClaire Oberwinter
 
Event: Berlin Open Data Day 18 May 2011
Event: Berlin Open Data Day 18 May 2011Event: Berlin Open Data Day 18 May 2011
Event: Berlin Open Data Day 18 May 2011m. dubsky
 
"E-Mail von Tante Emma" (M3 CAMPIXX 2013)
"E-Mail von Tante Emma" (M3 CAMPIXX 2013)"E-Mail von Tante Emma" (M3 CAMPIXX 2013)
"E-Mail von Tante Emma" (M3 CAMPIXX 2013)Rene Kulka
 
Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...
Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...
Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...Twittwoch e.V.
 
Die Geschaeftsmodellperspektive im Internet der Dienste
Die Geschaeftsmodellperspektive im Internet der DiensteDie Geschaeftsmodellperspektive im Internet der Dienste
Die Geschaeftsmodellperspektive im Internet der DiensteNico Weiner
 
Via 08 2015 lützelsee
Via 08 2015 lützelseeVia 08 2015 lützelsee
Via 08 2015 lützelseeGaston Haas
 
Public Relations im Zeitalter von Social Media, markengold PR
Public Relations im Zeitalter von Social Media, markengold PRPublic Relations im Zeitalter von Social Media, markengold PR
Public Relations im Zeitalter von Social Media, markengold PRTwittwoch e.V.
 
Startup Heuriger Burgenland 23.9.2015
Startup Heuriger Burgenland 23.9.2015Startup Heuriger Burgenland 23.9.2015
Startup Heuriger Burgenland 23.9.2015michael_sedlak
 
6nmsu 130916073818-phpapp01
6nmsu 130916073818-phpapp016nmsu 130916073818-phpapp01
6nmsu 130916073818-phpapp01Oxana Yantsur
 
Social Media in der Touristik: Facebook, Twitter & Co |
Social Media in der Touristik: Facebook, Twitter & Co |Social Media in der Touristik: Facebook, Twitter & Co |
Social Media in der Touristik: Facebook, Twitter & Co |Michael Faber
 
IT-Forum Rhein-Neckar - Präsentation des Netzwerks
IT-Forum Rhein-Neckar - Präsentation des NetzwerksIT-Forum Rhein-Neckar - Präsentation des Netzwerks
IT-Forum Rhein-Neckar - Präsentation des NetzwerksIT-Forum Rhein-Neckar e. V.
 

Andere mochten auch (20)

Der Banker Klaus
Der Banker KlausDer Banker Klaus
Der Banker Klaus
 
Biohacking - Warum einen Computer im Arm?
Biohacking  - Warum einen Computer im Arm?Biohacking  - Warum einen Computer im Arm?
Biohacking - Warum einen Computer im Arm?
 
Projekt Portfolio - Bisherige Projekte
Projekt Portfolio - Bisherige ProjekteProjekt Portfolio - Bisherige Projekte
Projekt Portfolio - Bisherige Projekte
 
Pemerintah kab. barru
Pemerintah kab. barruPemerintah kab. barru
Pemerintah kab. barru
 
Event: Berlin Open Data Day 18 May 2011
Event: Berlin Open Data Day 18 May 2011Event: Berlin Open Data Day 18 May 2011
Event: Berlin Open Data Day 18 May 2011
 
"E-Mail von Tante Emma" (M3 CAMPIXX 2013)
"E-Mail von Tante Emma" (M3 CAMPIXX 2013)"E-Mail von Tante Emma" (M3 CAMPIXX 2013)
"E-Mail von Tante Emma" (M3 CAMPIXX 2013)
 
Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...
Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...
Roman Kaupert zu Social Media Marketing-Strategien auf dem 13. Twittwoch zu B...
 
Die Geschaeftsmodellperspektive im Internet der Dienste
Die Geschaeftsmodellperspektive im Internet der DiensteDie Geschaeftsmodellperspektive im Internet der Dienste
Die Geschaeftsmodellperspektive im Internet der Dienste
 
Storytelling tools
Storytelling toolsStorytelling tools
Storytelling tools
 
Informatica y tecnologia
Informatica y tecnologiaInformatica y tecnologia
Informatica y tecnologia
 
Lenguaje y matematicas
Lenguaje y matematicasLenguaje y matematicas
Lenguaje y matematicas
 
Via 08 2015 lützelsee
Via 08 2015 lützelseeVia 08 2015 lützelsee
Via 08 2015 lützelsee
 
LAS TIC
LAS TICLAS TIC
LAS TIC
 
Public Relations im Zeitalter von Social Media, markengold PR
Public Relations im Zeitalter von Social Media, markengold PRPublic Relations im Zeitalter von Social Media, markengold PR
Public Relations im Zeitalter von Social Media, markengold PR
 
Startup Heuriger Burgenland 23.9.2015
Startup Heuriger Burgenland 23.9.2015Startup Heuriger Burgenland 23.9.2015
Startup Heuriger Burgenland 23.9.2015
 
6nmsu 130916073818-phpapp01
6nmsu 130916073818-phpapp016nmsu 130916073818-phpapp01
6nmsu 130916073818-phpapp01
 
Social Media in der Touristik: Facebook, Twitter & Co |
Social Media in der Touristik: Facebook, Twitter & Co |Social Media in der Touristik: Facebook, Twitter & Co |
Social Media in der Touristik: Facebook, Twitter & Co |
 
IT-Forum Rhein-Neckar - Präsentation des Netzwerks
IT-Forum Rhein-Neckar - Präsentation des NetzwerksIT-Forum Rhein-Neckar - Präsentation des Netzwerks
IT-Forum Rhein-Neckar - Präsentation des Netzwerks
 
Laussane
LaussaneLaussane
Laussane
 
Rachel8
Rachel8Rachel8
Rachel8
 

Ähnlich wie Php Schulung

Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Brigitte Jellinek
 
Einführung in SASS und Compass
Einführung in SASS und CompassEinführung in SASS und Compass
Einführung in SASS und Compasseigentor
 
C Sharp Einfuehrung Teil 1
C Sharp Einfuehrung Teil 1C Sharp Einfuehrung Teil 1
C Sharp Einfuehrung Teil 1DraphonyGames
 
Tech Talk: Groovy
Tech Talk: GroovyTech Talk: Groovy
Tech Talk: Groovymwie
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht SkriptsprachenA. LE
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...NETWAYS
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershellCreasoft AG
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
Object-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopObject-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopWaldemar Dell
 
Java und Go im Vergleich
Java und Go im VergleichJava und Go im Vergleich
Java und Go im VergleichQAware GmbH
 
Ruby On Rails Einführung
Ruby On Rails EinführungRuby On Rails Einführung
Ruby On Rails EinführungReinhold Weber
 
Mehr Dynamik Durch Skriptsprachen
Mehr Dynamik Durch SkriptsprachenMehr Dynamik Durch Skriptsprachen
Mehr Dynamik Durch Skriptsprachenjlink
 
Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHPStephan Schmidt
 

Ähnlich wie Php Schulung (20)

Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
 
Ruby on Rails SS09 04
Ruby on Rails SS09 04Ruby on Rails SS09 04
Ruby on Rails SS09 04
 
Einführung in SASS und Compass
Einführung in SASS und CompassEinführung in SASS und Compass
Einführung in SASS und Compass
 
C Sharp Einfuehrung Teil 1
C Sharp Einfuehrung Teil 1C Sharp Einfuehrung Teil 1
C Sharp Einfuehrung Teil 1
 
BIT I WiSe 2014 | Basisinformationstechnologie I - 08: Programmiersprachen I
BIT I WiSe 2014 | Basisinformationstechnologie I - 08: Programmiersprachen IBIT I WiSe 2014 | Basisinformationstechnologie I - 08: Programmiersprachen I
BIT I WiSe 2014 | Basisinformationstechnologie I - 08: Programmiersprachen I
 
Tech Talk: Groovy
Tech Talk: GroovyTech Talk: Groovy
Tech Talk: Groovy
 
Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2
 
PHP Sucks?!
PHP Sucks?!PHP Sucks?!
PHP Sucks?!
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht Skriptsprachen
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
Object-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopObject-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - Workshop
 
Java und Go im Vergleich
Java und Go im VergleichJava und Go im Vergleich
Java und Go im Vergleich
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Scala und Lift
Scala und LiftScala und Lift
Scala und Lift
 
Ruby On Rails Einführung
Ruby On Rails EinführungRuby On Rails Einführung
Ruby On Rails Einführung
 
Mehr Dynamik Durch Skriptsprachen
Mehr Dynamik Durch SkriptsprachenMehr Dynamik Durch Skriptsprachen
Mehr Dynamik Durch Skriptsprachen
 
Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHP
 

Mehr von Christian Münch

n98-magerun2 - Presentation 2020
n98-magerun2 - Presentation 2020n98-magerun2 - Presentation 2020
n98-magerun2 - Presentation 2020Christian Münch
 
Magento 2 Zertifizierung - Wissenswertes und ein paar Tipps
Magento 2 Zertifizierung - Wissenswertes und ein paar TippsMagento 2 Zertifizierung - Wissenswertes und ein paar Tipps
Magento 2 Zertifizierung - Wissenswertes und ein paar TippsChristian Münch
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesChristian Münch
 
Magento Headless - Stammtisch Rhein-Main
Magento Headless - Stammtisch Rhein-MainMagento Headless - Stammtisch Rhein-Main
Magento Headless - Stammtisch Rhein-MainChristian Münch
 
Continous Integration in einem Open Source Projekt
Continous Integration in einem Open Source ProjektContinous Integration in einem Open Source Projekt
Continous Integration in einem Open Source ProjektChristian Münch
 
Magento auf der Kommandozeile: n98-magerun, ein netz98 Tool
Magento auf der Kommandozeile: n98-magerun, ein netz98 ToolMagento auf der Kommandozeile: n98-magerun, ein netz98 Tool
Magento auf der Kommandozeile: n98-magerun, ein netz98 ToolChristian Münch
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
TV App Development - Überblick und Einblick
TV App Development - Überblick und EinblickTV App Development - Überblick und Einblick
TV App Development - Überblick und EinblickChristian Münch
 
Abläufe mit Phing automatisieren
Abläufe mit Phing automatisierenAbläufe mit Phing automatisieren
Abläufe mit Phing automatisierenChristian Münch
 
Caching in PHP - Status Quo
Caching in PHP - Status QuoCaching in PHP - Status Quo
Caching in PHP - Status QuoChristian Münch
 
INMON CMS Entwicklung / Funktionen
INMON CMS Entwicklung / FunktionenINMON CMS Entwicklung / Funktionen
INMON CMS Entwicklung / FunktionenChristian Münch
 

Mehr von Christian Münch (13)

DDEV - Extended
DDEV - ExtendedDDEV - Extended
DDEV - Extended
 
n98-magerun2 - Presentation 2020
n98-magerun2 - Presentation 2020n98-magerun2 - Presentation 2020
n98-magerun2 - Presentation 2020
 
Magento 2 Zertifizierung - Wissenswertes und ein paar Tipps
Magento 2 Zertifizierung - Wissenswertes und ein paar TippsMagento 2 Zertifizierung - Wissenswertes und ein paar Tipps
Magento 2 Zertifizierung - Wissenswertes und ein paar Tipps
 
12 Factor Apps with PHP
12 Factor Apps with PHP12 Factor Apps with PHP
12 Factor Apps with PHP
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
 
Magento Headless - Stammtisch Rhein-Main
Magento Headless - Stammtisch Rhein-MainMagento Headless - Stammtisch Rhein-Main
Magento Headless - Stammtisch Rhein-Main
 
Continous Integration in einem Open Source Projekt
Continous Integration in einem Open Source ProjektContinous Integration in einem Open Source Projekt
Continous Integration in einem Open Source Projekt
 
Magento auf der Kommandozeile: n98-magerun, ein netz98 Tool
Magento auf der Kommandozeile: n98-magerun, ein netz98 ToolMagento auf der Kommandozeile: n98-magerun, ein netz98 Tool
Magento auf der Kommandozeile: n98-magerun, ein netz98 Tool
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
TV App Development - Überblick und Einblick
TV App Development - Überblick und EinblickTV App Development - Überblick und Einblick
TV App Development - Überblick und Einblick
 
Abläufe mit Phing automatisieren
Abläufe mit Phing automatisierenAbläufe mit Phing automatisieren
Abläufe mit Phing automatisieren
 
Caching in PHP - Status Quo
Caching in PHP - Status QuoCaching in PHP - Status Quo
Caching in PHP - Status Quo
 
INMON CMS Entwicklung / Funktionen
INMON CMS Entwicklung / FunktionenINMON CMS Entwicklung / Funktionen
INMON CMS Entwicklung / Funktionen
 

Php Schulung

  • 1. PHP PHP Schulung Christian Münch netz98 new media GmbH 07.01.2008
  • 2. Was ist eine Programmiersprache? ● Von einer Programmiersprache spricht man (vereinfacht ausgedrückt), wenn eine bestimmte Aufgabe durch eine Abfolge von Befehlen gelöst wird ● Ist HTML eine Programmiersprache?
  • 3. Geschichte ● 1954 Fortran ● 1958 Algol ● 1959 Lisp ● 1960 Cobol ● 1965 Basic ● 1972 C ● 1983 C++ ● 1987 SQL, Perl ● 1993 Ruby ● 1995 Java ● 1997 PHP / JavaScript ● 2000 C#
  • 4. Sprachgenerationen ● 1. Generation: Maschinensprache – 1/0 Bits... ● 2. Generation: Assembler – Für bestimmte Prozessoren ● 3. Generation: Hochsprachen – C, C++, Visual Basic, Pascal ● 4. Generation: Spezialsprachen – SQL, ABAP, SAS
  • 5. Programmierstil ● Einrückung von untergeordneten Programmelementen (Einrückungsstil) ● Positionierung umschließender Syntaxelemente wie {}, [], (), BEGIN, END ● Einsatz von Leerzeichen und Leerzeilen ● Einsatz von Kommentaren ● Namenskonventionen für Symbole ● Reihenfolge der Deklaration von Symbolen ● Länge und Umfang von Symbolen ● Verschachtelungstiefe untergeordneter Programmelemente
  • 6. PHP Tags ● <?php code ?> ● <? code ?> ● <% code %> ● <script language=quot;phpquot;> code </script> ● <?= $variable; ?> ● <%= $variable; %>
  • 7. Kommentare <?php print quot;Einzeilig, C++.nquot;; // bis zum Zeilenende print quot;Einzeilig, Unix Shell.nquot;; # bis zum Zeilenende /* Alles Zeilen bis zum nächsten Auftreten der Zeichenkombination Sternchen und Slash sind Bestandteil des Kommentars. */ print quot;Mehrzeilig, wie aus C bekannt.nquot;; ?>
  • 8. Typisierung ● Angabe einer konkreten Spezifikation zur Datenhaltung ● Definition von Daten oder Datenstrukturen = Datentyp – Typisierte Sprachen: z.B. C++ oder Java – Typenlose Sprachen: z.B. JavaScript ● Wofür? – Der Effizienz der Programme, – Der Entlastung des Programmautors – Der Typsicherheit, d.h. dem Schutz des Programmierers
  • 9. Datentypen in PHP ● Einfache Datentypen / Skalare – Integer – Float (Double) – Boolean – String ● Zusammengesetzte Typen – Array – Objekt ● Spezielle Typen in PHP – NULL, Resource ID
  • 10. Skalare Datentypen ● Integers in PHP entsprechen dem Datentyp long in C. Auf einer 32-Bit Maschine entspricht dies: -2.147.482.648 bis +2.147.482.647 ● Bei einem Überlauf wandelt PHP den Typ automatisch nach Float.
  • 11. Zusammengesetzte Datentypen ● Arrays (Hashes) – keine Dimensionierung notwendig – dynamisches Wachstum – beliebige Datentypen als Key und als Value – mehrdimensional – Auto-Index Funktionalität
  • 12. Variablen (Typen) ● Global, Superglobal – $GLOBALS, – $_SESSION – $_SERVER – $_GET – $_POST – $_REQUEST ● Lokal – selbstdefinierte Variablen: z.B. $myVar
  • 13. Variablen ● Speicher wird automatisch bereitgestellt und beim beenden des Scripts freigegeben. ● Der Speicher kann mit “unset” direkt freigegeben werden. ● Ein Variablenname beginnt mit einem Dollarzeichen ($) gefolgt von einem Unterstrich (_) oder einem Buchstaben, gefolgt von einer beliebigen Anzahl alphanumerischer Zeichen (u. Unterstrich). ● Die Bezeichner sind case-sensitiv
  • 14. Konstanten ● Definiert mit define Funktion – z.B. define(“MY_CONST”, 1); ● Immer groß schreiben! ● Können nicht mehr geändert werden.
  • 15. Variable Variablen // ${} Syntax für eine klare Namensbindung $name = quot;variable_valuequot;; ${$name} = quot;Hello quot;; echo $variable_value; // Alternative Syntax $$name = quot;World!quot;; echo $variable_value . quot;nquot;;
  • 16. Operatoren ● Ausdrücke – ., +, -, *, /, %, &, |, ~ – +=, .=, -=, *=, /=, %=, &=, |= – <, <=, ==, ===, =>, $gt;, != – * $v++, ++$v, $v--, --$v; ● Logische Verknüpfungen – && vs. and – || vs. or
  • 17. Operatoren – Für was? ● Kombinieren und manipulieren von Konstanten und Variablen ● Können eine unterschiedliche Wertigkeit (precedence) haben.
  • 18. Zuweisungsoperator 1. $a = 10; 2. $c = “Hallo Welt”; 3. $test = false; 4. $a = $b 5. $a = $b = 29; 6. $a = &$b;
  • 19. Arithmetische Operatoren ● Addition (+) ● Substraktion (-) ● Multiplikation (*) ● Division (/) ● Modulo (%)
  • 20. Beispiele für Arithmethische Operatoren 1. 5 + 10 2. 2 * $a 3. 5 + 6 * 2 4. 2 % 2 5. $a = 2; $b = &$a; $b = 3; $c = $a * $b;
  • 21. Arithmetische Operatoren – Was ist zu beachten? ● Der Modulo Operator verhält sich anders als im Mathemtikuntericht gelernt. – Es wird auch ein negativer Wert zurückgeliefert ● Die Reihenfolge ist zu beachten ● Nötigenfalls Klammern setzen – 5 + 6 * 2 ist nicht (5 + 6) * 2
  • 22. Spezielle Verwendung von Operatoren 1. $a++ 2. ++$a 3. $c += 2; 4. $d *= 2; 5. $e -= 2; 6. $a = 1; $b = $a++ + 1; echo $a; echo $b; 7. $a = 1; $b = ++$a + 1; echo $a; echo $b;