Jordan Davenport Brief History Created in 1994 by Rasmus Lerdorf Released June 1995 as Personal Homepage Tools Rewritten a few times carried different names Rasmus Lerdorf Image Source httplerdorfcombiophp ID: 782632
Download The PPT/PDF document "PHP: Hypertext Preprocessor" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
PHP: Hypertext Preprocessor
Jordan Davenport
Slide2Brief History
Created in 1994 by
Rasmus
LerdorfReleased June 1995 as "Personal Homepage Tools"Rewritten a few times, carried different names
Rasmus Lerdorf
Image Source: http://lerdorf.com/bio.php
Slide3...Not So Brief History!
Rewritten in 1997 by
Andi
Gutman and Zeev SuraskiRewrite became PHP 3.0
Officially replaced PHP/FI 2.0 in 1998
Multi-PlatformPHP Development Team
Current Stable Release: 5.3.8
Release Candidate: 5.4.0RC2 on Thanksgiving
Slide4Data Typing
Weakly
Typed
Four Scalar Types:
BooleanIntegerFloat
String
Compound Types:ArrayObjectSpecial Types:
Resource
NULL
Slide5Functions & Variables
Variables prefixed with $
Alphanumeric
with underscores
Must start with letter or _
Global scope isolated from local
Variable Functions
Slide6Expressions, Statements, & Control
C-like syntax and operators
String
concatenation: . and .=
No integer division!
if, if...else, if...
elseif...else, switchwhile, do...while, for, foreach
Slide7Abstraction & OOP
Class-based OOP
Variables are "Properties"
Properties must be declared public/
protected/private
Functions default public
-> instead of "dotting in" to access members (like C++ pointers)
Slide8Paamayim Nekudotayim
Scope resolution operator ::
Access class members without instantiation
<class_name>::<member>
self::foo($bar)
Confuses users:
http://phpsadness.com/sad/1
פעמיים נקודתיים
Slide9Exception!
try {
code block here
}
catch {
another block here}
Uncaught exceptions cause "Fatal Error"set_exception_
handler()
for what isn't caught
Slide10Evaluation Time
Readability
Overloading?
Pft
!Lacks data type declarationsWritability
Syntax to suit your needs
ReliabilityDifferent integers, floats on different systemsCostFOSS but GPL-incompatible
Inconsistent documentation
Slide11Examples
http://www.caitsith2.com/ds/fc.php
http://kurtis.voidaudio.net/phpbb_news.php
http://kurtis.voidaudio.net/test.php
Slide12References
Phalanger: The PHP Language Compiler for the .NET Framework
. 26 September 2011. 26 September 2011. <http://phalanger.codeplex.com/>.
"PHP." 20 September 2011.
Wikipedia, The Free Encyclopedia. 26 September 2011. <http://en.wikipedia.org/wiki/PHP>."PHP Tutorial." n.d.
W3Schools Online Web Tutorials. 26 September 2011. <http://www.w3schools.com/php/default.asp>.
PHP: Hypertext Preprocessor. n.d. 26 September 2011. <http://www.php.net/>."PHP: License Information." 10 2011. PHP: Hypertext Preprocessor. 20 10 20011. <http://php.net/license/index.php>.
Sebesta, Robert W.
Concepts of Programming Languages, Ninth Edition
. Boston, MA: Pearson Education, Inc., 2010.