SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à Php

Similaire à 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
 
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
 
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
 
IntroductiontoPHP.ppt
IntroductiontoPHP.pptIntroductiontoPHP.ppt
IntroductiontoPHP.ppt
 
hgfgf
hgfgfhgfgf
hgfgf
 
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
 

Dernier

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Dernier (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

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