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

Tự học HTML và CSS trong 1 giờ - part 66 ppt

10 112 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Taking Advantage of the Server
Trường học University of Information Technology
Chuyên ngành Web Development
Thể loại Bài giảng
Năm xuất bản 2023
Thành phố Ho Chi Minh City
Định dạng
Số trang 10
Dung lượng 505,42 KB

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

Nội dung

PHP has a built-in function named is_arraythat returns true if its argument is an array and false if the argument is anything else.. This function is often used to do a bit of checking b

Trang 1

As you’ll see a bit further on, the ability to specify array indexes using variables is a

sta-ple of some kinds of loops in PHP

As you’ve seen, nothing distinguishes between a variable that’s an array and a variable

that holds a string or a number PHP has a built-in function named is_array()that

returns true if its argument is an array and false if the argument is anything else Here’s

an example:

is_array(array(1, 2, 3)); // returns true

is_array(‘tree’); // returns false

To determine whether a particular index is used in an array, you can use PHP’s

array_key_exists()function This function is often used to do a bit of checking before

referring to a particular index, for example:

if (array_key_exists($state_capitals, “Michigan”)) {

echo $state_capitals[“Michigan”];

}

As mentioned previously, it’s perfectly acceptable to use arrays as the values in an array

Therefore, the following is a valid array declaration:

$stuff = (‘colors’ => array(‘red’, ‘green’, ‘blue’),

‘numbers’ => array(‘one’, ‘two’, ‘three’));

In this case, I have an associative array that has two elements The values for each of the

elements are arrays themselves I can access this data structure by stacking the references

to the array indexes, like this:

$colors = $stuff[‘colors’]; // Returns the list of colors.

$color = $stuff[‘colors’][1]; // Returns ‘green’

$number = $stuff[‘numbers’][0]; // Returns ‘one’

Strings

The most common data type you’ll work with in PHP is the string type A string is just a

series of characters An entire web page is a string, as is a single letter To define a

string, just place the characters in the string within quotation marks Here are some

examples of strings:

“one”

“1”

“I like publishing Web pages.”

“This string

spans multiple lines.”

Trang 2

Take a look at the last string in the list The opening quotation mark is on the first line,

and the closing quotation mark is on the second line In PHP, this is completely valid In

some programming languages, strings that span multiple lines are illegal—not so in PHP,

where strings can span as many lines as you like, so long as you don’t accidentally close

the quotation marks

There’s more to strings than just defining them You can use the .operator to join

strings, like this:

$html_paragraph = “<p>” $paragraph “</p>”;

The$html_paragraphvariable will contain the contents of $paragraphsurrounded by

the opening and closing paragraph tag The .operator is generally referred to as the

string concatenation operator.

Up to this point, you might have noticed that sometimes I’ve enclosed strings in double

quotation marks, and that other times I’ve used single quotation marks They both work

for defining strings, but there’s a difference between the two When you use double

quo-tation marks, PHP scans the contents of the string for variable substitutions and for

spe-cial characters When you use single quotation marks, PHP just uses whatever is in the

string without checking to see whether it needs to process the contents

Special characters are introduced with a backslash, and they are a substitute for

charac-ters that might otherwise be hard to include in a string For example, \nis the substitute

for a newline, and \ris the substitute for a carriage return If you want to include a

new-line in a string and keep it all on one new-line, just write it like this:

$multiline_string = “Line one\nLine two”;

Here’s what I mean by variable substitutions In a double-quoted string, I can include a

reference to a variable inside the string, and PHP will replace it with the contents of the

variable when the string is printed, assigned to another variable, or otherwise used In

other words, I could have written the preceding string-joining example as follows:

$html_paragraph = “<p>$paragraph</p>”;

PHP will find the reference to $paragraphwithin the string and substitute its contents

On the other hand, the literal value “$paragraph” would be included in the string if I

wrote that line like this:

$html_paragraph = ‘<p>$paragraph</p>’;

You need to do a bit of extra work to include array values in a string For example, this

won’t work:

$html_paragraph = “<p>$paragraph[‘intro’]</p>”;

21

Trang 3

You can include the array value using string concatenation:

$html_paragraph = “<p>” $paragraph[‘intro’] “</p>”;

You can also use array references within strings if you enclose them within curly braces,

like this:

$html_paragraph = “<p>{$paragraph[‘intro’]}</p>”;

One final note on defining strings is escaping As you know, quotation marks are

com-monly used in HTML as well as in PHP, especially when it comes to defining attributes

in tags There are two ways to use quotation marks within strings in PHP The first is to

use the opposite quotation marks to define the string that you’re using within another

string Here’s an example:

$tag = ‘<p class=”important”>’;

I can use the double quotes within the string because I defined it using single quotes

This particular definition won’t work, though, if I want to specify the class using a

vari-able If that’s the case, I have two other options:

$tag = “<p class=\”$class\”>”;

$tag = ‘<p class=”’ $class ‘“>’;

In the first option, I use the backslash character to “escape” the double quotes that occur

within the string The backslash indicates that the character that follows is part of the

string and does not terminate it The other option is to use single quotes and use the

string concatenation operator to include the value of $classin the string

Conditional Statements

Conditional statements and loops are the bones of any programming language PHP is no

different The basic conditional statement in PHP is the ifstatement Here’s how it

works:

if ($var == 0) {

echo “Variable set to 0.”;

}

The code inside the brackets will be executed if the expression in the ifstatement is

true In this case, if $varis set to anything other than 0, the code inside the brackets will

not be executed PHP also supports elseblocks, which are executed if the expression in

theifstatement is false They look like this:

if ($var == 0) {

echo “Variable set to 0.”;

} else {

Trang 4

echo “Variable set to something other than 0.”;

}

When you add an elseblock to a conditional statement, it means that the statement will

always do something If the expression is true, it will run the code in the ifportion of

the statement If the expression is not true, it will run the code in the elseportion

Finally, there’s elseif:

if ($var == 0) {

echo “Variable set to 0.”;

} elseif ($var == 1) {

echo “Variable set to 1.”;

} elseif ($var == 2) {

echo “Variable set to 2.”;

} else {

echo “Variable set to something other than 0, 1, or 2.”;

}

As you can see, elseifallows you to add more conditions to an ifstatement In this

case, I added two elseifconditions There’s no limit on elseifconditions—you can

use as many as you need Ultimately, elseifandelseare both conveniences that enable

you to write less code to handle conditional tasks

PHP Conditional Operators

It’s hard to write conditional statements if you don’t know how to write a Boolean

expression First of all, Boolean means that an expression (which you can think of as a

statement of fact) is either true or false Here are some examples:

1 == 2 // false

‘cat’ == ‘dog’ // false

5.5 == 5.5 // true

5 > 0 // true

5 >= 5 // true

5 < 10 // true

PHP also supports logical operators, such as “not” (which is represented by an

exclama-tion point), “and” (&&), and “or” (||) You can use them to create expressions that are

made up of multiple individual expressions, like these:

1 == 1 && 2 == 4 // false

‘blue’ == ‘green’ || ‘blue’ == ‘red’ // false

!(1 == 2) // true, because the ! implies “not”

!(1 == 1 || 1 == 2) // false, because ! negates the expression inside the ()

21

Trang 5

Furthermore, individual values also evaluate to true or false on their own Any variable

set to anything other than 0 or an empty string (“”or‘’) will evaluate as true, including

an array with no elements in it So if $varis set to 1, the following condition will

evalu-ate as true:

if ($var) {

echo “True.”;

}

If you want to test whether an array is empty, use the built-in function empty() So if

$varis an empty array, empty($var)will return true Here’s an example:

if (empty($var)) {

echo “The array is empty.”;

}

You can find a full list of PHP operators at

http://www.php.net/manual/en/language.oper-ators.php

Loops

PHP supports several types of loops, some of which are generally more commonly used

than others As you know from the JavaScript lesson, loops execute code repeatedly until

a condition of some kind is satisfied PHP supports several types of loops: do while,

while,for, and foreach I discuss them in reverse order

foreach Loops

Theforeachloop was created for one purpose—to enable you to process all the

ele-ments in an array quickly and easily The body of the loop is executed once for each item

in an array, which is made available to the body of the loop as a variable specified in the

loop statement Here’s how it works:

$colors = array(‘red’, ‘green’, ‘blue’);

foreach ($colors as $color) {

echo $color “\n”;

}

This loop prints each of the elements in the $colorsarray with a linefeed after each

color The important part of the example is the foreachstatement It specifies that the

array to iterate over is $colors, and that each element should be copied to the variable

$colorso that it can be accessed in the body of the loop

Trang 6

Theforeachloop can also process both the keys and values in an associative array if

you use slightly different syntax Here’s an example:

$synonyms = array(‘large’ => ‘big’,

‘loud’ => ‘noisy’,

‘fast’ => ‘rapid’);

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

echo “$key is a synonym for $value.\n”;

}

As you can see, the foreachloop reuses the same syntax that’s used to create associative

arrays

for Loops

Useforloops when you want to run a loop a specific number of times The loop

state-ment has three parts: a variable assignstate-ment for the loop’s counter, an expression

(con-taining the index variable) that specifies when the loop should stop running, and an

expression that increments the loop counter Here’s a typical forloop:

for ($i = 1; $i <= 10; $i++)

{

echo “Loop executed $i times.\n”;

}

$iis the counter (or index variable) for the loop The loop is executed until $iis larger

than 10 (meaning that it will run 10 times) The last expression, $i++, adds one to $i

every time the loop executes The forloop can also be used to process an array instead

offoreachif you prefer You just have to reference the array in the loop statement, like

this:

$colors = array(‘red’, ‘green’, ‘blue’);

for ($i = 0; $i < count(array); $i++) {

echo “Currently processing “ $colors[$i] “.\n”;

}

There are a couple of differences between this loop and the previous one In this case, I

start the index variable at 0, and use <rather than <=as the termination condition for the

loop That’s because count()returns the size of the $colorsarray, which is 3, and loop

indexes start with 0 rather than 1 If I start at 0 and terminate the loop when $iis equal

to the size of the $colorsarray, it runs three times, with $ibeing assigned the values 0,

1, and 2, corresponding to the indexes of the array being processed

21

Trang 7

while and do while Loops

Bothforandforeachare generally used when you want a loop to iterate a specific

number of times The whileanddo whileloops, on the other hand, are designed to be

run an arbitrary number of times Both loop statements use a single condition to

deter-mine whether the loop should continue running Here’s an example with while:

$number = 1;

while ($number != 5) {

$number = rand(1, 10);

echo “Your number is $number.\n”;

}

This loop runs until $numberis equal to 5 Every time the loop runs, $numberis assigned

a random value between 1 and 10 When the random number generator returns a 5, the

whileloop will stop running A do whileloop is basically the same, except the

condi-tion appears at the bottom of the loop Here’s what it looks like:

$number = 1;

do {

echo “Your number is $number.\n”;

$number = rand(1, 10);

} while ($number != 5);

Generally speaking, the only time it makes sense to use do…whileis when you want to

be sure the body of the loop will execute at least once

Controlling Loop Execution

Sometimes you want to alter the execution of a loop Sometimes you need to stop

run-ning the loop immediately, and other times you might want to just skip ahead to the next

iteration of the loop Fortunately, PHP offers statements that do both The break

state-ment is used to immediately stop executing a loop and move on to the code that follows

it The continuestatement stops the current iteration of the loop and goes straight to the

loop condition

Here’s an example of how breakis used:

$colors = (‘red’, ‘green’, ‘blue’);

$looking_for = ‘red’;

foreach ($colors as $color) {

if ($color = $looking_for) {

echo “Found $color.\n”;

break;

}

}

Trang 8

In this example, I’m searching for a particular color When the foreachloop gets to the

array element that matches the color I’m looking for, I print the color out and use the

breakstatement to stop the loop When I’ve found the element I’m looking for, there’s

no reason to continue

I could accomplish the same thing a different way using continue, like this:

$colors = (‘red’, ‘green’, ‘blue’);

$looking_for = ‘red’;

foreach ($colors as $color) {

if ($color != $looking_for) {

continue;

}

echo “Found $color.\n”;

}

In this case, if the color is not the one I’m looking for, the continuestatement stops

exe-cuting the body of the loop and goes back to the loop condition If the color is the one

I’m looking for, the continuestatement is not executed and the echofunction goes

ahead and prints the color name I’m looking for

The loops I’m using as examples don’t have a whole lot of work to do Adding in the

breakandcontinuestatements doesn’t make my programs much more efficient

Suppose, however, that each iteration of my loop searches a very large file or fetches

some data from a remote server If I can save some of that work using breakand

con-tinue, it could make my script much faster

Built-in Functions

PHP supports literally hundreds of built-in functions You’ve already seen a few, such as

echo()andcount() There are many, many more PHP has functions for formatting

strings, searching strings, connecting to many types of databases, reading and writing

files, dealing with dates and times, and just about everything in between

You learned that most of the functionality in the JavaScript language is built using the

methods of a few standard objects such as windowanddocument PHP is different—

rather than its built-in functions being organized via association with objects, they are all

just part of the language’s vocabulary

If you ever get the feeling that there might be a built-in function to take care of some

task, check the PHP manual to see whether such a function already exists Chances are it

does Definitely check whether your function will manipulate strings or arrays PHP has

a huge library of array- and string-manipulation functions that take care of most common

tasks

21

Trang 9

User-Defined Functions

PHP enables you to create user-defined functions that, like JavaScript functions, enable

you to package up code you want to reuse Here’s how a function is declared:

function myFunction($arg = 0) {

// Do stuff

}

Thefunctionkeyword indicates that you’re creating a user-defined function The name

of the function follows In this case, it’s myFunction The rules for function names and

variable names are the same—numbers, letters, and underscores are valid The list of

arguments that the function accepts follows the function name, in parentheses

The preceding function has one argument, $arg In this example, I’ve set a default value

for the argument The variable $argwould be set to 0 if the function were called like

this:

myFunction();

On the other hand, $argwould be set to 55 if the function were called like this:

myFunction(55);

Functions can just as easily accept multiple arguments:

function myOtherFunction($arg1, $arg2, $arg3)

{

// Do stuff

}

As you can see, myOtherFunctionaccepts three arguments, one of which is an array

Valid calls to this function include the following:

myOtherFunction(‘one’, ‘two’, array(‘three’));

myOtherFunction(‘one’, ‘two’);

myOtherFunction(0, 0, @stuff);

myOtherFunction(1, ‘blue’);

One thing you can’t do is leave out arguments in the middle of a list So if you have a

function that accepts three arguments, there’s no way to set just the first and third

argu-ments and leave out the second, or set the second and third and leave out the first If you

pass one argument in, it will be assigned to the function’s first argument If you pass in

two arguments, they will be assigned to the first and second arguments to the function

Trang 10

Returning Values

Optionally, your function can return a value, or more specifically, a variable Here’s a

simple example of a function:

function add($a = 0, $b = 0) {

return $a + $b;

}

Thereturnkeyword is used to indicate that the value of a variable should be returned to

the caller of a function You could call the previous function like this:

$sum = add(2, 3); // $sum set to 5

A function can just as easily return an array Here’s an example:

function makeArray($a, $b) {

return array($a, $b);

}

$new_array = makeArray(‘one’, ‘two’);

If you don’t explicitly return a value from your function, PHP will return the result of the

last expression inside the function anyway For example, suppose I wrote the add

func-tion like this:

function add($a = 0, $b = 0) {

$a + $b;

}

Because$a + $bis the last expression in the function, PHP will go ahead and return its

result That’s the case for logical expressions, too Here’s an example:

function negate($a) {

!$a;

}

negate(1); // returns false

negate(0); // returns true

Your function can also return the result of another function, whether it’s built in or one

you wrote yourself Here are a couple of examples:

function add($a = 0, $b = 0) {

return $a + $b;

}

21

Ngày đăng: 05/07/2014, 20:21

TỪ KHÓA LIÊN QUAN