Bài giảng Web technologies and e-Services - Bài 5, Phần 2: Advanced PHP - Trường Đại học Bách khoa Hà Nội

ADVANCED PHP  
1
Content  
Contents  
• Class  
• Sessions  
• PHP and MySQL  
Class  
3
Object oriented programming in PHP  
• PHP, like most modern programming languages (C++, Java, JavaScript, etc.),  
supports the creation of objects.  
• Creating an object requires you to first define an object class (containing  
variables and/or function definitions) and then using the “new” keyword to create  
an instance of the object class. (Note that the object must be defined before you  
instantiate it.)  
<?php  
// Assume that the "Person" object has been previously defined. . .  
$x = new Person; // creates an instance of the Person class (*no* quotes)  
// The object type need not be "hardcoded" into the declaration.  
$object_type = 'Person';  
$y = new $object_type; // equivalent to $y = new Person;  
$z = new Vehicle('Jaguar','green'); // creating an object and passing  
//  
arguments to its constructor  
?>  
Defining (declaring) a class  
• Use the “class” keyword which includes the class name (case-insensitive, but  
otherwise following the rules for PHP identifiers). Note: The name “stdClass” is  
reserved for use by the PHP interpreter.  
<?php  
class Person  
{
var $name;  
function set_name($new_name) {  
$this -> name = new_name;  
}
function get_name() {  
return $this -> name;  
}
}
• Use the “$this” variable when accessing properties and functions of the current  
object. Inside a method this variable contains a reference to the object on which  
the method was called.  
Declaring a class (cont.)  
• Properties and functions can be declared as “public”, “private”, “protected”  
• Note that unless a property is going to be explicitly declared as public,  
private, or protected, it need not be declared before being used (like  
regular PHP variables).  
<?php  
class Person  
{
protected $name;  
protected $age;  
function set_name($new_name) {  
$this -> name = new_name;  
}
function get_name() {  
return $this -> name;  
}
}
Declaring a class (cont.)  
• Classes can also have their own constants defined (using the “const” keyword), can have their  
own static properties and functions  
• Static functions cannot access the objects properties (i.e. the variable $this is not defined inside  
of a static function).  
<?php  
class HTMLtable {  
static function start() {  
echo "<table> \n";  
}
static function end() {  
echo "</table> \n";  
}
}
HTMLtable::start();  
?>  
Accessing properties and methods  
• Once you have an object, you access methods and properties (variables) of  
the object using the -> notation.  
<?php  
$me = new Person;  
$me -> set_name('Russ');  
$name = $me -> get_name();  
echo $me -> get_name();  
$age = 36;  
$me -> set_age($age);  
?>  
Constructors and destructors  
• Constructors are methods that are (generally) used to initialize the object’s  
properties with values as the object is created. Declare a constructor function in  
an object by writing a function with the name __construct().  
<?php  
class Person {  
protected $name;  
protected $age;  
function __construct($new_name, $new_age) {  
$this -> name = $new_name;  
$this -> age = $new_age;  
}
// . . . other functions here . . .  
}
$p = new Person('Bob Jones', 45);  
$q = new Person('Hamilton Lincoln', 67);  
?>  
• Destructors (defined with a function name of __destructor() ) are called when an  
object is destroyed  
Inheritance  
• Use the “extends” keyword in the class definition to define a  
new class that inherits from another.  
<?php  
class Employee extends Person {  
var $salary;  
function __construct($new_name, $new_age, $new_salary); {  
$this -> salary = $new_salary;  
parent::__construct($new_name, $new_age); // call the constructor  
//  
of parent object  
}
function update_salary($new_salary) {  
$this -> salary = $new_salary;  
}
$emp = new Employee('Dave Underwood', 25, 25000);  
?>  
Inheritance (cont.)  
• The constructor of the parent isn’t called unless the child explicitly  
references it (as in this previous case).  
• You could “hard-code” the call to the parent constructor using the function  
call “Person::__construct($new_name, $new_age);”  
• You can use the “self” keyword to ensure that a method is called on the  
current class (if a method might be subclassed), in this style  
self::method();  
• To check if an object is of a particular class, you can use the instanceof  
operator.  
More on classes  
• You can also define interfaces (for which any class that uses that interface  
must provide implementations of certain methods), and you can define  
abstract classes or methods (that must be overridden by its children).  
• The keyword “final” can be used to denote a method that cannot be  
overridden by its children.  
class Person {  
var $name;  
final function get_name() {  
return $this -> name;  
}
}
Session  
13  
PHP sessions  
• By default, HTML and web servers don’t keep track of information entered  
on a page when the client’s browser opens another page.  
• Sessions help solve this problem by maintaining data during a user’s visit,  
and can store data  
• Servers keep track of users’ sessions by using a session identifier, which  
is generated by the server when a session starts and is then used by the  
browser when it requests a page from the server. This session ID can be  
sent through a cookie (the default behavior) or by passing the session ID  
in the URL string.  
• Sessions only store information temporarily  
PHP sessions (cont.)  
• To start a session, use the function session_start() at the beginning of your PHP script before you  
store or access any data. For the session to work properly, this function needs to execute before  
any other header calls or other output is sent to the browser.  
<?php  
session_start();  
?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<head>  
<title>Session example</title>  
</head>  
<body>  
<?php  
include_once ('object.php'); // Includes definition of the Person class  
$_SESSION['hello'] = 'Hello world';  
echo $_SESSION['hello'] . "<br/><br/>\n";  
$_SESSION['one'] = 'one';  
$_SESSION['two'] = 'two';  
$me = new Person("Russ", 36, 2892700);  
$_SESSION['name'] = $me->get_name();  
echo "Testing " . $_SESSION['one'] .", " . $_SESSION['two'] . ", " . $me->get_number() . " . . .<br/>\n";  
?>  
view the output page  
</body></html>  
Using session variables  
• Once a session variable has been defined, you can access it from other pages.  
<?php  
session_start();  
?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<head>  
<title>Session example 2</title>  
</head>  
<body>  
<?php  
echo "Welcome to a new page ". $_SESSION['name'] "!<br/>\n";  
echo "Hope you enjoy your stay! <br/>";  
?>  
<p>Back to regular HTML text...  
</p>  
</body>  
</html>  
view the output page  
More on session variables  
• You need to include a call to the session_start() function for each page  
on which you want to access the session variables.  
• A session will end once you quit the browser (unless you’ve set  
appropriate cookies that will persist), or you can call the  
session_destroy() function.  
• The function session_unset() removes all session variables. If you  
want to remove one variable, use the unset($var) function call.  
• The default timeout for session files is 24 minutes. It’s possible to  
change this timeout.  
Deleting all session variables  
<?php  
session_start();  
?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<head>  
<title>Session example 3</title>  
</head>  
<body>  
<?php  
echo "Deleting all session variables using session_unset(); <br/>\n";  
session_unset();  
echo "Now the session variables are gone. <br/>\n";  
if (isset($_SESSION['name']))  
{
else  
{
echo $_SESSION['name'] . "<br/>\n"; }  
echo "Session variable is not here.";  
}
view the output page  
?>  
</body>  
</html>  
PHP and MySQL  
19  
Putting Content into Your Database with PHP  
• Connect to the database server and login (this is the PHP command to do so)  
mysql_connect("host","username","password");  
Host:  
mysql  
martin  
martin  
----  
• Choose the database  
Database:  
Username:  
Password:  
mysql_select_db("database");  
• Send SQL queries to the server to add, delete, and modify data  
mysql_query("query"); (use the exact same query string as you would  
normally use in SQL, without the trailing semi-colon)  
• Close the connection to the database server (to ensure the information is stored properly)  
mysql_close();  
Tải về để xem bản đầy đủ
pdf 31 trang Thùy Anh 19900 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Web technologies and e-Services - Bài 5, Phần 2: Advanced PHP - Trường Đại học Bách khoa Hà Nội", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_web_technologies_and_e_services_bai_5_phan_2_advan.pdf