the php language · 2017. 11. 8. · php introduction types, operators and expressions arrays...

208
PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language Internet Applications, ID1354 1 / 79

Upload: others

Post on 24-Mar-2021

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The PHP LanguageInternet Applications, ID1354

1 / 79

Page 2: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Contents

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

2 / 79

Page 3: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

3 / 79

Page 4: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The PHP Language

I PHP development wasstarted by RasmusLerdorf in 1994.

I Developed to allow himto track visitors to hisweb site.

I PHP is an open-source product, developedby the PHP group.

I PHP was originally an acronym forPersonal Home Page, but later becamePHP Hypertext Preprocessor.

4 / 79

Page 5: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The PHP Language

I PHP development wasstarted by RasmusLerdorf in 1994.

I Developed to allow himto track visitors to hisweb site.

I PHP is an open-source product, developedby the PHP group.

I PHP was originally an acronym forPersonal Home Page, but later becamePHP Hypertext Preprocessor.

4 / 79

Page 6: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The PHP Language

I PHP development wasstarted by RasmusLerdorf in 1994.

I Developed to allow himto track visitors to hisweb site.

I PHP is an open-source product, developedby the PHP group.

I PHP was originally an acronym forPersonal Home Page, but later becamePHP Hypertext Preprocessor.

4 / 79

Page 7: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Overview of PHP

I By far the most used server-sideprogramming language.

I Purely interpreted, there is no compiler.

I Object-oriented with class-basedinheritance, like Java, but using objects isoptional.

I PHP files can contain HTML and PHP.I PHP files have extension .phpI There are many different versions of PHP,

and they differ quite a lot. This presentationfollows the latest versions.

5 / 79

Page 8: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Overview of PHP

I By far the most used server-sideprogramming language.

I Purely interpreted, there is no compiler.I Object-oriented with class-based

inheritance, like Java, but using objects isoptional.

I PHP files can contain HTML and PHP.I PHP files have extension .phpI There are many different versions of PHP,

and they differ quite a lot. This presentationfollows the latest versions.

5 / 79

Page 9: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Overview of PHP

I By far the most used server-sideprogramming language.

I Purely interpreted, there is no compiler.I Object-oriented with class-based

inheritance, like Java, but using objects isoptional.

I PHP files can contain HTML and PHP.

I PHP files have extension .phpI There are many different versions of PHP,

and they differ quite a lot. This presentationfollows the latest versions.

5 / 79

Page 10: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Overview of PHP

I By far the most used server-sideprogramming language.

I Purely interpreted, there is no compiler.I Object-oriented with class-based

inheritance, like Java, but using objects isoptional.

I PHP files can contain HTML and PHP.I PHP files have extension .php

I There are many different versions of PHP,and they differ quite a lot. This presentationfollows the latest versions.

5 / 79

Page 11: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Overview of PHP

I By far the most used server-sideprogramming language.

I Purely interpreted, there is no compiler.I Object-oriented with class-based

inheritance, like Java, but using objects isoptional.

I PHP files can contain HTML and PHP.I PHP files have extension .phpI There are many different versions of PHP,

and they differ quite a lot. This presentationfollows the latest versions.

5 / 79

Page 12: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Overview of PHP

I By far the most used server-sideprogramming language.

I Purely interpreted, there is no compiler.I Object-oriented with class-based

inheritance, like Java, but using objects isoptional.

I PHP files can contain HTML and PHP.I PHP files have extension .phpI There are many different versions of PHP,

and they differ quite a lot. This presentationfollows the latest versions.

5 / 79

Page 13: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

InstallationI The PHP interpreter must be integrated in

the web server.I Therefore, installation depends on server, seehttp://php.net/manual/en/install.php

for instructions.I Consider installing a WAMP/LAMP/MAMP

pack.

I The first letter is you operating system(Windows, Linux or MacOS).

I The other letters means Apache, MySQL andPHP. These together form a complete webserver.

I UniformServer ,http://www.uniformserver.com/, is aWAMP pack that is easy to install.

6 / 79

Page 14: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

InstallationI The PHP interpreter must be integrated in

the web server.I Therefore, installation depends on server, seehttp://php.net/manual/en/install.php

for instructions.I Consider installing a WAMP/LAMP/MAMP

pack.I The first letter is you operating system

(Windows, Linux or MacOS).

I The other letters means Apache, MySQL andPHP. These together form a complete webserver.

I UniformServer ,http://www.uniformserver.com/, is aWAMP pack that is easy to install.

6 / 79

Page 15: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

InstallationI The PHP interpreter must be integrated in

the web server.I Therefore, installation depends on server, seehttp://php.net/manual/en/install.php

for instructions.I Consider installing a WAMP/LAMP/MAMP

pack.I The first letter is you operating system

(Windows, Linux or MacOS).I The other letters means Apache, MySQL and

PHP. These together form a complete webserver.

I UniformServer ,http://www.uniformserver.com/, is aWAMP pack that is easy to install.

6 / 79

Page 16: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

InstallationI The PHP interpreter must be integrated in

the web server.I Therefore, installation depends on server, seehttp://php.net/manual/en/install.php

for instructions.I Consider installing a WAMP/LAMP/MAMP

pack.I The first letter is you operating system

(Windows, Linux or MacOS).I The other letters means Apache, MySQL and

PHP. These together form a complete webserver.

I UniformServer ,http://www.uniformserver.com/, is aWAMP pack that is easy to install.

6 / 79

Page 17: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

InstallationI The PHP interpreter must be integrated in

the web server.I Therefore, installation depends on server, seehttp://php.net/manual/en/install.php

for instructions.I Consider installing a WAMP/LAMP/MAMP

pack.I The first letter is you operating system

(Windows, Linux or MacOS).I The other letters means Apache, MySQL and

PHP. These together form a complete webserver.

I UniformServer ,http://www.uniformserver.com/, is aWAMP pack that is easy to install.

6 / 79

Page 18: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Syntax

I A PHP file can contain both PHP andHTML.

I HTML is passed to the browser, PHP isexecuted on the server, and the resultingoutput is passed to the browser.

I PHP code is embedded between<?php and ?> tags.

I You might want to omit the closing tag since itproduces a space in the output.

7 / 79

Page 19: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Syntax

I A PHP file can contain both PHP andHTML.

I HTML is passed to the browser, PHP isexecuted on the server, and the resultingoutput is passed to the browser.

I PHP code is embedded between<?php and ?> tags.

I You might want to omit the closing tag since itproduces a space in the output.

7 / 79

Page 20: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Syntax

I A PHP file can contain both PHP andHTML.

I HTML is passed to the browser, PHP isexecuted on the server, and the resultingoutput is passed to the browser.

I PHP code is embedded between<?php and ?> tags.

I You might want to omit the closing tag since itproduces a space in the output.

7 / 79

Page 21: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The First Example

8 / 79

Page 22: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Accessing PHP Files

I A PHP file is accessed with a HTTPrequest with a matching URL, just like aHTML file is accessed,http://myserver.se/path/to/thephpfile.php

I Execution just starts from the beginning ofthe specified PHP file, there is nothing likea main method.

9 / 79

Page 23: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Accessing PHP Files

I A PHP file is accessed with a HTTPrequest with a matching URL, just like aHTML file is accessed,http://myserver.se/path/to/thephpfile.php

I Execution just starts from the beginning ofthe specified PHP file, there is nothing likea main method.

9 / 79

Page 24: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Accessing PHP Files (Cont’d)

I To call code in other PHP files, it isnecessary to include those files.

I Files are included with the includeconstruct, include anotherfile.php;.

I The interpreter will look for files at thespecified file path, at specified includepaths, in the calling file’s directory, and inthe current working directory.

10 / 79

Page 25: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Accessing PHP Files (Cont’d)

I To call code in other PHP files, it isnecessary to include those files.

I Files are included with the includeconstruct, include anotherfile.php;.

I The interpreter will look for files at thespecified file path, at specified includepaths, in the calling file’s directory, and inthe current working directory.

10 / 79

Page 26: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Accessing PHP Files (Cont’d)

I To call code in other PHP files, it isnecessary to include those files.

I Files are included with the includeconstruct, include anotherfile.php;.

I The interpreter will look for files at thespecified file path, at specified includepaths, in the calling file’s directory, and inthe current working directory.

10 / 79

Page 27: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Accessing PHP Files (Cont’d’)

I include will emit a warning if it cannotfind a file. There is also the requireconstruct which works like include butemits a fatal error if the specified file is notfound.

I include_once and require_onceworks like include and require,except that the same file is included onlyonce even if it is specified in multipleinclusion statements.

11 / 79

Page 28: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Accessing PHP Files (Cont’d’)

I include will emit a warning if it cannotfind a file. There is also the requireconstruct which works like include butemits a fatal error if the specified file is notfound.

I include_once and require_onceworks like include and require,except that the same file is included onlyonce even if it is specified in multipleinclusion statements.

11 / 79

Page 29: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Naming ConventionsI There is no globally accepted naming

convention as in for example Java, but thefollowing is quite common.

I Class and interface names are written inPascalCase, MyFirstClass

I Method names are written in camelCase,myFirstMethod

I Functions, which are methods placedoutside classes, are named withunderscore, my_first_function

I Variables names are written either in camelcase, myFirstVar, or with underscores,my_first_var.

12 / 79

Page 30: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Naming ConventionsI There is no globally accepted naming

convention as in for example Java, but thefollowing is quite common.

I Class and interface names are written inPascalCase, MyFirstClass

I Method names are written in camelCase,myFirstMethod

I Functions, which are methods placedoutside classes, are named withunderscore, my_first_function

I Variables names are written either in camelcase, myFirstVar, or with underscores,my_first_var.

12 / 79

Page 31: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Naming ConventionsI There is no globally accepted naming

convention as in for example Java, but thefollowing is quite common.

I Class and interface names are written inPascalCase, MyFirstClass

I Method names are written in camelCase,myFirstMethod

I Functions, which are methods placedoutside classes, are named withunderscore, my_first_function

I Variables names are written either in camelcase, myFirstVar, or with underscores,my_first_var.

12 / 79

Page 32: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Naming ConventionsI There is no globally accepted naming

convention as in for example Java, but thefollowing is quite common.

I Class and interface names are written inPascalCase, MyFirstClass

I Method names are written in camelCase,myFirstMethod

I Functions, which are methods placedoutside classes, are named withunderscore, my_first_function

I Variables names are written either in camelcase, myFirstVar, or with underscores,my_first_var.

12 / 79

Page 33: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Naming ConventionsI There is no globally accepted naming

convention as in for example Java, but thefollowing is quite common.

I Class and interface names are written inPascalCase, MyFirstClass

I Method names are written in camelCase,myFirstMethod

I Functions, which are methods placedoutside classes, are named withunderscore, my_first_function

I Variables names are written either in camelcase, myFirstVar, or with underscores,my_first_var.

12 / 79

Page 34: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Naming Conventions (Cont’d)

I Constant names are written in upper casewith underscores,MY_FIRST_CONSTANT

I Namespace, which corresponds topackages, are named in PascalCase,MyFirstNamespace

13 / 79

Page 35: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Naming Conventions (Cont’d)

I Constant names are written in upper casewith underscores,MY_FIRST_CONSTANT

I Namespace, which corresponds topackages, are named in PascalCase,MyFirstNamespace

13 / 79

Page 36: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Question 1

14 / 79

Page 37: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

15 / 79

Page 38: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comments

There are three different kinds of comments:// Single line comment

# Single line comment

/*Multiple line comment

*/

16 / 79

Page 39: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Identifiers

I A valid identifier starts with a letter orunderscore, followed by any number ofletters, numbers, or underscores.

I Identifiers are case sensitive.

17 / 79

Page 40: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Identifiers

I A valid identifier starts with a letter orunderscore, followed by any number ofletters, numbers, or underscores.

I Identifiers are case sensitive.

17 / 79

Page 41: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

VariablesI Variables are represented by a dollar sign,$, followed by the name of the variable.

I There are no variable declarations, PHP isdynamically typed.

I A variable is created and assigned anappropriate type when it is first used, andchanges type when needed.$year = "in the eighties"; //year is a string.$year = 84; //year is a number.

I A variable that has never been assigned avalue is unbound and has the value NULL

I The unset function sets a variable toNULL

I The isset function is used to determinewhether a variable is NULL

18 / 79

Page 42: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

VariablesI Variables are represented by a dollar sign,$, followed by the name of the variable.

I There are no variable declarations, PHP isdynamically typed.

I A variable is created and assigned anappropriate type when it is first used, andchanges type when needed.$year = "in the eighties"; //year is a string.$year = 84; //year is a number.

I A variable that has never been assigned avalue is unbound and has the value NULL

I The unset function sets a variable toNULL

I The isset function is used to determinewhether a variable is NULL

18 / 79

Page 43: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

VariablesI Variables are represented by a dollar sign,$, followed by the name of the variable.

I There are no variable declarations, PHP isdynamically typed.

I A variable is created and assigned anappropriate type when it is first used, andchanges type when needed.$year = "in the eighties"; //year is a string.$year = 84; //year is a number.

I A variable that has never been assigned avalue is unbound and has the value NULL

I The unset function sets a variable toNULL

I The isset function is used to determinewhether a variable is NULL

18 / 79

Page 44: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

VariablesI Variables are represented by a dollar sign,$, followed by the name of the variable.

I There are no variable declarations, PHP isdynamically typed.

I A variable is created and assigned anappropriate type when it is first used, andchanges type when needed.$year = "in the eighties"; //year is a string.$year = 84; //year is a number.

I A variable that has never been assigned avalue is unbound and has the value NULL

I The unset function sets a variable toNULL

I The isset function is used to determinewhether a variable is NULL

18 / 79

Page 45: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

VariablesI Variables are represented by a dollar sign,$, followed by the name of the variable.

I There are no variable declarations, PHP isdynamically typed.

I A variable is created and assigned anappropriate type when it is first used, andchanges type when needed.$year = "in the eighties"; //year is a string.$year = 84; //year is a number.

I A variable that has never been assigned avalue is unbound and has the value NULL

I The unset function sets a variable toNULL

I The isset function is used to determinewhether a variable is NULL 18 / 79

Page 46: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

VariablesI Variables are represented by a dollar sign,$, followed by the name of the variable.

I There are no variable declarations, PHP isdynamically typed.

I A variable is created and assigned anappropriate type when it is first used, andchanges type when needed.$year = "in the eighties"; //year is a string.$year = 84; //year is a number.

I A variable that has never been assigned avalue is unbound and has the value NULL

I The unset function sets a variable toNULL

I The isset function is used to determinewhether a variable is NULL 18 / 79

Page 47: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Predefined VariablesI PHP has many predefined variables, that

are always available to a PHP program, forexample:

I $_GET An array with all HTTP GETvariables.

I $_POST An array with all HTTP POSTvariables.

I $_SESSION An array with all sessionvariables.

I $_COOKIE An array with all HTTPCookies.

I These are called superglobals, and arealways accessible, regardless of scope

19 / 79

Page 48: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Predefined VariablesI PHP has many predefined variables, that

are always available to a PHP program, forexample:

I $_GET An array with all HTTP GETvariables.

I $_POST An array with all HTTP POSTvariables.

I $_SESSION An array with all sessionvariables.

I $_COOKIE An array with all HTTPCookies.

I These are called superglobals, and arealways accessible, regardless of scope

19 / 79

Page 49: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Predefined VariablesI PHP has many predefined variables, that

are always available to a PHP program, forexample:

I $_GET An array with all HTTP GETvariables.

I $_POST An array with all HTTP POSTvariables.

I $_SESSION An array with all sessionvariables.

I $_COOKIE An array with all HTTPCookies.

I These are called superglobals, and arealways accessible, regardless of scope

19 / 79

Page 50: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Predefined VariablesI PHP has many predefined variables, that

are always available to a PHP program, forexample:

I $_GET An array with all HTTP GETvariables.

I $_POST An array with all HTTP POSTvariables.

I $_SESSION An array with all sessionvariables.

I $_COOKIE An array with all HTTPCookies.

I These are called superglobals, and arealways accessible, regardless of scope

19 / 79

Page 51: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Predefined VariablesI PHP has many predefined variables, that

are always available to a PHP program, forexample:

I $_GET An array with all HTTP GETvariables.

I $_POST An array with all HTTP POSTvariables.

I $_SESSION An array with all sessionvariables.

I $_COOKIE An array with all HTTPCookies.

I These are called superglobals, and arealways accessible, regardless of scope

19 / 79

Page 52: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Predefined VariablesI PHP has many predefined variables, that

are always available to a PHP program, forexample:

I $_GET An array with all HTTP GETvariables.

I $_POST An array with all HTTP POSTvariables.

I $_SESSION An array with all sessionvariables.

I $_COOKIE An array with all HTTPCookies.

I These are called superglobals, and arealways accessible, regardless of scope

19 / 79

Page 53: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Constants

I Constants can be defined with the constand define constructs.

I The following two examples are equal.define("GREETING", "Hello world");echo GREETING;

const GREETING = "Hello World";echo GREETING;

I Note that constant names are not prefixedwith $

20 / 79

Page 54: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Constants

I Constants can be defined with the constand define constructs.

I The following two examples are equal.define("GREETING", "Hello world");echo GREETING;

const GREETING = "Hello World";echo GREETING;

I Note that constant names are not prefixedwith $

20 / 79

Page 55: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Constants

I Constants can be defined with the constand define constructs.

I The following two examples are equal.define("GREETING", "Hello world");echo GREETING;

const GREETING = "Hello World";echo GREETING;

I Note that constant names are not prefixedwith $

20 / 79

Page 56: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Magic Constants

I There are built-in magic constants that arealways available.

I Some magic constants follow.

__FILE__ Path and name of the currentlyexecuting PHP file.

__DIR__ Path to directory with the currentlyexecuting PHP file.

__FUNCTION__ Name of the currently executingfunction.

21 / 79

Page 57: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Magic Constants

I There are built-in magic constants that arealways available.

I Some magic constants follow.__FILE__ Path and name of the currently

executing PHP file.

__DIR__ Path to directory with the currentlyexecuting PHP file.

__FUNCTION__ Name of the currently executingfunction.

21 / 79

Page 58: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Magic Constants

I There are built-in magic constants that arealways available.

I Some magic constants follow.__FILE__ Path and name of the currently

executing PHP file.__DIR__ Path to directory with the currently

executing PHP file.

__FUNCTION__ Name of the currently executingfunction.

21 / 79

Page 59: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Magic Constants

I There are built-in magic constants that arealways available.

I Some magic constants follow.__FILE__ Path and name of the currently

executing PHP file.__DIR__ Path to directory with the currently

executing PHP file.__FUNCTION__ Name of the currently executing

function.

21 / 79

Page 60: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Magic Constants

I There are built-in magic constants that arealways available.

I Some magic constants follow.__FILE__ Path and name of the currently

executing PHP file.__DIR__ Path to directory with the currently

executing PHP file.__FUNCTION__ Name of the currently executing

function.

21 / 79

Page 61: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

TypesI There are eight different types.

I Four scalar types, boolean (true orfalse; 0, “”, and “0” are false, others true)integer (platform-dependent size),double (platform-dependent size), string.

I Two compound types, array and object.I Two special types, resource (a reference to

an external resource, like a database) andNULL (the value of an unbound variable).

I To print type and value of an expression,use the var_dump function.

I To get a human-readable representation ofa type, use the gettype function.

I To check for a certain type, use theis_<type> functions.

22 / 79

Page 62: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

TypesI There are eight different types.

I Four scalar types, boolean (true orfalse; 0, “”, and “0” are false, others true)integer (platform-dependent size),double (platform-dependent size), string.

I Two compound types, array and object.

I Two special types, resource (a reference toan external resource, like a database) andNULL (the value of an unbound variable).

I To print type and value of an expression,use the var_dump function.

I To get a human-readable representation ofa type, use the gettype function.

I To check for a certain type, use theis_<type> functions.

22 / 79

Page 63: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

TypesI There are eight different types.

I Four scalar types, boolean (true orfalse; 0, “”, and “0” are false, others true)integer (platform-dependent size),double (platform-dependent size), string.

I Two compound types, array and object.I Two special types, resource (a reference to

an external resource, like a database) andNULL (the value of an unbound variable).

I To print type and value of an expression,use the var_dump function.

I To get a human-readable representation ofa type, use the gettype function.

I To check for a certain type, use theis_<type> functions.

22 / 79

Page 64: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

TypesI There are eight different types.

I Four scalar types, boolean (true orfalse; 0, “”, and “0” are false, others true)integer (platform-dependent size),double (platform-dependent size), string.

I Two compound types, array and object.I Two special types, resource (a reference to

an external resource, like a database) andNULL (the value of an unbound variable).

I To print type and value of an expression,use the var_dump function.

I To get a human-readable representation ofa type, use the gettype function.

I To check for a certain type, use theis_<type> functions.

22 / 79

Page 65: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

TypesI There are eight different types.

I Four scalar types, boolean (true orfalse; 0, “”, and “0” are false, others true)integer (platform-dependent size),double (platform-dependent size), string.

I Two compound types, array and object.I Two special types, resource (a reference to

an external resource, like a database) andNULL (the value of an unbound variable).

I To print type and value of an expression,use the var_dump function.

I To get a human-readable representation ofa type, use the gettype function.

I To check for a certain type, use theis_<type> functions.

22 / 79

Page 66: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

TypesI There are eight different types.

I Four scalar types, boolean (true orfalse; 0, “”, and “0” are false, others true)integer (platform-dependent size),double (platform-dependent size), string.

I Two compound types, array and object.I Two special types, resource (a reference to

an external resource, like a database) andNULL (the value of an unbound variable).

I To print type and value of an expression,use the var_dump function.

I To get a human-readable representation ofa type, use the gettype function.

I To check for a certain type, use theis_<type> functions.

22 / 79

Page 67: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

TypesI There are eight different types.

I Four scalar types, boolean (true orfalse; 0, “”, and “0” are false, others true)integer (platform-dependent size),double (platform-dependent size), string.

I Two compound types, array and object.I Two special types, resource (a reference to

an external resource, like a database) andNULL (the value of an unbound variable).

I To print type and value of an expression,use the var_dump function.

I To get a human-readable representation ofa type, use the gettype function.

I To check for a certain type, use theis_<type> functions.

22 / 79

Page 68: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The String TypeI A string consists of one-byte characters.I Variables and escape sequences are not

expanded with single-quoted string literals.$a = 2;echo ’The value is \n $a’;// Prints: The value is \n $a

I Variables and escape sequences areexpanded with double-quoted string literals.

$a = 2;echo "The value is \n $a";// Prints: The value is// 2

I Note that \n is expanded to a line break,not to a <br/> tag.

23 / 79

Page 69: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The String TypeI A string consists of one-byte characters.I Variables and escape sequences are not

expanded with single-quoted string literals.$a = 2;echo ’The value is \n $a’;// Prints: The value is \n $a

I Variables and escape sequences areexpanded with double-quoted string literals.

$a = 2;echo "The value is \n $a";// Prints: The value is// 2

I Note that \n is expanded to a line break,not to a <br/> tag.

23 / 79

Page 70: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The String TypeI A string consists of one-byte characters.I Variables and escape sequences are not

expanded with single-quoted string literals.$a = 2;echo ’The value is \n $a’;// Prints: The value is \n $a

I Variables and escape sequences areexpanded with double-quoted string literals.

$a = 2;echo "The value is \n $a";// Prints: The value is// 2

I Note that \n is expanded to a line break,not to a <br/> tag.

23 / 79

Page 71: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The String TypeI A string consists of one-byte characters.I Variables and escape sequences are not

expanded with single-quoted string literals.$a = 2;echo ’The value is \n $a’;// Prints: The value is \n $a

I Variables and escape sequences areexpanded with double-quoted string literals.

$a = 2;echo "The value is \n $a";// Prints: The value is// 2

I Note that \n is expanded to a line break,not to a <br/> tag.

23 / 79

Page 72: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

String Concatenation

I The string concatenation operator is a dot,.$what = "Hello";$who = "World!";echo $what . " " . $who;

24 / 79

Page 73: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Arithmetic Operators

I The usual +, -, *, / and %.I If the result of integer division is not an

integer, a double is returned.

I Any integer operation that results inoverflow produces a double.

I The modulus operator, %, coerces itsoperands to integer.

25 / 79

Page 74: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Arithmetic Operators

I The usual +, -, *, / and %.I If the result of integer division is not an

integer, a double is returned.I Any integer operation that results in

overflow produces a double.

I The modulus operator, %, coerces itsoperands to integer.

25 / 79

Page 75: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Arithmetic Operators

I The usual +, -, *, / and %.I If the result of integer division is not an

integer, a double is returned.I Any integer operation that results in

overflow produces a double.I The modulus operator, %, coerces its

operands to integer.

25 / 79

Page 76: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Arithmetic Operators

I The usual +, -, *, / and %.I If the result of integer division is not an

integer, a double is returned.I Any integer operation that results in

overflow produces a double.I The modulus operator, %, coerces its

operands to integer.

25 / 79

Page 77: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Arithmetic and String Functions

I Some available arithmetic functions arefloor, ceil, round, abs, min, max,rand.

I Some available string functions arestrlen, strcmp, strpos, substr,strlen, chop, trim.

26 / 79

Page 78: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Arithmetic and String Functions

I Some available arithmetic functions arefloor, ceil, round, abs, min, max,rand.

I Some available string functions arestrlen, strcmp, strpos, substr,strlen, chop, trim.

26 / 79

Page 79: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Cast (Explicit Conversion)

I Three ways to specify an explicitconversion.(int)$totalintval($total)settype($total, "integer")

27 / 79

Page 80: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Output

I Output from the PHP program is included inthe out stream from server to browser.

I There are tree ways to generate output.The first two, print and echo, differ onlyin that print has a return value.$what = "Hello";$who = "World!";echo $what . " " . $who;print($what . " " . $who);

I The third way, printf, has the sameformatting flags as the C function printf.

28 / 79

Page 81: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Output

I Output from the PHP program is included inthe out stream from server to browser.

I There are tree ways to generate output.The first two, print and echo, differ onlyin that print has a return value.$what = "Hello";$who = "World!";echo $what . " " . $who;print($what . " " . $who);

I The third way, printf, has the sameformatting flags as the C function printf.

28 / 79

Page 82: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Output

I Output from the PHP program is included inthe out stream from server to browser.

I There are tree ways to generate output.The first two, print and echo, differ onlyin that print has a return value.$what = "Hello";$who = "World!";echo $what . " " . $who;print($what . " " . $who);

I The third way, printf, has the sameformatting flags as the C function printf.

28 / 79

Page 83: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Debug Output to ConsoleI Output for development purposes, for

example to track the flow through theprogram, should not appear in the webpage.

I Such output should be directed to theJavaScript console. The following functioncreates JavaScript code that prints thespecified string to the console.function cons($param) {

echo "<script>" ."console.log(’$param’);" .

"</script>";}

29 / 79

Page 84: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Debug Output to ConsoleI Output for development purposes, for

example to track the flow through theprogram, should not appear in the webpage.

I Such output should be directed to theJavaScript console. The following functioncreates JavaScript code that prints thespecified string to the console.function cons($param) {

echo "<script>" ."console.log(’$param’);" .

"</script>";}

29 / 79

Page 85: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Error Messages From InterpreterI The PHP interpreter’s output, for example exception

reports, goes to the web server’s log.

I The location of that log depends on server andoperating system. You might be able to find it byexecuting a php file with the statementphpinfo(), and looking for APACHE_LOG_DIRin the output.

I On my Ubuntu/Apache platform, the log is in/var/log/apache2/error.log.

I It is strongly recommended to locate this log sincethat is where you will see if your PHP programcrashed.

I Remember that PHP programs are not compiled.The only way to be notified of coding errors isthrough the above mentioned log.

30 / 79

Page 86: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Error Messages From InterpreterI The PHP interpreter’s output, for example exception

reports, goes to the web server’s log.

I The location of that log depends on server andoperating system. You might be able to find it byexecuting a php file with the statementphpinfo(), and looking for APACHE_LOG_DIRin the output.

I On my Ubuntu/Apache platform, the log is in/var/log/apache2/error.log.

I It is strongly recommended to locate this log sincethat is where you will see if your PHP programcrashed.

I Remember that PHP programs are not compiled.The only way to be notified of coding errors isthrough the above mentioned log.

30 / 79

Page 87: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Error Messages From InterpreterI The PHP interpreter’s output, for example exception

reports, goes to the web server’s log.

I The location of that log depends on server andoperating system. You might be able to find it byexecuting a php file with the statementphpinfo(), and looking for APACHE_LOG_DIRin the output.

I On my Ubuntu/Apache platform, the log is in/var/log/apache2/error.log.

I It is strongly recommended to locate this log sincethat is where you will see if your PHP programcrashed.

I Remember that PHP programs are not compiled.The only way to be notified of coding errors isthrough the above mentioned log. 30 / 79

Page 88: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Error Messages From InterpreterI The PHP interpreter’s output, for example exception

reports, goes to the web server’s log.

I The location of that log depends on server andoperating system. You might be able to find it byexecuting a php file with the statementphpinfo(), and looking for APACHE_LOG_DIRin the output.

I On my Ubuntu/Apache platform, the log is in/var/log/apache2/error.log.

I It is strongly recommended to locate this log sincethat is where you will see if your PHP programcrashed.

I Remember that PHP programs are not compiled.The only way to be notified of coding errors isthrough the above mentioned log. 30 / 79

Page 89: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comparison Operators

I The usual six comparison operators: == ,!= , < , > , <= , >=

I Operands are converted if necessary

I If one operand is a string and one is a number,the string is converted to a number.

I If one operand is a boolean or null, bothoperands are converted to booleans.

I The unusual two comparison operators,=== and !==, behave as == and !=,except that no conversions are done. Theexpression can only be true if the operandshave the same type.

31 / 79

Page 90: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comparison Operators

I The usual six comparison operators: == ,!= , < , > , <= , >=

I Operands are converted if necessaryI If one operand is a string and one is a number,

the string is converted to a number.

I If one operand is a boolean or null, bothoperands are converted to booleans.

I The unusual two comparison operators,=== and !==, behave as == and !=,except that no conversions are done. Theexpression can only be true if the operandshave the same type.

31 / 79

Page 91: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comparison Operators

I The usual six comparison operators: == ,!= , < , > , <= , >=

I Operands are converted if necessaryI If one operand is a string and one is a number,

the string is converted to a number.I If one operand is a boolean or null, both

operands are converted to booleans.

I The unusual two comparison operators,=== and !==, behave as == and !=,except that no conversions are done. Theexpression can only be true if the operandshave the same type.

31 / 79

Page 92: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comparison Operators

I The usual six comparison operators: == ,!= , < , > , <= , >=

I Operands are converted if necessaryI If one operand is a string and one is a number,

the string is converted to a number.I If one operand is a boolean or null, both

operands are converted to booleans.

I The unusual two comparison operators,=== and !==, behave as == and !=,except that no conversions are done. Theexpression can only be true if the operandshave the same type.

31 / 79

Page 93: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comparison Operators

I The usual six comparison operators: == ,!= , < , > , <= , >=

I Operands are converted if necessaryI If one operand is a string and one is a number,

the string is converted to a number.I If one operand is a boolean or null, both

operands are converted to booleans.

I The unusual two comparison operators,=== and !==, behave as == and !=,except that no conversions are done. Theexpression can only be true if the operandshave the same type.

31 / 79

Page 94: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Logical Operators

I The logical operators come in two flavors.The difference is that number one hashigher precedence than assignmentoperators while number two has lower.

1. &&, ! and ||2. and, or and xor

32 / 79

Page 95: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Control Statements

I The following control statements behave asin Java, if, else, else if, while,do-while, for, switch, break andcontinue.

I There is also the foreach statementwhich is different from Java. It will becovered below, after arrays.

33 / 79

Page 96: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Control Statements

I The following control statements behave asin Java, if, else, else if, while,do-while, for, switch, break andcontinue.

I There is also the foreach statementwhich is different from Java. It will becovered below, after arrays.

33 / 79

Page 97: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Question 2

34 / 79

Page 98: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Question 3

35 / 79

Page 99: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

36 / 79

Page 100: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Array Type

I Not like arrays of any other language.I A PHP array is actually an ordered map.

I A map is a type that associates values to keys.I Ordered means elements are located at

indexes.

I This means arrays can be used for manydifferent data structures, like lists and hashtables.

37 / 79

Page 101: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Array Type

I Not like arrays of any other language.I A PHP array is actually an ordered map.

I A map is a type that associates values to keys.I Ordered means elements are located at

indexes.

I This means arrays can be used for manydifferent data structures, like lists and hashtables.

37 / 79

Page 102: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Array Type

I Not like arrays of any other language.I A PHP array is actually an ordered map.

I A map is a type that associates values to keys.I Ordered means elements are located at

indexes.

I This means arrays can be used for manydifferent data structures, like lists and hashtables.

37 / 79

Page 103: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Internal Array Structure

Figure from Sebesta: Programming the World Wide Web

38 / 79

Page 104: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

To Create an ArrayI Arrays can be created with the array()

construct, which takes comma-separatedkey => value pairs as arguments.$my_array = array(

3 => "value1","key2" => 38

)

I Arrays can also be created with the shortarray syntax, []$my_array = [

3 => "value1","key2" => 38

]

39 / 79

Page 105: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

To Create an ArrayI Arrays can be created with the array()

construct, which takes comma-separatedkey => value pairs as arguments.$my_array = array(

3 => "value1","key2" => 38

)

I Arrays can also be created with the shortarray syntax, []$my_array = [

3 => "value1","key2" => 38

]

39 / 79

Page 106: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Keys and Values

I The key must be an integer or a string, thevalue can be any type.

I Omitted keys, as below, are assigned theinteger that is nearest higher than thehighest previous integer key, or zero if thereis no previous integer key.$array = array("foo", "bar", "hi", "there");

I Assigning to a key that already has a valuemeans the old value is overwritten.

40 / 79

Page 107: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Keys and Values

I The key must be an integer or a string, thevalue can be any type.

I Omitted keys, as below, are assigned theinteger that is nearest higher than thehighest previous integer key, or zero if thereis no previous integer key.$array = array("foo", "bar", "hi", "there");

I Assigning to a key that already has a valuemeans the old value is overwritten.

40 / 79

Page 108: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Keys and Values

I The key must be an integer or a string, thevalue can be any type.

I Omitted keys, as below, are assigned theinteger that is nearest higher than thehighest previous integer key, or zero if thereis no previous integer key.$array = array("foo", "bar", "hi", "there");

I Assigning to a key that already has a valuemeans the old value is overwritten.

40 / 79

Page 109: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Access Elements Using Brackets

I Array elements are accessed usingbrackets.

I If an element with the specified key doesnot exist, it is created.

I If the array itself does not exist, it is created.$arr[1] = "hi";echo "$arr[1]"; // Prints: hi

41 / 79

Page 110: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Access Elements Using Brackets

I Array elements are accessed usingbrackets.

I If an element with the specified key doesnot exist, it is created.

I If the array itself does not exist, it is created.$arr[1] = "hi";echo "$arr[1]"; // Prints: hi

41 / 79

Page 111: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Access Elements Using Brackets

I Array elements are accessed usingbrackets.

I If an element with the specified key doesnot exist, it is created.

I If the array itself does not exist, it is created.$arr[1] = "hi";echo "$arr[1]"; // Prints: hi

41 / 79

Page 112: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Some Array Functionsarray_keys($arr) Extracts all keys.array_values($arr) Extracts all values.

array_key_exists($arr) Tests if thereis a key with the specified value.

sizeof($arr) Returns the number ofelements.

explode($delim, $str) Returns anarray with the elements of the string$str split at the delimiter $delim

implode($glue, $arr) Returns a stringwith the elements of the array $arrseparated by $glue

42 / 79

Page 113: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Some Array Functionsarray_keys($arr) Extracts all keys.array_values($arr) Extracts all values.array_key_exists($arr) Tests if there

is a key with the specified value.

sizeof($arr) Returns the number ofelements.

explode($delim, $str) Returns anarray with the elements of the string$str split at the delimiter $delim

implode($glue, $arr) Returns a stringwith the elements of the array $arrseparated by $glue

42 / 79

Page 114: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Some Array Functionsarray_keys($arr) Extracts all keys.array_values($arr) Extracts all values.array_key_exists($arr) Tests if there

is a key with the specified value.sizeof($arr) Returns the number of

elements.

explode($delim, $str) Returns anarray with the elements of the string$str split at the delimiter $delim

implode($glue, $arr) Returns a stringwith the elements of the array $arrseparated by $glue

42 / 79

Page 115: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Some Array Functionsarray_keys($arr) Extracts all keys.array_values($arr) Extracts all values.array_key_exists($arr) Tests if there

is a key with the specified value.sizeof($arr) Returns the number of

elements.explode($delim, $str) Returns an

array with the elements of the string$str split at the delimiter $delim

implode($glue, $arr) Returns a stringwith the elements of the array $arrseparated by $glue

42 / 79

Page 116: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Some Array Functionsarray_keys($arr) Extracts all keys.array_values($arr) Extracts all values.array_key_exists($arr) Tests if there

is a key with the specified value.sizeof($arr) Returns the number of

elements.explode($delim, $str) Returns an

array with the elements of the string$str split at the delimiter $delim

implode($glue, $arr) Returns a stringwith the elements of the array $arrseparated by $glue

42 / 79

Page 117: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Some Array Functionsarray_keys($arr) Extracts all keys.array_values($arr) Extracts all values.array_key_exists($arr) Tests if there

is a key with the specified value.sizeof($arr) Returns the number of

elements.explode($delim, $str) Returns an

array with the elements of the string$str split at the delimiter $delim

implode($glue, $arr) Returns a stringwith the elements of the array $arrseparated by $glue

42 / 79

Page 118: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Iterating Over Elements

I An array can be iterated with the foreachconstruct.foreach ($arr as $value) {

echo("$value");}

foreach ($arr as $key => $value) {echo "Key: $key, Value: $value; ";

}

43 / 79

Page 119: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Iterating Over Elements (Cont’d)I Also the while construct can be used.

while (list(, $value) = each($arr)) {echo("$value");

}

while (list($key, $value) = each($arr)) {echo "Key: $key, Value: $value;";

}

I each returns the current key/value pair andadvances the cursor.

I list assigns multiple values from an array.$arr = array(’a’, ’b’, ’c’);list($elem1, $elem2, $elem3) = $arr;

I Other useful functions are reset, next, prev,current

44 / 79

Page 120: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Iterating Over Elements (Cont’d)I Also the while construct can be used.

while (list(, $value) = each($arr)) {echo("$value");

}

while (list($key, $value) = each($arr)) {echo "Key: $key, Value: $value;";

}

I each returns the current key/value pair andadvances the cursor.

I list assigns multiple values from an array.$arr = array(’a’, ’b’, ’c’);list($elem1, $elem2, $elem3) = $arr;

I Other useful functions are reset, next, prev,current

44 / 79

Page 121: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Iterating Over Elements (Cont’d)I Also the while construct can be used.

while (list(, $value) = each($arr)) {echo("$value");

}

while (list($key, $value) = each($arr)) {echo "Key: $key, Value: $value;";

}

I each returns the current key/value pair andadvances the cursor.

I list assigns multiple values from an array.$arr = array(’a’, ’b’, ’c’);list($elem1, $elem2, $elem3) = $arr;

I Other useful functions are reset, next, prev,current

44 / 79

Page 122: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Iterating Over Elements (Cont’d)I Also the while construct can be used.

while (list(, $value) = each($arr)) {echo("$value");

}

while (list($key, $value) = each($arr)) {echo "Key: $key, Value: $value;";

}

I each returns the current key/value pair andadvances the cursor.

I list assigns multiple values from an array.$arr = array(’a’, ’b’, ’c’);list($elem1, $elem2, $elem3) = $arr;

I Other useful functions are reset, next, prev,current

44 / 79

Page 123: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Question 4

45 / 79

Page 124: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

46 / 79

Page 125: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

To Define a FunctionI Functions are defined with the function

keyword.function sum($op1, $op2) {

return $op1 + $op2;}

I Any valid PHP code may appear inside afunction, even other functions and classdefinitions.

I All functions and classes have globalscope, they can be called outside a functioneven if they were defined inside.

I Functions need not be defined before theyare referenced.

47 / 79

Page 126: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

To Define a FunctionI Functions are defined with the function

keyword.function sum($op1, $op2) {

return $op1 + $op2;}

I Any valid PHP code may appear inside afunction, even other functions and classdefinitions.

I All functions and classes have globalscope, they can be called outside a functioneven if they were defined inside.

I Functions need not be defined before theyare referenced.

47 / 79

Page 127: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

To Define a FunctionI Functions are defined with the function

keyword.function sum($op1, $op2) {

return $op1 + $op2;}

I Any valid PHP code may appear inside afunction, even other functions and classdefinitions.

I All functions and classes have globalscope, they can be called outside a functioneven if they were defined inside.

I Functions need not be defined before theyare referenced.

47 / 79

Page 128: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

To Define a FunctionI Functions are defined with the function

keyword.function sum($op1, $op2) {

return $op1 + $op2;}

I Any valid PHP code may appear inside afunction, even other functions and classdefinitions.

I All functions and classes have globalscope, they can be called outside a functioneven if they were defined inside.

I Functions need not be defined before theyare referenced.

47 / 79

Page 129: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ArgumentsI Arguments are by default passed by value.I To pass by reference, prepend an

ampersand, &, to the argument.function add_a_dot(&$string) {

$string .= ’.’;}

$str = ’My name is Olle’;add_a_dot($str);echo $str; // prints ’My name is Olle.’

I There can be default argument values.function add_two($op1, $op2=2) {

return $op1 + $op2;}echo add_two(3); // prints ’5’

48 / 79

Page 130: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ArgumentsI Arguments are by default passed by value.I To pass by reference, prepend an

ampersand, &, to the argument.function add_a_dot(&$string) {

$string .= ’.’;}

$str = ’My name is Olle’;add_a_dot($str);echo $str; // prints ’My name is Olle.’

I There can be default argument values.function add_two($op1, $op2=2) {

return $op1 + $op2;}echo add_two(3); // prints ’5’

48 / 79

Page 131: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ArgumentsI Arguments are by default passed by value.I To pass by reference, prepend an

ampersand, &, to the argument.function add_a_dot(&$string) {

$string .= ’.’;}

$str = ’My name is Olle’;add_a_dot($str);echo $str; // prints ’My name is Olle.’

I There can be default argument values.function add_two($op1, $op2=2) {

return $op1 + $op2;}echo add_two(3); // prints ’5’

48 / 79

Page 132: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Variable-Length Argument ListI A variable-length argument list is

implemented with the functionsfunc_num_args(),func_get_arg() andfunc_get_args().function sum() {

$acc = 0;foreach (func_get_args() as $n) {

$acc += $n;}return $acc;

}

echo sum(1, 2, 3, 4); // prints ’10’

49 / 79

Page 133: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Variable FunctionA variable function is a function whose name isthe value of a variable. Variables with appendedparentheses are treated as variable functions.function foo() {

echo "In foo";}

function bar() {echo "In bar";

}

$func = ’foo’;$func(); // prints ’In foo’

$func = ’bar’;$func(); // prints ’In bar’

50 / 79

Page 134: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Anonymous Functions

I An anonymous function is defined in anexpression, instead of a declaration.

I The reference to the anonymous function isstored in a variable, which can then beused to invoke the function.

I $myFunc = function($a, $b) {return $a + $b;

};$myFunc(4, 3); //Returns 7

51 / 79

Page 135: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Anonymous Functions

I An anonymous function is defined in anexpression, instead of a declaration.

I The reference to the anonymous function isstored in a variable, which can then beused to invoke the function.

I $myFunc = function($a, $b) {return $a + $b;

};$myFunc(4, 3); //Returns 7

51 / 79

Page 136: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Anonymous Functions

I An anonymous function is defined in anexpression, instead of a declaration.

I The reference to the anonymous function isstored in a variable, which can then beused to invoke the function.

I $myFunc = function($a, $b) {return $a + $b;

};$myFunc(4, 3); //Returns 7

51 / 79

Page 137: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ClosuresI A closure means that a nested function can

access a variable in its outer function afterthe outer is closed.

I The variable in the outer function will havethe value it had when the outer functioncreated the nested function.

I function outer($param) {return function() use ($param) {

echo "Inner got ’$param’";};

}

$func = outer(’Hi!’);echo $func(); //prints Inner got ’Hi!’

I As can be seen above, closures are definedwith the construct use.

52 / 79

Page 138: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ClosuresI A closure means that a nested function can

access a variable in its outer function afterthe outer is closed.

I The variable in the outer function will havethe value it had when the outer functioncreated the nested function.

I function outer($param) {return function() use ($param) {

echo "Inner got ’$param’";};

}

$func = outer(’Hi!’);echo $func(); //prints Inner got ’Hi!’

I As can be seen above, closures are definedwith the construct use. 52 / 79

Page 139: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ClosuresI A closure means that a nested function can

access a variable in its outer function afterthe outer is closed.

I The variable in the outer function will havethe value it had when the outer functioncreated the nested function.

I function outer($param) {return function() use ($param) {

echo "Inner got ’$param’";};

}

$func = outer(’Hi!’);echo $func(); //prints Inner got ’Hi!’

I As can be seen above, closures are definedwith the construct use. 52 / 79

Page 140: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Internal Functions

I There are many internal (built-in) functions,and also many PHP extensions with yetmore functions.

I Reference manual for internal functions canbe found athttp://php.net/manual/en/funcref.php

http://www.w3schools.com/php/default.asp

53 / 79

Page 141: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Internal Functions

I There are many internal (built-in) functions,and also many PHP extensions with yetmore functions.

I Reference manual for internal functions canbe found athttp://php.net/manual/en/funcref.php

http://www.w3schools.com/php/default.asp

53 / 79

Page 142: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Type HintingI Type hinting is a way to introduce type

safety in the otherwise type unsafe PHPlanguage.

I Forces parameters to be of the specifiedclass or interface, or to be an array or afunction.

I The following code forces the paramparameter to be an instance of the classMyClass.function test(MyClass $param) {}

I Before PHP 7, type hinting could not beused for primitive types such as integeror string.

54 / 79

Page 143: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Type HintingI Type hinting is a way to introduce type

safety in the otherwise type unsafe PHPlanguage.

I Forces parameters to be of the specifiedclass or interface, or to be an array or afunction.

I The following code forces the paramparameter to be an instance of the classMyClass.function test(MyClass $param) {}

I Before PHP 7, type hinting could not beused for primitive types such as integeror string.

54 / 79

Page 144: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Type HintingI Type hinting is a way to introduce type

safety in the otherwise type unsafe PHPlanguage.

I Forces parameters to be of the specifiedclass or interface, or to be an array or afunction.

I The following code forces the paramparameter to be an instance of the classMyClass.function test(MyClass $param) {}

I Before PHP 7, type hinting could not beused for primitive types such as integeror string.

54 / 79

Page 145: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Type HintingI Type hinting is a way to introduce type

safety in the otherwise type unsafe PHPlanguage.

I Forces parameters to be of the specifiedclass or interface, or to be an array or afunction.

I The following code forces the paramparameter to be an instance of the classMyClass.function test(MyClass $param) {}

I Before PHP 7, type hinting could not beused for primitive types such as integeror string.

54 / 79

Page 146: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Question 5

55 / 79

Page 147: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

56 / 79

Page 148: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Object ModelI The object model is class based as in Java.

I Class and interface definitions, inheritance,implementation and instantiation is similar to Java.

I class SimpleClass {private $var = ’some value’;

public function displayVar() {echo $this->var;

}}

$instance = new SimpleClass();echo $instance->displayVar();

I Note 1: The syntax for method call is ->

I Note 2: It is not possible to specify a visibility for theclass itself, all classes are public.

57 / 79

Page 149: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Object ModelI The object model is class based as in Java.

I Class and interface definitions, inheritance,implementation and instantiation is similar to Java.

I class SimpleClass {private $var = ’some value’;

public function displayVar() {echo $this->var;

}}

$instance = new SimpleClass();echo $instance->displayVar();

I Note 1: The syntax for method call is ->

I Note 2: It is not possible to specify a visibility for theclass itself, all classes are public.

57 / 79

Page 150: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Object ModelI The object model is class based as in Java.

I Class and interface definitions, inheritance,implementation and instantiation is similar to Java.

I class SimpleClass {private $var = ’some value’;

public function displayVar() {echo $this->var;

}}

$instance = new SimpleClass();echo $instance->displayVar();

I Note 1: The syntax for method call is ->

I Note 2: It is not possible to specify a visibility for theclass itself, all classes are public.

57 / 79

Page 151: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Object ModelI The object model is class based as in Java.

I Class and interface definitions, inheritance,implementation and instantiation is similar to Java.

I class SimpleClass {private $var = ’some value’;

public function displayVar() {echo $this->var;

}}

$instance = new SimpleClass();echo $instance->displayVar();

I Note 1: The syntax for method call is ->

I Note 2: It is not possible to specify a visibility for theclass itself, all classes are public. 57 / 79

Page 152: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Object ModelI The object model is class based as in Java.

I Class and interface definitions, inheritance,implementation and instantiation is similar to Java.

I class SimpleClass {private $var = ’some value’;

public function displayVar() {echo $this->var;

}}

$instance = new SimpleClass();echo $instance->displayVar();

I Note 1: The syntax for method call is ->

I Note 2: It is not possible to specify a visibility for theclass itself, all classes are public. 57 / 79

Page 153: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Properties, Methods and Visibility

I Properties and methods are as in Java.See previous slide for an example.

I The visibilities are public, protectedand private. The meanings are thesame as in Java.

I The default visibility is public.I There is no package private visibility since

there are no packages.

58 / 79

Page 154: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Properties, Methods and Visibility

I Properties and methods are as in Java.See previous slide for an example.

I The visibilities are public, protectedand private. The meanings are thesame as in Java.

I The default visibility is public.

I There is no package private visibility sincethere are no packages.

58 / 79

Page 155: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Properties, Methods and Visibility

I Properties and methods are as in Java.See previous slide for an example.

I The visibilities are public, protectedand private. The meanings are thesame as in Java.

I The default visibility is public.I There is no package private visibility since

there are no packages.

58 / 79

Page 156: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Properties, Methods and Visibility

I Properties and methods are as in Java.See previous slide for an example.

I The visibilities are public, protectedand private. The meanings are thesame as in Java.

I The default visibility is public.I There is no package private visibility since

there are no packages.

58 / 79

Page 157: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ConstructorsI Constructors work the same ways as in

Java, but they are always called__construct.

I class SimpleClass {private $var;

public function __construct($var) {$this->var = $var;

}}

I Note 1: Also the this variable is prefixedwith $

I Note 2: There is no overloading, there canbe only one constructor per class.

59 / 79

Page 158: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ConstructorsI Constructors work the same ways as in

Java, but they are always called__construct.

I class SimpleClass {private $var;

public function __construct($var) {$this->var = $var;

}}

I Note 1: Also the this variable is prefixedwith $

I Note 2: There is no overloading, there canbe only one constructor per class.

59 / 79

Page 159: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ConstructorsI Constructors work the same ways as in

Java, but they are always called__construct.

I class SimpleClass {private $var;

public function __construct($var) {$this->var = $var;

}}

I Note 1: Also the this variable is prefixedwith $

I Note 2: There is no overloading, there canbe only one constructor per class.

59 / 79

Page 160: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

ConstructorsI Constructors work the same ways as in

Java, but they are always called__construct.

I class SimpleClass {private $var;

public function __construct($var) {$this->var = $var;

}}

I Note 1: Also the this variable is prefixedwith $

I Note 2: There is no overloading, there canbe only one constructor per class.

59 / 79

Page 161: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

DestructorsI Unlike Java, the destructor is called when

the last reference to the object is removed.I The destructor is called __destruct

I class SimpleClass {public function __destruct() {

echo ’running destructor’;}

}

$instance = new SimpleClass();

I The code above prints runningdestructor since the last reference tothe object is removed when program ends.

I Note that the destructor can not take anyparameters.

60 / 79

Page 162: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

DestructorsI Unlike Java, the destructor is called when

the last reference to the object is removed.I The destructor is called __destructI class SimpleClass {

public function __destruct() {echo ’running destructor’;

}}

$instance = new SimpleClass();

I The code above prints runningdestructor since the last reference tothe object is removed when program ends.

I Note that the destructor can not take anyparameters.

60 / 79

Page 163: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

DestructorsI Unlike Java, the destructor is called when

the last reference to the object is removed.I The destructor is called __destructI class SimpleClass {

public function __destruct() {echo ’running destructor’;

}}

$instance = new SimpleClass();

I The code above prints runningdestructor since the last reference tothe object is removed when program ends.

I Note that the destructor can not take anyparameters.

60 / 79

Page 164: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

DestructorsI Unlike Java, the destructor is called when

the last reference to the object is removed.I The destructor is called __destructI class SimpleClass {

public function __destruct() {echo ’running destructor’;

}}

$instance = new SimpleClass();

I The code above prints runningdestructor since the last reference tothe object is removed when program ends.

I Note that the destructor can not take anyparameters.

60 / 79

Page 165: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

DestructorsI Unlike Java, the destructor is called when

the last reference to the object is removed.I The destructor is called __destructI class SimpleClass {

public function __destruct() {echo ’running destructor’;

}}

$instance = new SimpleClass();

I The code above prints runningdestructor since the last reference tothe object is removed when program ends.

I Note that the destructor can not take anyparameters.

60 / 79

Page 166: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

self and staticself is resolved to the class where it is written, staticis resolved to the called class.class SuperClass {

public static function whoAreYouSelf() {self::me();

}

public static function whoAreYouStatic() {static::me();

}

protected static function me() {echo "I am SuperClass";

}}

class SubClass extends SuperClass {protected static function me() {

echo "I am SubClass";}

}

SubClass::whoAreYouSelf(); //prints ’I am SuperClass’SubClass::whoAreYouStatic(); //prints ’I am SubClass’ 61 / 79

Page 167: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Scope Resolution Operatorand Late Static Binding

I The double colon used on the previousslide is called the scope resolution operator.

I Used to specify which class to use.

I Using static, as illustrated on theprevious slide, is late static binding, whichmeans that the scope is the called class.

62 / 79

Page 168: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Scope Resolution Operatorand Late Static Binding

I The double colon used on the previousslide is called the scope resolution operator.

I Used to specify which class to use.I Using static, as illustrated on the

previous slide, is late static binding, whichmeans that the scope is the called class.

62 / 79

Page 169: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Scope Resolution Operatorand Late Static Binding

I The double colon used on the previousslide is called the scope resolution operator.

I Used to specify which class to use.I Using static, as illustrated on the

previous slide, is late static binding, whichmeans that the scope is the called class.

62 / 79

Page 170: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Object IterationI It is possible to iterate over fields in an

object, as if the object was an array.I Only visible fields, as specified by the

visibility, will occur in the iteration.class Person {

public $name;public $phone;public $address;

public function __construct($name, $phone, $address) {$this->address = $address;$this->phone = $phone;$this->name = $name;

}}

$stina = new Person("Stina", "1234567", "at home");foreach ($stina as $key => $value) {

echo "$key: $value";}

63 / 79

Page 171: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Object IterationI It is possible to iterate over fields in an

object, as if the object was an array.I Only visible fields, as specified by the

visibility, will occur in the iteration.class Person {

public $name;public $phone;public $address;

public function __construct($name, $phone, $address) {$this->address = $address;$this->phone = $phone;$this->name = $name;

}}

$stina = new Person("Stina", "1234567", "at home");foreach ($stina as $key => $value) {

echo "$key: $value";}

63 / 79

Page 172: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comparing Objects

I The comparison operator, ==, considerstwo object instances equal if they have thesame attributes and values, and areinstances of the same class.

I The identity operator, ===, considersinstances to be equal only if they refer tothe same instance and same class.

64 / 79

Page 173: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Comparing Objects

I The comparison operator, ==, considerstwo object instances equal if they have thesame attributes and values, and areinstances of the same class.

I The identity operator, ===, considersinstances to be equal only if they refer tothe same instance and same class.

64 / 79

Page 174: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Object Serialization

I The serialize function returns a stringcontaining a representation of any PHPvalue.

I The unserialize function recreates theoriginal values.

I Serializing an object will save all variablevalues plus the class name of that object.

I To unserialize an object, the class definitionof that object needs to be present.

65 / 79

Page 175: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Object Serialization

I The serialize function returns a stringcontaining a representation of any PHPvalue.

I The unserialize function recreates theoriginal values.

I Serializing an object will save all variablevalues plus the class name of that object.

I To unserialize an object, the class definitionof that object needs to be present.

65 / 79

Page 176: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Object Serialization

I The serialize function returns a stringcontaining a representation of any PHPvalue.

I The unserialize function recreates theoriginal values.

I Serializing an object will save all variablevalues plus the class name of that object.

I To unserialize an object, the class definitionof that object needs to be present.

65 / 79

Page 177: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Object Serialization

I The serialize function returns a stringcontaining a representation of any PHPvalue.

I The unserialize function recreates theoriginal values.

I Serializing an object will save all variablevalues plus the class name of that object.

I To unserialize an object, the class definitionof that object needs to be present.

65 / 79

Page 178: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Object Serialization, Exampleclass Person {

public $name;public $phone;public $address;

public function __construct($name, $phone, $address) {$this->address = $address;$this->phone = $phone;$this->name = $name;

}}

$stina = new Person("Stina", "1234567", "at home");$serialized = serialize($stina);// prints O:6:"Person":3:{s:4:"name";s:5:"Stina";// s:5:"phone";s:7:"1234567";// s:7:"address";s:7:"at home";}echo $serialized;

$someone = unserialize($serialized);foreach ($someone as $key => $value) {

echo "$key: $value"; //Same output as before serializing}

66 / 79

Page 179: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Autoloading ClassesI Normally, each class is placed in a file with

the same name as the class, plus theextension .php. This means we are forcedto write one require_once statementfor each used class.

I To avoid these long require_oncelistings, it is possible to register an autoloadfunction, that is called whenever apreviously unloaded class is used.

spl_autoload_register(function ($class) {include ’classes/’ .

\str_replace(’\\’, ’/’, $class) .’.php’;

});

67 / 79

Page 180: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Autoloading ClassesI Normally, each class is placed in a file with

the same name as the class, plus theextension .php. This means we are forcedto write one require_once statementfor each used class.

I To avoid these long require_oncelistings, it is possible to register an autoloadfunction, that is called whenever apreviously unloaded class is used.

spl_autoload_register(function ($class) {include ’classes/’ .

\str_replace(’\\’, ’/’, $class) .’.php’;

});

67 / 79

Page 181: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Autoloading ClassesI Normally, each class is placed in a file with

the same name as the class, plus theextension .php. This means we are forcedto write one require_once statementfor each used class.

I To avoid these long require_oncelistings, it is possible to register an autoloadfunction, that is called whenever apreviously unloaded class is used.

spl_autoload_register(function ($class) {include ’classes/’ .

\str_replace(’\\’, ’/’, $class) .’.php’;

});

67 / 79

Page 182: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Question 6

68 / 79

Page 183: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

69 / 79

Page 184: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Namespaces

I Namespaces are used to structure theprogram, as packages are used in Java.

I A namespace does not affect visibility, thereis no package private visibility.

I Namespaces define name spaces, thesame symbol (e.g., class) can exist indifferent namespaces.

I Namespaces also structure the programand thereby improve cohesion.

I If, for example, the MVC architecture is used,there should be the namespaces Model,View and Controller.

70 / 79

Page 185: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Namespaces

I Namespaces are used to structure theprogram, as packages are used in Java.

I A namespace does not affect visibility, thereis no package private visibility.

I Namespaces define name spaces, thesame symbol (e.g., class) can exist indifferent namespaces.

I Namespaces also structure the programand thereby improve cohesion.

I If, for example, the MVC architecture is used,there should be the namespaces Model,View and Controller.

70 / 79

Page 186: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Namespaces

I Namespaces are used to structure theprogram, as packages are used in Java.

I A namespace does not affect visibility, thereis no package private visibility.

I Namespaces define name spaces, thesame symbol (e.g., class) can exist indifferent namespaces.

I Namespaces also structure the programand thereby improve cohesion.

I If, for example, the MVC architecture is used,there should be the namespaces Model,View and Controller.

70 / 79

Page 187: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Namespaces

I Namespaces are used to structure theprogram, as packages are used in Java.

I A namespace does not affect visibility, thereis no package private visibility.

I Namespaces define name spaces, thesame symbol (e.g., class) can exist indifferent namespaces.

I Namespaces also structure the programand thereby improve cohesion.

I If, for example, the MVC architecture is used,there should be the namespaces Model,View and Controller.

70 / 79

Page 188: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Declaring Namespaces

Namespaces are declared with thenamespace keyword, placed first in a file.namespace \Model;

namespace \MyProject\Model\Payment;

71 / 79

Page 189: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Importing NamespacesI Namespaces are imported with the use

keyword and aliased with alias.I The following examples assume there is a

namespace \MyProject\Model\Payment,

which contains the class SomeClass.

use \MyProject\Model\Payment\SomeClass;new SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment as Pay;new Pay\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment;new Payment\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

72 / 79

Page 190: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Importing NamespacesI Namespaces are imported with the use

keyword and aliased with alias.I The following examples assume there is a

namespace \MyProject\Model\Payment,

which contains the class SomeClass.

use \MyProject\Model\Payment\SomeClass;new SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment as Pay;new Pay\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment;new Payment\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

72 / 79

Page 191: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Importing NamespacesI Namespaces are imported with the use

keyword and aliased with alias.I The following examples assume there is a

namespace \MyProject\Model\Payment,

which contains the class SomeClass.

use \MyProject\Model\Payment\SomeClass;new SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment as Pay;new Pay\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment;new Payment\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

72 / 79

Page 192: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Importing NamespacesI Namespaces are imported with the use

keyword and aliased with alias.I The following examples assume there is a

namespace \MyProject\Model\Payment,

which contains the class SomeClass.

use \MyProject\Model\Payment\SomeClass;new SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment as Pay;new Pay\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment;new Payment\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

72 / 79

Page 193: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Importing NamespacesI Namespaces are imported with the use

keyword and aliased with alias.I The following examples assume there is a

namespace \MyProject\Model\Payment,

which contains the class SomeClass.

use \MyProject\Model\Payment\SomeClass;new SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment as Pay;new Pay\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

use \MyProject\Model\Payment;new Payment\SomeClass();//Instantiates \MyProject\Model\Payment\SomeClass

72 / 79

Page 194: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Namespaces are Hierarchical

I If the namespace A\B\C is imported as C,a call to C\D\E is translated toA\B\C\D\E.

I A call to C\D\E within namespace A\B istranslated to A\B\C\D\E.

I A call to \C\D\E within namespace A\B istranslated to C\D\E.

73 / 79

Page 195: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Namespaces are Hierarchical

I If the namespace A\B\C is imported as C,a call to C\D\E is translated toA\B\C\D\E.

I A call to C\D\E within namespace A\B istranslated to A\B\C\D\E.

I A call to \C\D\E within namespace A\B istranslated to C\D\E.

73 / 79

Page 196: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Namespaces are Hierarchical

I If the namespace A\B\C is imported as C,a call to C\D\E is translated toA\B\C\D\E.

I A call to C\D\E within namespace A\B istranslated to A\B\C\D\E.

I A call to \C\D\E within namespace A\B istranslated to C\D\E.

73 / 79

Page 197: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Global Namespace

I In a file without any namespace definition,all classes and functions are placed in theglobal namespace.

I Prefixing a name with \ will specify that thename is required from the globalnamespace.

I It is good practice to prefix all functions inthe global space with \, even though theinterpreter always looks for functions in theglobal space before failing.

74 / 79

Page 198: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Global Namespace

I In a file without any namespace definition,all classes and functions are placed in theglobal namespace.

I Prefixing a name with \ will specify that thename is required from the globalnamespace.

I It is good practice to prefix all functions inthe global space with \, even though theinterpreter always looks for functions in theglobal space before failing.

74 / 79

Page 199: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

The Global Namespace

I In a file without any namespace definition,all classes and functions are placed in theglobal namespace.

I Prefixing a name with \ will specify that thename is required from the globalnamespace.

I It is good practice to prefix all functions inthe global space with \, even though theinterpreter always looks for functions in theglobal space before failing.

74 / 79

Page 200: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

75 / 79

Page 201: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Exceptions

I PHP exception handling works exactly likeruntime exceptions in Java. There are nochecked exceptions i PHP.

I The constructs throw, try, catch andfinally have the same meaning as inJava.

I There is no throws construct since thereare no checked exceptions.

I Custom exception classes shall extend theclass Exception, which is in the globalnamespace.

76 / 79

Page 202: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Exceptions

I PHP exception handling works exactly likeruntime exceptions in Java. There are nochecked exceptions i PHP.

I The constructs throw, try, catch andfinally have the same meaning as inJava.

I There is no throws construct since thereare no checked exceptions.

I Custom exception classes shall extend theclass Exception, which is in the globalnamespace.

76 / 79

Page 203: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Exceptions

I PHP exception handling works exactly likeruntime exceptions in Java. There are nochecked exceptions i PHP.

I The constructs throw, try, catch andfinally have the same meaning as inJava.

I There is no throws construct since thereare no checked exceptions.

I Custom exception classes shall extend theclass Exception, which is in the globalnamespace.

76 / 79

Page 204: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Exceptions

I PHP exception handling works exactly likeruntime exceptions in Java. There are nochecked exceptions i PHP.

I The constructs throw, try, catch andfinally have the same meaning as inJava.

I There is no throws construct since thereare no checked exceptions.

I Custom exception classes shall extend theclass Exception, which is in the globalnamespace.

76 / 79

Page 205: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Section

Introduction to PHP

Types, Operators and Expressions

Arrays

Functions

The Object Model

Namespaces

Exception Handling

Documentation With PHPDoc

77 / 79

Page 206: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Writing PHPDoc

I For simple use cases, PHPDoc is verymuch like Javadoc./*** Creates a cache with the specified layout.** @param \Csim\Model\CacheLayout $layout The layout

of the cache that shall be created.* @return \Csim\Model\SimulationState The state of

the newly created, empty, cahce.*/public function

defineCache(\Csim\Model\CacheLayout $layout) {$this->cache = new \Csim\Model\Cache($layout);return $this->cache->getState();

}

78 / 79

Page 207: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Generating Documentation

I To generate the HTML files withdocumentation, it is necessary to install athird-party tool.

I Use for example ApiGen,http://apigen.org/, which can beintegrated with NetBeans.

79 / 79

Page 208: The PHP Language · 2017. 11. 8. · PHP Introduction Types, Operators and Expressions Arrays Functions Objects Namespaces Exception Handling PHPDoc The PHP Language I PHP development

PHP

Introduction

Types, Operatorsand Expressions

Arrays

Functions

Objects

Namespaces

Exception Handling

PHPDoc

Generating Documentation

I To generate the HTML files withdocumentation, it is necessary to install athird-party tool.

I Use for example ApiGen,http://apigen.org/, which can beintegrated with NetBeans.

79 / 79