1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng PHP (Hypertext Preprocessing) - Chương 2: PHP căn bản

66 50 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 66
Dung lượng 426,17 KB

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

Nội dung

Bài giảng PHP (Hypertext Preprocessing) - Chương 2: PHP căn bản trình bày các nội dung chính sau: Biến, kiểu và hằng, toán tử và biểu thức, các câu lệnh điều khiển, hàm, lớp và đối tượng, tham chiếu,... Mời các bạn cùng tham khảo để nắm nội dung chi tiết.

Trang 1

II PHP Căn bản

II.1 Biến, kiểu và hằng

II.2 Toán tử và biểu thức

II.3 Các câu lệnh điều khiển II.4 Hàm

II.5 Lớp & đối tượng

II.6 Tham chiếu (reference)

Trang 2

II.1 Biến, kiểu và hằng

II.1.1 Biến

II.1.1.1 Tên biến

II.1.1.2 Tham chiếu

II.1.1.3 Biến động

II.1.1.4 Phạm vi (scope) của biến II.1.2 Kiểu

II.1.3 Hằng

Trang 3

II.1.1.1 Tên biến

<?php

$var = "Bob" ;

$Var = "Joe" ;

echo "$var, $Var" ; // outputs "Bob, Joe"

228

?>

Biến được ký hiệu bởi ký tự $

Tên biến phải được bắt đầu bởi 1 chữ cái hoặc ký tự gạch chân

Tên biến không chứa các dấu và ký tự cách

Trang 4

II.1.1.2 Tham chiếu

Giống ngôn ngữ C, trong PHP bạn có thể sử dụng tham chiếu

$bar = & $foo ; // This is a valid assignment

$bar = &( 24 * 7 );// Invalid references an unnamed expression

Trang 5

II.1.1.3 Biến động (Dynamic Variable)

Vì PHP là ngôn ngữ thông dịch nên bạn có thể sử dụng các biến có tên chưa biết trước (tên biến thay đổi)

<?php

$a = "quang" ; // gia tri cua bien a la 'quang'

$$a = "np" ; // bien dong $quang co gia tri la 'np'

echo( " $a <br>" ); // In ra gia tri cua bien a

echo( " $quang <br>" ); // In ra gia tri cua bien quang

$ { "quang" } = 13432 ; // Gian truc tiep bien dong

Trang 6

II.1.1.4 Phạm vi của biến

Trang 7

II.1.1.4 Phạm vi của biến (2)

$GLOBALS [ "b" ] =

$GLOBALS [ "a" ] +

$GLOBALS [ "b" ];

} Sum();

echo $b ;

?>

Trang 8

II.1.1.4 Phạm vi của biến (3)

static $a = 0 ;

echo $a ;

$a ++;

} Test();

Test();

?>

Trang 9

II.1.1.4 Phạm vi của biến (4)

Trang 11

echo gettype ( $bool ); // prints out "boolean"

echo gettype ( $str ); // prints out "string“

// If this is an integer, increment it by four

if ( is_int ( $int )) {

$int += 4 ;

}

// If $bool is a string, print it out

// (does not print out anything)

Trang 12

II.1.2.1 Kiểu boolean

Trang 13

II.1.2.2 Kiểu integer

<?php

$a = 1234 ; # decimal number

$a = - 123 ; # a negative number

$a = 0123 ; # octal number (equivalent to 83 decimal)

$a = 0x1A ; # hexadecimal number (equivalent to 26 decimal)

Trang 14

II.1.2.3 Kiểu float

$foo = 1 + "10.5" ; // $foo is float (11.5)

$foo = 1 + "-1.3e3" ; // $foo is float

(-1299)

$foo = 1 + "bob-1.3e3" ; // $foo is integer (1)

$foo = 1 + "bob3" ; // $foo is integer (1)

$foo = 1 + "10 Small Pigs" ; // $foo is integer (11)

$foo = 4 + "10.2 Little Piggies" ; // $foo is float (14.2)

$foo = "10.0 pigs " + 1 ; // $foo is float (11)

$foo = "10.0 pigs " + 1.0 ; // $foo is float (11)

?>

Trang 15

II.1.2.4 Kiểu string

 String trong PHP là một chuỗi các ký tự 1 byte PHP không hỗ trợ Unicode, để làm việc với Unicode bạn phải sử dụng UTF8 với các hàm utf8_encode() – utf8_decode()

 String của PHP hỗ trợ chiều dài rất lớn (?)

 Trong PHP, string được xác định theo 3 cách

– Dấu nháy đơn (single quote)

– Dấu nháy kép (double quote)

– Heredoc

 Truyền biến trong string

– Truyền kiểu đơn giản

– Truyền kiểu phức

 Truy cập đến từng ký tự trong string

 Các toán tử trên string

Trang 16

II.1.2.4 Kiểu String (2)

Kiểu dấu nháy đơn

<?php

echo 'this is a simple string' ;

echo 'You can also have embedded newlines in strings this way as it is

okay to do' ;

// Outputs: Arnold once said: "I'll be back"

echo 'Arnold once said: "I\'ll be back"' ;

// Outputs: You deleted C:\*.*?

echo 'You deleted C:\\*.*?' ;

// Outputs: You deleted C:\*.*?

echo 'You deleted C:\*.*?' ;

// Outputs: This will not expand: \n a newline

echo 'This will not expand: \n a newline' ;

// Outputs: Variables do not $expand $either

echo 'Variables do not $expand $either' ;

Trang 17

II.1.2.4 Kiểu String (3)

 Kiểu dấu nháy kép: kiểu này giống với kiểu dấu nháy đơn nhưng có nhiều hỗ trợ cho các

ký tự đặc biệt hơn

Trang 18

II.1.2.4 Kiểu String (4)

Kiểu Heredoc

<?php

$str = <<<EOA

Example of string <br>

spanning multiple lines<br>

using heredoc syntax.<br>

Trang 19

II.1.2.4 Kiểu String (5)

Truyền biến kiểu đơn giản

<?php

$beer = 'Heineken' ;

echo " $beer 's taste is great" ;

// works, "'" is an invalid character for varnames

echo "He drank some $beers " ;

// won't work, 's' is a valid character for varnames

echo "He drank some $ {beer}s" ; // works

echo "He drank some { $beer }s" ; // works

?>

Truyền biến kiều phức (truyền biến kiểu mảng vào string) – sẽ đề cập đến ở phần mảng

Trang 20

II.1.2.4 Kiểu String (6)

Truy cập đến từng ký tự của String

Trang 21

II.1.2.5 Kiểu Array

 Kiểu Array của PHP thực sự là kiểu ánh xạ (map) có thứ tự Tức là kiểu dữ liệu gồm các cặp khóa (key) và giá trị (value)

 Với kiểu mảng này, bạn có thể sử dụng như một mảng thuần túy (vector), hay dùng cho các kiểu dữ liệu collection, stack, queue,

tree

Trang 22

II.1.2.5 Kiểu Array (2)

echo var_dump ( $ar ), "<br>" ;

$ar = array( "a" => 10 , 20 , 30 , 40 );

echo var_dump ( $ar ), "<br>" ;

$ar = array( "a" =>array( 1 , 2 , 3 , 4 , 5 ), 20 , 30 , 40 );

echo var_dump ( $ar );

?>

Trang 23

II.1.2.5 Kiểu Array (3)

Sử dụng array

<?php

$arr = array( 5 => 1 , 12 => 2 );

$arr [] = 56 ; // This is the same as $arr[13] = 56;

// at this point of the script

$arr [ "x" ] = 42 ; // This adds a new element to

// the array with key "x"

unset( $arr [ 5 ]); // This removes the element from the array

unset( $arr ); // This deletes the whole array

Trang 24

II.1.2.6 Kiểu Object

<?php

class Xeco {

var $sobanh ; function BaoNhieuBanh() {

echo( $this ->sobanh); }

Trang 25

II.1.3 Hằng

Định nghĩa hằng bằng cách sử dụng hàm define()

Phạm vi của hằng là toàn cục (global)

Chỉ có các dạng dữ liệu đơn giản (boolean, interger, float, string)

Nếu tên hằng chưa được định nghĩa, PHP giả thiết rằng bạn đang sử dụng 1 hằng chứa giá trị là 1 string (chính là tên của hằng đó)

Để xác định một hằng đã được định nghĩa hay chưa, bạn có thể sử dụng hàm defined

<?php

define( "CONSTANT" , "Hello world." );

echo CONSTANT ; // outputs "Hello world."

echo Constant ; // outputs "Constant" and issues a

notice

echo defined ( "Constant" );

echo defined ( "CONSTANT" );

?>

Trang 26

II.1.3 Hằng (2)

 Các hằng được định nghĩa trước (các hằng này thường được sử dụng để phục vụ quá trình debug

Tên hằng Mô tả

LINE Thứ tự dòng hiện tại trong file

FILE Đường dẫn đầy đủ của file hiện tại

FUNCTION Tên hàm hiện tại

CLASS Tên lớp hiện tại

METHOD Tên phương thức hiện tại của lớp

Trang 27

II.2 Toán tử và biểu thức

II.2.1 Mức độ ưu tiên các toán tử

II.2.2 Toán tử số học

II.2.3 Toán tử gán

II.2.4 Các toán tử trên bit

II.2.5 Toán tử so sánh

II.2.6 Toán tử điều khiển lỗi

II.2.7 Toán tử thực thi

II.2.8 Toán tử tăng, giảm

II.2.9 Các toán tử logic

II.2.10 Toán tử trên string

II.2.11 Toán tử trên mảng

Trang 28

II.2.1 Mức độ ưu tiên các toán tử

Trang 29

II.2.2 Toán tử số học

Example Name Result

$a + $b Addition Sum of $a and $b

$a - $b Subtraction Difference of $a and $b

$a * $b Multiplicatio

n Product of $a and $b

$a / $b Division Quotient of $a and $b

$a % $b Modulus Remainder of $a divided by

$b

Trang 30

II.2.3 Toán tử gán

phải) cho 1 biến (vế trái)

đó có thể dùng nhiều phép gán liên tiếp nhau

hợp cho hầu hết các toán tử số học để thay đổi giá trị 1 biến theo phép toán số học đó (+=, -=, *=, /=, = .)

Trang 31

II.2.4 Các toán tử trên bit

Example Name Result

$a & $b And Bits that are set in both $a and $b are

Shift the bits of $a $b steps to the left (each step means "multiply by two")

Trang 32

II.2.5 Toán tử so sánh

Example Name Result

$a == $b Equal TRUE if $a is equal to $b

$a === $b Identical TRUE if $a is equal to $b, and they are of the same

type (PHP 4 only)

$a != $b Not equal TRUE if $a is not equal to $b

$a <> $b Not equal TRUE if $a is not equal to $b

$a !== $b Not identical TRUE if $a is not equal to $b, or they are not of the

same type (PHP 4 only)

$a < $b Less than TRUE if $a is strictly less than $b

$a > $b Greater than TRUE if $a is strictly greater than $b

$a <= $b Less than or

equal to TRUE if $a is less than or equal to $b

Greater than or

Trang 33

II.2.6 Toán tử điều khiển lỗi

 Toán tử điều khiển lỗi (@) dùng để đặt trước các

hàm, biểu thức Khi đó tất cả các thông báo lỗi trong hàm, biểu thức đó bị bỏ qua

<?php

$b = @ file ( "a adf a" ) or

die( "Khong the mo file" );

?>

Trang 34

II.2.7 Toán tử thực thi

 Toán tử thực thi (``) cho phép bạn gọi các

lệnh trên console, (các thông tin tin này có thể viết ra output hoặc gán vào các biến)

<?php

$output = `dir c: \\ ` ;

echo "$output" ;

?>

Trang 35

II.2.8 Toán tử tăng, giảm

<?php

$a = 5 ;

echo "Should be 5: " $a ++ "<br /> \n " ; echo "Should be 6: " $a "<br /> \n " ;

$a = 5 ;

echo "Should be 6: " ++ $a "<br /> \n " ; echo "Should be 6: " $a "<br /> \n " ;

$a = 5 ;

echo "Should be 5: " $a "<br /> \n " ; echo "Should be 4: " $a "<br /> \n " ;

$a = 5 ;

echo "Should be 4: " $a "<br /> \n " ; echo "Should be 4: " $a "<br /> \n " ;

?>

Trang 36

II.2.9 Các toán tử logic

Example Name Result

$a and $b And TRUE if both $a and $b are TRUE

$a or $b Or TRUE if either $a or $b is TRUE

$a xor $b Xor TRUE if either $a or $b is TRUE, but not both

! $a Not TRUE if $a is not TRUE

$a && $b And TRUE if both $a and $b are TRUE

$a || $b Or TRUE if either $a or $b is TRUE

Trang 37

II.2.10 Toán tử trên string

 Có 2 toán tử trên string ( và =)

Trang 38

II.2.11 Toán tử trên mảng

Đối với mảng, chỉ có toán tử +, toán tử này nối 2 mảng với nhau (các phần trùng khóa được lấy ở toán hạng trái)

Trang 39

II.3 Các cấu trúc điều khiển

II.3.1 Cấu trúc if, else, elseif, endif

II.3.2 Cấu trúc while / do while

II.3.3 Cấu trúc for / for each

II.3.4 Sử dụng break, continue trong các vòng lặp

II.3.5 Cấu trúc switch

Trang 40

II.3.1 Cấu trúc if, else, elseif, endif

Trang 41

II.3.2 Cấu trúc while / do while

?>

Trang 42

II.3.3 Cấu trúc for / for each

print " $i \n " , $i ++);

echo " - \n " ; for ( $i = 1 ; $i <= 20 ; $i ++):

print " $i \n " ; endfor

Trang 43

II.3.3 Cấu trúc for / for each (2)

foreach (array_expression as $value) statement

foreach (array_expression as $key => $value) statement

<?php

$arr = array( "one" , "two" , "three" );

reset ( $arr );

while (list(, $value ) = each ( $arr )) {

echo "Value: $value <br> \n " ;

}

foreach ( $arr as $value ) {

echo "Value: $value <br> \n " ;

}

foreach ( $arr as $key => $value ) {

echo "Key: $key ; Value: $value <br> \n " ;

Trang 44

II.3.4 Sử dụng break, continue trong các vòng lặp

<?php

$arr = array

( 'one' , 'two' , 'three' , 'four' , 'stop' , 'five' );

while (list (, $val ) = each ( $arr )) {

Trang 45

II.3.4 Sử dụng break, continue trong các vòng lặp (2)

Trang 46

II.3.5 Cấu trúc switch

Trang 48

II.4.1 Hàm tự định nghĩa (user-defined)

<?php

function foo ( $arg_1 , $arg_2 , , $arg_n ) {

echo "Example function \n ";

Trang 49

II.4.2 Truyền tham số

PHP hỗ trợ truyền tham số vào hàm, truyền tham số dưới dạng tham chiếu (reference), truyền tham số với giá trị mặc định

<?php

function takes_array( $input ) {

echo " $input [0] + $input [1] = " , $input [ 0 ]+ $input [ 1 ]; }

function add_some_extra(& $string ) {

$string = 'and something extra.' ;

Trang 50

II.4.2 Truyền tham số (2)

function makecoffee ( $type = "cappuccino" ) {

return "Making a cup of $type \n " ;

}

echo makecoffee ();

echo makecoffee ( "espresso" );

function makeyogurt ( $type = "acidophilus" , $flavour ) {

return "Making a bowl of $type $flavour \n " ;

}

// won't work as expected

echo makeyogurt ( "raspberry" );

function makeyogurt ( $flavour , $type = "acidophilus" ) {

return "Making a bowl of $type $flavour \n " ;

}

// works as expected

echo makeyogurt ( "raspberry" );

Trang 51

II.4.2 Truyền tham số (3)

Bạn có thể truyền tham số với số lượng không xác định Khi đó

sẽ sử dụng các hàm sau

func_num_args(): Số lượng tham số

func_get_args(): Lấy danh sách các tham số

Trang 52

II.4.3 Giá trị trả về

Để trả về giá trị của hàm, sử dụng lệnh return Có thể sử dụng bất cứ kiểu nào trong giá trị trả về của hàm (kể cả mảng và đối tượng)

<?php

function square ( $num ) {

return $num * $num ;

Trang 53

function bar( $arg = '' ) {

echo "In bar(); argument was ' $arg '.<br>\n" ;

}

// This is a wrapper function around echo

function echoit( $string ) {

Trang 55

II.5 Lớp & đối tượng

II.5.1 Serializing đối tượng – đối tượng trong session

II.5.2 Tham chiếu bên trong constructor

II.5.3 So sánh đối tượng trong PHP4

II.5.4 So sánh đối tượng trong PHP5

Trang 56

II.5.1 Serializing đối tượng – đối tượng trong session

Hàm serialize() dùng để lưu trữ đối tượng, hàm trả về một chuỗi các byte để lưu thông tin của đối tượng

Hàm unserialize() dùng để khôi phục đối tượng được lưu giữ bởi hàm

$ob1 ->c = "Nguyen Phu Quang" ;

$luu = serialize ( $ob1 );

echo " $luu \n " ;

$ob2 = unserialize ( $luu );

var_dump ( $ob2 );

Trang 57

II.5.2 Tham chiếu bên trong constructor

$global_ref [] = & $this ;

$this -> setName ( $name );

}

function setName ( $name ) {

$this ->m_name = $name ;

$a = new AClass( "a" );

$b =& new AClass( "b" );

Trang 58

II.5.3 So sánh đối tượng trong PHP4

Trang 59

II.5.3 So sánh đối tượng trong PHP4

<?php

class AClass {

var $set ;

function addFlag( $key , $value ) {

$this ->set[ $key ] = $value ;

}

function removeFlag( $key ) {

unset( $this ->set[ $key ]);

Trang 60

II.5.4 So sánh đối tượng trong PHP5

 So sánh đối tượng trong PHP5 có một số

thay đổi so với PHP4

 Đối với phép so sánh ==, hai đối tượng bằng nhau nếu có chung các thuộc tính và cùng thuộc 1 lớp

 Đối với phép so sánh ===, hai đối tượng

được gọi là bằng nhau nếu chúng cùng tham chiếu đến 1 phiên bản của 1 lớp

Trang 61

II.6 Tham chiếu (reference)

II.6.1 Các trường hợp sử dụng tham chiếu

II.6.2 Các trường hợp ko sử dụng tham chiếu II.6.3 Truyền tham chiếu

II.6.4 Trả về tham chiếu

II.6.5 Unset tham chiếu

Trang 62

II.6.1 Các trường hợp sử dụng tham chiếu

 Tham chiếu cho phép bạn sử dụng 1 biến với nhiều tên khác nhau

 Đối với đối tượng, nên sử dụng phép gán tham chiếu khi dùng toán tử new để tránh phép gán tạo ra thêm 1 phiên bản của đối tượng

 Để thay đổi giá trị của tham số truyền vào trong hàm, bạn có thể sử dụng tham

$d =& new AClass();

function increment(& $num ) {

Ngày đăng: 11/01/2020, 20:24

TỪ KHÓA LIÊN QUAN