3) php an object- oriented language · 3) php an object-oriented language emmanuel benoist spring...
TRANSCRIPT
![Page 1: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/1.jpg)
3) PHP an object-oriented language
Emmanuel BenoistSpring Term 2020
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 1
![Page 2: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/2.jpg)
Table of Contents
� Object Oriented Programming
� Forms and CookiesCookies
� Session ManagementCreate a sessionExampleInclude files
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 2
![Page 3: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/3.jpg)
Object Oriented Programming
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 3
![Page 4: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/4.jpg)
Object Oriented Programming I
The concepts of OO-Programming are very similar tothe ones used in Java
ClassAbstract classInterface
Heritagea class can extend only one class (including abstract class)a class can implement many interfaces
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 4
![Page 5: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/5.jpg)
Object Oriented Programming II
class ClassA{var $val1;function __construct($v){$this−>val1=$v;
}function f1(){echo $this−>val1;
}}$a1 = new ClassA(10);$a1−>f1(); // Output: 10echo $a1−>val1; // Output: 10
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 5
![Page 6: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/6.jpg)
Heritage Iclass A{var $valA;function mult($arg){return $arg ∗ $this−>valA;
}}class B extends A{var $valB;function add(){return $this−>valA + $this−>valB;
}}
$b = new B();$b−>valA = 5;
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 6
![Page 7: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/7.jpg)
Heritage II
$b−>valB = 10;echo "result␣=".$b−>mult(5)
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 7
![Page 8: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/8.jpg)
Abstract classAn abstract class is a class that have at least oneabstract method
An abstract method contains just the signatureAn abstract class can not have any instance
abstract class A{var $valA;abstract function add();
}class B extends A{var $valB;function add(){return $this−>valA + $this−>valB;
}}$b = new B();$b−>valA = 5;$b−>valB = 10;echo "result␣=".$b−>add()
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 8
![Page 9: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/9.jpg)
Interface I
Defines the functions that must be implementedEach class implementing the interface must implement all themethodsOtherwise the class is abstractOne class can implement many interfaces
UsageAn interface is a “contract”You define an interface, to have the possibility to change theclassYou just use an instance of a interface, without knowing thereal implementation.See Factory, Builder, Adapter, Decorator, Composite,Command, Proxy, . . . design patterns for instance
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 9
![Page 10: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/10.jpg)
Interface Iinterface Stack{function push($item);function pop();function size();
}class MyStack implements Stack{var $stackArray = array();function push($item){$this−>stackArray[]=$item;
}function pop(){
return array_pop($this−>stackArray);}function size(){return count($this−>stackArray);
}}
$stack = new MyStack();
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 10
![Page 11: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/11.jpg)
Interface II
$stack−>push("A");$stack−>push("B");$stack−>push("C");$stack−>push("D");while($stack−>size()>0){echo $stack−>pop().",";
}/∗ Output :D,C,B,A,∗/
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 11
![Page 12: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/12.jpg)
Type Hinting
You can “test” the type of an element during executionUnlike java, the test is done while the program runsTwo possiblities intanceOf() tests the
if($var instanceOf MyClass){...}if($var instanceOf MyInterface){...}
// the function expects an argument from type// MyType (can be a class or an interface)function myFunction(MyType $var){...
}
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 12
![Page 13: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/13.jpg)
Access modifiers
PHP5 has introduced 3 access modifiers to control the visibility ofthe attributes and methods. These modifiers are :
public, which mean that an attribute or a method declared aspublic may be accessed from inside and outside of the class.For compatibility reason with the earlier version of PHP, thismodifier is the default if none is specified.private, which mean that this entity may only be accessedfrom inside the class. All attributes and methods whose areonly used within the class should be declared private
protected, which mean that the entity may only be accessedfrom within the class and also from any subclass of the currentclass.
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 13
![Page 14: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/14.jpg)
Access modifiers (Example)These modifiers are declared in front of the attributes or methodsname. For example :
class ClassName{private $attribute;public function getAttribute() {
return $this−>attribute;}public function setAttribute ($value){
$this−>attribute = $value;}
}$g=new ClassName();$g−>setAttribute(10);echo $g−>getAttribute();
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 14
![Page 15: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/15.jpg)
Forms and Cookies
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 15
![Page 16: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/16.jpg)
FormsHTML uses forms to send information from the client tothe server
Form is defined by: Method and actionMethod=GET
Information is encoded in the URLInformation must be shortInformation can be cached
Method=POSTInformtion is in the HTTP Body of the request (i.e. not in theURL)It can be much largerIt can not be cached
<form action="test.php" method="GET"><input type="text’’␣name="var1">
␣␣<input␣type=’’submit’’␣value="submit"></form>
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 16
![Page 17: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/17.jpg)
Read forms inputs I
PHP parses and decodes the inputThe inputs are stored inside an array
For the GET method: $_GETFor the POST method: $_POST
<?php$textSent = $_GET["var1"];...?>
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 17
![Page 18: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/18.jpg)
Example: a multiplicator I<?phpif(isset($_GET[’add’])){$x = $_GET[’x’];$y = $_GET[’y’];echo "$x␣plus␣$y␣=␣".($x+$y);}if(isset($_GET[’mult’])){$x = $_GET[’x’];$y = $_GET[’y’];echo "$x␣times␣$y␣=␣".($x∗$y);}?><form action="multiplier−get.php" method="GET">x=<input type="text" name="x"><br>y=<input type="text" name="y"><br><input type="submit" value="Add" name="add"><br><input type="submit" value="Multiply" name="mult"></form>
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 18
![Page 19: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/19.jpg)
Example (POST): a multiplicator I<?phpif(isset($_POST[’add’])){$x = $_POST[’x’];$y = $_POST[’y’];echo "$x␣plus␣$y␣=␣".($x+$y);}if(isset($_POST[’mult’])){$x = $_POST[’x’];$y = $_POST[’y’];echo "$x␣times␣$y␣=␣".($x∗$y);}?><form action="multiplier−post.php" method="POST">x=<input type="text" name="x"><br>y=<input type="text" name="y"><br><input type="submit" value="Add" name="add"><br><input type="submit" value="Multiply" name="mult"></form>
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 19
![Page 20: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/20.jpg)
Cookies
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 20
![Page 21: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/21.jpg)
Cookies
Principles
Very small informationsSent once by the server to the clientResent within each request by the client to the server
Usage
For holding configuration from the userExample: language, Number of visits, ...Now: used only to store session IDs
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 21
![Page 22: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/22.jpg)
Cookies (Cont.)
Coolie: sessionID=1234GET /img1.gif HTTP/1.1
GET /file2.php HTTP/1.1Coolie: sessionID=1234
GET /img2.gif HTTP/1.1Coolie: sessionID=1234
Set−Cookie: sessionid=1234; path=/
GET /index.php HTTP/1.1
<html><head> ...</body></html>
HTTP/1.1 200 OK
ServerClient
Coolie: sessionID=1234GET /file1.php HTTP/1.1
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 22
![Page 23: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/23.jpg)
Working with cookies:
PHP has the ability to work with cookies. For that goal, itprovides different functions to create, manage and destroycookies.Setting cookiesTo create cookies, one should call the function setcookie.For example :
setcookies (’aroma’, ’chocolate’);
Since cookies are sent within HTTP headers, they must besent before any message body.The setcookie() functions may take up to 5 arguments.Only the first two are mandatory.
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 23
![Page 24: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/24.jpg)
Working with cookies:The generic syntax of setcookie() is :
setcookie(<cookie name>, <cookie value>, <expiration date>,<path>, <host or domain>, <secure>);
The meaning of these attributes is :1. cookie name : name of the attribute stored into the cookie;2. cookie value : value of the attribute;3. expiration date : The "time to live" of the cookie (unix
timestamp).4. path of requesting pages : only web pages whose path
starts with the specified path can request the cookie;5. host or domain : only hosts belonging to the specified
domain can request the cookie;6. secure : if set to 1, only client connected through a secure
SSL connection can request the cookie.Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 24
![Page 25: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/25.jpg)
Examples of cookies
setcookie("username", "BIE1", time()+86400,"/WebApps/",".benoist.ch", "1");
The cookie name is usernameThe cookie value is EmmanuelThe cookie will expire one day after his creationThis cookie may be only required from pages in the/WebApps/ hierarchy;This cookie is only resent to my servers.Since this cookie contains a username (may be a sensitiveinformation), it will be delivered only to servers connectedthrough a secure connection.
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 25
![Page 26: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/26.jpg)
Requesting a cookie
Requesting a cookie is just like testing if a variable is set.Therefore, the function to test cookies is the same as the functionfor testing variables.
boolean isset($_COOKIE[<cookie name>])
All cookies of the browser are available through the array$_COOKIE;When a browser returns a cookie, it only sends the cookiename and values.
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 26
![Page 27: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/27.jpg)
Requesting a cookie (Cont.)
Example:
if (isset($_COOKIE["username"])) {echo "Your␣username␣is" . $_COOKIE["username"];
}
All available cookies of a browser may be requested by the followingcode:
foreach ($_COOKIE as $cookie_name => $cookie_value) {echo "Name␣=␣$cookie_name␣;␣Value␣=␣$cookie_value<↘
→br>\n";}
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 27
![Page 28: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/28.jpg)
Deleting a cookie
It is possible to delete a cookie which is no longer used. To delete acookie, it must be resent with exactly the same parameter, exceptthe time to live parameter which must be set in the paste.Example
setcookie("username", "", time()−86400);
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 28
![Page 29: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/29.jpg)
Session Management
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 29
![Page 30: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/30.jpg)
Create a session
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 30
![Page 31: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/31.jpg)
Session management
PHP provides tools to follow a user during a session.To create a session, one has to call the functionsession_start();All information of the session are available through the globalarray $_SESSION;
Example:
session_start();$_SESSION["visit"]++;echo ’You␣were␣here’ . $_SESSION[’visit’] . ’␣times’;
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 31
![Page 32: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/32.jpg)
Session management (Cont.)
PHP try to send a cookie with the session ID;If the client does not allow cookies, PHP adds the session IDto all URLs that will be sent. Example:
with a client accepting cookies :
echo ’<a␣href="train.php">Take␣the␣train</a>’;
With a client refusing cookies :
echo ’<a␣href="train.php?PHPSESSID=2eb89f33445">’.’Take␣the␣train</a>’;
In this example, the session name is PHPSESSID and thesession id is 2eb89f33445
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 32
![Page 33: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/33.jpg)
Session Security
The session module cannot guarantee that the information youstore in a session is only viewed by the user who created thesession. You need to take additional measures to activelyprotect the integrity of the session, depending on the valueassociated with it.Assess the importance of the data carried by your sessions anddeploy additional protections – this usually comes at a price,reduced convenience for the user. For example, if you want toprotect users from simple social engineering tactics, you needto enable session.use_only_cookies. In that case, cookiesmust be enabled unconditionally on the user side, or sessionswill not work.
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 33
![Page 34: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/34.jpg)
Example
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 34
![Page 35: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/35.jpg)
Example of use of session
<?php// page1.phpsession_start();echo ’Welcome␣to␣page␣#1’;$_SESSION[’favcolor’] = ’green’;$_SESSION[’animal’] = ’cat’;$_SESSION[’time’] = time();
echo ’<br␣/><a␣href="page2.php">page␣2</a>’;?>
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 35
![Page 36: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/36.jpg)
Example of use of session (Cont.)
<?php// page2.phpsession_start();echo ’Welcome␣to␣page␣#2<br␣/>’;echo $_SESSION[’favcolor’]; // greenecho $_SESSION[’animal’]; // catecho date(’Y␣m␣d␣H:i:s’, $_SESSION[’time’]);echo ’<br␣/><a␣href="page1.php">page␣1</a>’;?>
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 36
![Page 37: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/37.jpg)
Include files
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 37
![Page 38: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/38.jpg)
require()The require() statement replaces itself with thespecified file, much like the C preprocessor’s #includeworks.require() and require_once() produce a fault when theresource is not available.
// imports all the functions and classesrequire ("file.php");
// This file is loaded only once (even if required many times↘→)require_once("test.php");
The include() statement includes and evaluates thespecified file.Almost the same without creating an error.
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 38
![Page 39: 3) PHP an object- oriented language · 3) PHP an object-oriented language Emmanuel Benoist Spring Term 2020 Berner Fachhochschule j Haute école spécialisée bernoise j Berne University](https://reader034.vdocuments.net/reader034/viewer/2022042710/5f5add3187c72d1d0c746e69/html5/thumbnails/39.jpg)
Conclusion I
PHP is similar to JavaBasic syntax (if, while, for, . . . )Object Oriented design (classes, interfaces, abstract classes)
It is also very different from JavaVariables are loosly typedObjects are per default openNo type verification before execution!
Extensive tests are neededSince less testing is done durring compilation (compared toJava)
Berner Fachhochschule | Haute école spécialisée bernoise | Berne University of Applied Sciences 39