SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
An overview of PHP

                       Cristian Bogdan




                      What is PHP
• PHP: Hypertext Processor (or Personal Home Page?)
• This lecture goes through the doc: http://www.php.net/manual/en/
• Interpreted language
   – Easy to get something done fast
   – Problems when size and complexity grow
   – Performance penalty (though addressed in later Zend engine)
• A number of PHP organisations and hosting services around the
  net.
• A huge catalogue of features developped by volunteers
• A wide user community definately happy that they not only can
  program, but they also can program for the internet…
• Language in evolution… PHP 5 adds exception handling. OOP is
  also an add-on since PHP4, PHP5 perfects it
   – most OOP concepts and keywords are like in java: class, extends,
     interface, private, protected, etc
   – exceptions are like in Java (try/catch, etc)




                                                                        1
What can PHP do
• CGI scripting of course
  – Based on escapes within HTML pages <?php
    > or <% … %>
• Command line scripting
• GUI applications (PHP-GTK)
  http://gtk.php.net/




                  Installation
• Install the PHP interpreter separately. There is
  good support for this on Linux
• In the webserver configuration, associate the
  php extension with the PHP interpreter
• For serious applications you will need a
  database engine.
• Apache is the typical choice for the web server.
  – Integrated as a module, so no supplementary
    processes are created (in CGI, typically there is one
    process per access, which is very expensive)
• Mysql is the typical db engine




                                                            2
PHP in HTML
• The most often case where PHP is used
• Escaping
   –   <?php …. ?>
   –   <? …. ?>
   –   <script language=”php” > ….</script>
   –   <% .... %>, <%=. … %> like ASP and JSP
• Like in JSP, escaping can be interrupted to write some
  HTML
   <?php
     if ($expression) {
     ?>
   <b>This is true.</b>
   <?php } ?>
• You can see the evolution under community pressure,
  here and in other areas




                            Types
• a variable name begins with $, no type declaration (type
  declaration can be required by passing some settings to
  the interpreter)
• can have one type first, another one later… (BASIC??)
• boolean, integer (similar to C), float (similar to C)
• string
   – single-quoted, no character escapes
   – double-quoted, like C character escapes
   – <<< EOD notation to write longer multiline strings
   – $a.$b appends the string b and at the end of the string a (+ in
     Java)
   – $a(index1, index2) gives a substring
   – string functions in the function library (strlen() like in C)
   – expression intergration ”some text { expression $var } blabla”
• arrays are mappings between keys and values
  (Dictionary/Hashtable/Map in java)
   – $arr = array("foo" => "bar", 12 => true)
• There are automactic type conversions between types
  (very dangerous…). Explicit type conversions exist too




                                                                       3
Other types
• Classes and objects, OOP
• Resources, a kind of reference
• Pseudo-types, a kind of #typedef ?




                    Variables
•   See Types
•   Assignment by value (not by reference)
•   Programming for the lazy
•   Lots of predefined variables, especially related
    to HTTP/CGI
    – _SERVER, _GET, _POST, _COOKIE, _FILES,
      _REQUEST, _SESSION
•   Scope of variables, globals
•   Variable variables ☺
•   External varialbes, useful for forms
•   Functions as variables




                                                       4
Other procedural stuff
• Operators similar to C
• Statements similar to C, plus:
   – <? if(…) : ?> ….<? endif; >
   – foreach () through arrays, just values, or also keys
      • foreach (array_expression as $value) statement
      • foreach (array_expression as $key => $value) statement
• Code inclusion with require() and include()
• Conditional function definition (similar to C #ifdef
  )




                       Features
• HTTP authentication, cookies, file uploads
• Remote files (like
  java.net.URLConnection)
• Connections (like java.net.Socket)
• Persistent db connections
   – Normally db connections are defined with
     engine specific functions as external
     resources. Each access would open its
     connection, that is expensive




                                                                 5
Functions
• Array functions, calendar fuctions, date
  functions, character functions, IO functions,
  printer, file/directory, etc
• Functions for protocols/standards, e.g. FTP,
  HTTP, URL, LDAP, IRC, Mail, NSAPI, popmail,
  XML/XSL, Bzip2/Zip/Zlib
• Functions for various databases (Mysql, Oracle,
  MS SQL server, mSQL, PostgreSQL, SQLite,
  dBase), dbx is general
• Functions for other systems/tools: e.g. Apache,
  COM, Cyrus, PDF, dBase, DBM, DOM, .NET,
  Lotus Notes, GNU readline, Hyperware




                    Conclusions
• Easy to learn from Java or C
• CGI parameters, HTTP sessions, etc are easy to
  recognize
• Good language/system for doing something small fast
  (but then JSP/ASP do most of the same)
• Not a wise choice for a serious/large project due to the
  lack of type safety, lack of OOP in the libraries, etc.
   – Experienced PHP people confirm that larger projects tend to
     become a big mess due to the freedoms that seemed so good in
     the begining, which make programmers lazy
• The array concept is nice, but its name is misleading
  (array means something very different in all the rest of
  Computer Science)
• Still, a very good choice for pragmatists who want to get
  the job done.




                                                                    6

Más contenido relacionado

Similar a Php

Similar a Php (20)

test
testtest
test
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
ssfsd fsdf ds f
ssfsd fsdf ds fssfsd fsdf ds f
ssfsd fsdf ds f
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
ssfsd fsdf ds f
ssfsd fsdf ds fssfsd fsdf ds f
ssfsd fsdf ds f
 
ssfsd fsdf ds f
ssfsd fsdf ds fssfsd fsdf ds f
ssfsd fsdf ds f
 
ssfsd fsdf ds f
ssfsd fsdf ds fssfsd fsdf ds f
ssfsd fsdf ds f
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
test
testtest
test
 
sdfsdfsdf
sdfsdfsdfsdfsdfsdf
sdfsdfsdf
 
345345
345345345345
345345
 
test
testtest
test
 
ssfsd fsdf ds f
ssfsd fsdf ds fssfsd fsdf ds f
ssfsd fsdf ds f
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
test
testtest
test
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
ssfsd fsdf ds f
ssfsd fsdf ds fssfsd fsdf ds f
ssfsd fsdf ds f
 

Último

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

Php

  • 1. An overview of PHP Cristian Bogdan What is PHP • PHP: Hypertext Processor (or Personal Home Page?) • This lecture goes through the doc: http://www.php.net/manual/en/ • Interpreted language – Easy to get something done fast – Problems when size and complexity grow – Performance penalty (though addressed in later Zend engine) • A number of PHP organisations and hosting services around the net. • A huge catalogue of features developped by volunteers • A wide user community definately happy that they not only can program, but they also can program for the internet… • Language in evolution… PHP 5 adds exception handling. OOP is also an add-on since PHP4, PHP5 perfects it – most OOP concepts and keywords are like in java: class, extends, interface, private, protected, etc – exceptions are like in Java (try/catch, etc) 1
  • 2. What can PHP do • CGI scripting of course – Based on escapes within HTML pages <?php > or <% … %> • Command line scripting • GUI applications (PHP-GTK) http://gtk.php.net/ Installation • Install the PHP interpreter separately. There is good support for this on Linux • In the webserver configuration, associate the php extension with the PHP interpreter • For serious applications you will need a database engine. • Apache is the typical choice for the web server. – Integrated as a module, so no supplementary processes are created (in CGI, typically there is one process per access, which is very expensive) • Mysql is the typical db engine 2
  • 3. PHP in HTML • The most often case where PHP is used • Escaping – <?php …. ?> – <? …. ?> – <script language=”php” > ….</script> – <% .... %>, <%=. … %> like ASP and JSP • Like in JSP, escaping can be interrupted to write some HTML <?php if ($expression) { ?> <b>This is true.</b> <?php } ?> • You can see the evolution under community pressure, here and in other areas Types • a variable name begins with $, no type declaration (type declaration can be required by passing some settings to the interpreter) • can have one type first, another one later… (BASIC??) • boolean, integer (similar to C), float (similar to C) • string – single-quoted, no character escapes – double-quoted, like C character escapes – <<< EOD notation to write longer multiline strings – $a.$b appends the string b and at the end of the string a (+ in Java) – $a(index1, index2) gives a substring – string functions in the function library (strlen() like in C) – expression intergration ”some text { expression $var } blabla” • arrays are mappings between keys and values (Dictionary/Hashtable/Map in java) – $arr = array("foo" => "bar", 12 => true) • There are automactic type conversions between types (very dangerous…). Explicit type conversions exist too 3
  • 4. Other types • Classes and objects, OOP • Resources, a kind of reference • Pseudo-types, a kind of #typedef ? Variables • See Types • Assignment by value (not by reference) • Programming for the lazy • Lots of predefined variables, especially related to HTTP/CGI – _SERVER, _GET, _POST, _COOKIE, _FILES, _REQUEST, _SESSION • Scope of variables, globals • Variable variables ☺ • External varialbes, useful for forms • Functions as variables 4
  • 5. Other procedural stuff • Operators similar to C • Statements similar to C, plus: – <? if(…) : ?> ….<? endif; > – foreach () through arrays, just values, or also keys • foreach (array_expression as $value) statement • foreach (array_expression as $key => $value) statement • Code inclusion with require() and include() • Conditional function definition (similar to C #ifdef ) Features • HTTP authentication, cookies, file uploads • Remote files (like java.net.URLConnection) • Connections (like java.net.Socket) • Persistent db connections – Normally db connections are defined with engine specific functions as external resources. Each access would open its connection, that is expensive 5
  • 6. Functions • Array functions, calendar fuctions, date functions, character functions, IO functions, printer, file/directory, etc • Functions for protocols/standards, e.g. FTP, HTTP, URL, LDAP, IRC, Mail, NSAPI, popmail, XML/XSL, Bzip2/Zip/Zlib • Functions for various databases (Mysql, Oracle, MS SQL server, mSQL, PostgreSQL, SQLite, dBase), dbx is general • Functions for other systems/tools: e.g. Apache, COM, Cyrus, PDF, dBase, DBM, DOM, .NET, Lotus Notes, GNU readline, Hyperware Conclusions • Easy to learn from Java or C • CGI parameters, HTTP sessions, etc are easy to recognize • Good language/system for doing something small fast (but then JSP/ASP do most of the same) • Not a wise choice for a serious/large project due to the lack of type safety, lack of OOP in the libraries, etc. – Experienced PHP people confirm that larger projects tend to become a big mess due to the freedoms that seemed so good in the begining, which make programmers lazy • The array concept is nice, but its name is misleading (array means something very different in all the rest of Computer Science) • Still, a very good choice for pragmatists who want to get the job done. 6