1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

PHP và hướng đối tượng

49 278 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 3,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Câu 2: Chọn phát biểu đúng đoạn lệnh thực hiện trong PHP5:A... Câu 3: Chọn phát biểu đúng đoạn lệnh thực hiện trong PHP5:A.. Câu 4: Chọn phát biểu đúng đoạn lệnh thực hiện trong PHP5:A..

Trang 1

• GVHD: Dương Khai Phong

• Email: khaiphong@gmail.com

• Website: http://khaiphong.tk

http://course.uit.edu.vn

Trang 2

1/ Giới thiệu tổng quan Web

2/ Ngôn ngữ HTML và JavaScript

3/ Ngôn ngữ PHP căn bản

4/ Các đối tượng trong PHP

5/ PHP và hướng đối tượng

6/ PHP và cơ sở dữ liệu MySQL

7/ PHP và AJAX

8/ PHP và các hệ thống mã nguồn mở 9/ Triển khai ứng dụng PHP

Trang 3

PHẦN 5:

Trang 4

1 Giới thiệu

2 Các vấn đề cơ bản hướng đối tượng trong PHP

3 Lớp abstract và lớp interfaces

4 Hàm include và require

Trang 5

OOP (Object Orient Programming) revolves around the concept

of grouping code and data together in logical units called

classes This process is usually referred to as encapsulation, or information hiding, since its goal is that of dividing an

application into separate entities whose internal components can

change without altering their external interfaces (ref: page 132

of ebook “phparchitects Zend PHP 5 Certification Study Guide”)

abstraction, encapsulation, polymorphism, and inheritance.

Trang 6

1 Declaring a ClassCú pháp khai báo lớp:

Ví dụ:

class <Tên_lớp>{

// Your code is here

… }

class foo {

const BAR = "Hello World"; }

echo foo::BAR;

Trang 7

1 Declaring a ClassCú pháp khai báo lớp kế thừa:

class a {

function test(){ echo "a::test called";}

function func(){echo "a::func called";}

}

class b extends a { function test(){echo "b::test called";}

}

class c extends b { function test(){parent::test();}

}

class d extends c { function test(){b::test();}

}

if ($obj instanceof MyClass) {

echo "\$obj is an instance of MyClass";

}

Trang 8

1 Declaring a Class

2 Instantiating an

Object

theo dạng tham chiếu

Ví dụ:

$myClassInstance = new myClass();

$myClassInstance = new myClass();

Trang 9

// Access methods of class myClass

$obj = new myClass();

$obj -> myFunction();

Trang 10

$obj = new myClass();

$obj->callMyFunction(123);

Trang 13

The resource can be accessed from any scope.

The resource can only be accessed from within the class where it is defined and its descendants The resource can only be accessed from within the class where it is defined.

The resource is accessible from any scope, but cannot be overridden in descendant classes.

Trang 14

function construct(){

var_dump(get_object_vars($this));

}}

class bar extends foo {function construct(){

var_dump(get_object_vars($this));

}}new foo();

new bar();

Trang 15

class bar extends foo {function construct(){

var_dump(get_object_vars($this )); echo "<br>";

}}new foo();

new bar();

Trang 16

class bar extends foo {function construct(){

var_dump(get_object_vars($this));

}}

new foo();

new bar();

Trang 17

class bar extends foo {function construct(){

var_dump(get_object_vars($this));

}}

new foo();

new bar();

Trang 18

function construct(){

var_dump(get_object_vars($this )); echo "<br>";

}}

new foo();

new baz();

Trang 19

class foo {

static $bar = "bat";

static public function baz(){

echo "Hello World";

}}echo foo::$bar."<br>";

// output:

Hello world

Trang 21

 Lớp trừu tượng không cho phép tạo instance (không thể tạo được các đối tượng thuộc lớp đó).

Trang 22

b Lớp trừu tượng

abstract class DataStore_Adapter {

private $id;

abstract function insert();

abstract function update();

public function save(){

Trang 23

 Lớp dẫn xuất có thể kế thừa từ nhiều lớp interface để bổ sung đầy đủ cách thức hoạt động của mình (đa kế thừa - Multiple inheritance).

Cú pháp khai báo lớp interface

Trang 24

c Lớp interface

interface DataStore_Adapter {

public function insert();

public function update();

public function save();

public function newRecord($name = null);

}

class PDO_DataStore_Adapter implements DataStore_Adapter {

public function insert(){ // }

public function update(){ // }

public function save(){ // }

public function newRecord($name = null){ }

}

Trang 25

 Khi file được chèn bằng lệnh require() có lỗi thì trình

biên dịch sẽ dừng lại, không dịch nữa và sẽ xuất hiện thông báo lỗi.

 Khi file được chèn bằng lệnh include() có lỗi thì trình

biên dịch vẫn tiếp tục dịch cho đến hết, đồng thời cũng

xuất hiện warning để cảnh báo file đó bị lỗi.

Trang 26

b Ví dụ

require_include.php không tồn tại như sau:

echo "Hello you";

?>

</body>

</html>

Trang 28

ĐH CÔNG NGHỆ THÔNG TIN http://sites.google.com/site/khaiphong

28

Trang 30

Câu 1: Cho biết các phần tử được chứa trong mảng $a->array (đoạn

lệnh thực hiện trong PHP5):

<?php

1 class my_class

2 {

3 var $my_value = array();

4 function my_class ($value) {

Trang 31

Câu 2: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả 123

B Đoạn lệnh xuất kết quả 456

C Đoạn lệnh sai ở dòng 7

D Đoạn lệnh sai ở dòng 10

Trang 32

Câu 3: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh báo lỗi

B Đoạn lệnh xuất kết quả 10

C Đoạn lệnh xuất kết quả Null

D Đoạn lệnh không xuất kết quả nào hết

Trang 33

Câu 4: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả 5

B Đoạn lệnh xuất kết quả 10

C Đoạn lệnh xuất kết quả Null

D Đoạn lệnh không xuất kết quả nào hết

Trang 34

Câu 5: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả 1

B Đoạn lệnh xuất kết quả 2

C Đoạn lệnh báo lỗi do biến $myvar chưa khai báo

D Đoạn lệnh không xuất kết quả nào hết

Trang 35

Câu 6: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

Trang 36

Câu 7: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả “15”và “15”

B Đoạn lệnh xuất kết quả “15”và một thông báo notice

C Đoạn lệnh sai ở dòng số 4

D Đoạn lệnh sai ở dòng số 9

Trang 37

Câu 8: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

<?php

1 class myClass {

2 private $myNumber = NULL;

3 public function construct() {

Trang 38

Câu 9: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

Trang 39

Câu 10: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

B Đoạn lệnh xuất kết quả 2

C Đoạn lệnh xuất kết quả 3

D Đoạn lệnh xuất kết quả 123

Trang 40

Câu 11: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả 9

B Đoạn lệnh xuất kết quả null

C Đoạn lệnh sai ở dòng số 3 trong tập tin cMyMath.php

D Đoạn lệnh sai ở dòng số 3 trong tập tin Test_cMyMath.php

Trang 41

Câu 12: Chọn phát biểu đúng thay cho từ key1 và key2 để đoạn lệnh

sau xuất ra kết quả là 9 (đoạn lệnh thực hiện trong PHP5):

A key1: public và key2: echo $obj->mysqrt(3);

B key1: để trống và key2: echo $obj->mysqrt(3);

C Cả A và B đều đúng

D Tất cả đều sai

Trang 42

Câu 13: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả “Hello”

B Đoạn lệnh xuất kết quả “Good bye”

C Đoạn lệnh không xuất kết quả nào hết

D Đoạn lệnh báo lỗi: Fatal error

Trang 43

Câu 14: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả “Hello” và báo lỗi Fatal Error

B Đoạn lệnh xuất kết quả “HelloHelloHello”

C Đoạn lệnh không xuất kết quả nào hết

D Đoạn lệnh báo lỗi: Fatal error

Trang 44

Câu 15: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

A Đoạn lệnh xuất kết quả “Hello”

B Đoạn lệnh xuất kết quả “HelloHello”

C Đoạn lệnh báo lỗi: Fatal error

D Tất cả đều sai

Trang 45

Câu 16: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

<?php

1 class Foo{

2 public $x;

3 public function Foo(){$this->x=1;}

4 public function Foo($val){$x=$val;}

5 }

6 $obj = new Foo(3);

7 echo $obj->x;

8 ?>

A Đoạn lệnh xuất kết quả 1

B Đoạn lệnh xuất kết quả 3

C Đoạn lệnh không xuất kết quả nào hết

D Đoạn lệnh báo lỗi: Fatal error

Trang 46

Câu 17: Chọn phát biểu đúng thay cho từ key để đoạn lệnh sau xuất ra

kết quả là animal (đoạn lệnh thực hiện trong PHP5):

<?php

1 class Animal{

3 public function Animal(){$this->type="animal";}

4 function getDescription(){return $type;}

Trang 47

Câu 18: Chọn phát biểu đúng thay cho từ key để đoạn lệnh sau xuất ra

kết quả là vehicle (đoạn lệnh thực hiện trong PHP5):

Trang 48

Câu 19: Cho biết kết quả đoạn lệnh (đoạn lệnh thực hiện trong PHP5):

<?php

1 abstract class AbstractClass{

2 abstract protected function getValue();

3 public function printOut() {print $this->getValue() "\n";}

4 }

5 class ConcreteClass1 extends AbstractClass{

6 protected function getValue() {return "ConcreteClass1";}

7 }

8 class ConcreteClass2 extends AbstractClass{

9 public function getValue() {return "ConcreteClass2";}

10 }

11 $class1 = new ConcreteClass1; $class1->printOut();

12 $class2 = new ConcreteClass2; $class2->printOut();

?>

A ConcreteClass1 ConcreteClass2

B Đoạn lệnh báo lỗi dòng 3 vì trong lớp abstract chỉ chứa phương

thức abstract

C Đoạn lệnh báo lỗi dòng 3 vì trong lớp abstract phương thức

printOut() không được định nghĩa trước

D Tất cả đều sai

Trang 49

Câu 20: Chọn phát biểu đúng (đoạn lệnh thực hiện trong PHP5):

<?php

1 abstract class newClass{

2 final public function construct(){echo 'You failed';}

3 }

4 class MyClass extends newClass{

5 public function construct(){echo 'Will this work?';}

6 public static function myFunc(){echo 'FooBar';}

7 }

8 $init = new MyClass();

?>

A Đoạn lệnh biên dịch bị lỗi ở dòng số 2

B Đoạn lệnh biên dịch bị lỗi ở dòng số 6

C Đoạn lệnh biên dịch thành công nhưng thực thi báo lỗi Fatal error

D Đoạn lệnh biên dịch thành công nhưng thực thi thông báo warning

Ngày đăng: 03/05/2016, 22:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w