当前位置:编程学习 > php >>

PHP3中文文档(续2)

答案:

从HTML中脱离

这儿有三种方法从HTML中脱离,同时加入“PHP代码模式”

    Example 5-1. 从HTML中脱离的方法

1. <? echo("this is the simplest, an SGML processing instruction\n"); ?>

2. <?php echo("if you want to serve XML documents, do like this\n"); ?>

3. <script language="php">

echo ("some editors (like FrontPage) don't

like processing instructions");

</script>;

4. <% echo("As of PHP 3.0.4 you may optionally use ASP-style tags"); %>

语句的脱离方法
    语句的脱离方法和C及PERL是一样的------终止每一个语句时使用分号(;)。

    结束标签(?>)也暗示了说明的结束,所以下面的两句话是等价的:

<php

echo "This is a test";

?>

 

<php echo "This is a test" ?>

变量类型
    PHP支持如下的变量类型:

integer :整数
double :双精度数
string :字符串
array :队列数组
object :对象
pdfdoc (only if enabled PDF support) :PDF文本(仅仅在起用PDF支持之后生效)
pdfinfo (only if enabled PDF support) :PDF信息(仅仅在起用PDF支持之后生效)
    这些变量的类型通常不由程序员来设置;特别的,它在运行时由PHP依据上下文来设置使用什么类型。

    如果您喜欢强制将某个变量转换到指定的类型,您还可以对该变量进行“cast”操作,或者使用函数“settype()”。

 

    注意这些变量可能会在确定的情形下被不同的控制者使用,这依赖于此时该变量的类型是什么。想要获得更进一步的信息,请参考“Type Juggling”部分。

变量的初始化
    在PHP中初始化一个变量,您只需要简单的分派给它一个值即可。对于大多数类型,这样做是十分简单的;但是对于类型“Array(数组)和Objects(对象)”来说,需要使用有些不同的方法。

初始化数组
    一个数组可以使用如下的方法来初始化:使用连续的指定值,同时使用“array()”结构(这将在“Array 函数函数说明部分中被证明)。

 

    对一个数组(Array)变量连续的添加值。您简单指定无标号的Array变量的值即可。这些值会添加在该Array变量最后的元素中。

 

$names[] = "Jill"; // $names[0] = "Jill"

$names[] = "Jack"; // $names[1] = "Jack"

 

    和在C和Perl中一样,数组元素的开始号码是0而不是1。

初始化object(对象)变量
    要初始化object变量,您使用下面例子中所示的申明方法:

class foo {

function do_foo () {

echo "Doing foo.";

}

}

$bar = new foo;

$bar -> do_foo ();

变量的活动范围
    变量的活动范围仅仅限于定义它的上下文。对于绝大多数部分中所有的PHP变量仅仅只有单独的活动范围。然而,在用户自定义的函数中,引入了一个本地函数范围的概念。在这个函数中使用的任何变量缺省被限制在该函数的本地函数范围之中。例如:

 

$a = 1; /* global scope */

Function Test () {

echo $a; /* reference to local scope variable */ }

Test ();

 

    这段脚本将不会造成任何的输出,因为给显示的提交给本地译文的变量“$a”的申明,同时这个变量没有在它的活动范围中被指定一个值。您可以注意到这和C语言有一些不同,在C语言中全局变量是自动被设定为可用的,除非在函数中进行了特别的说明。由于人们可能会不小心的改变了全局变量的值,所以这可会在程序中导致许多问题。在PHP中全局变量必须在一个函数中被公告,如果想要在这个函数中使用它的话。例子如下:

 

$a = 1;

$b = 2;

Function Sum () {

global $a, $b;

$b = $a + $b;

}

Sum ();

echo $b;

 

    上面的脚本将输出“3”。在函数中申明了全局变量$a和$b,任何对这两个变量的引用都被指定到了该全局变量。这里没有函数可以操作的限制全局变量的数目。

 

    第二种接受全局变量的方法是使用PHP特殊的定义数组$GLOBALS,例子如下所示:

$a = 1;

$b = 2;

 

Function Sum () {

$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];

}

 

Sum ();

echo $b;

 

    $GLOBALS数组是一个联合数组使用“global”为变量的名字,全局变量作为该变量数组其中某个元素的值。

 

    另一个关于变量活动范围的重要特性是“静态变量”。一个静态变量仅仅在本地函数的活动范围中存在,但是当程序离开这个范围时,它的值并不丢失。请参考下面的例子:

 

Function Test () {

$a = 0;

echo $a;

$a++;

}

 

    这个函数每次被调用时都把变量$a置为0同时打印“0”,所以几乎是没有作用的。表达式“$a++”将增加变量的值,但是每次退出函数时变量$a就消失了。想要使用一个不丢失当前计算的记数函数,用户可以将变量$a设置为静态的,示例如下:

 

Function Test () {

static $a = 0;

echo $a;

$a++;

}

 

    现在,每一次当Test()函数被调用的时候,它将打印出变量$a和它当时增加之后的数值。

 

    当函数被递归调用的时候,使用静态变量是一种很重要的方法。递归函数就是可以调用自身的函数。当编写递归函数的时候,必须注意可能会发生的循环定义。您必须有一个适当的方法来中断这个递归过程。下面的例子递归了10次:

 

Function Test () {

static $count = 0;

$count++;

echo $count;

if ($count < 10) {

Test (); }

$count--;

}

变化变量
    有些时候使用变化变量是十分方便的。也就是说,一个变量的名字将被动态的设置和使用。一个普通的变量将会使用如下的申明:

 

    $a = "hello";

 

    一个变化变量获得一个变量的值,并将其视该变量的名字。在上面的例子中,“hello”,能够使用变量的名字加上两个$来进行使用,例如。

 

    $$a = "world";

 

    在这一点上,两个变量被定义和存储在PHP的符号树上;$a的内容为“hello”,而$hello的值为“world”。因此如下的申明:

 

    echo "$a ${$a}";

 

    制作了和如下确切相同的输出:

 

    echo "$a $hello";

 

    他们都输出:“hello world”

 

    要在数组中使用变化变量,您必须解决一个含糊的问题。它是:如果您写入了“$$a[1]”,然后解析程序将需要知道您想使用$a[1]作为变量还是使用$$a作为变量,这样索引“[1]”可能就会发生歧义。解决这种歧义的语法如下:“${$a[1]}”或者使用“${$a}[1]”(对上述的第二种情况)。

外界PHP变量
    HTML表单(GET和POST)

    当表单被提交给PHP脚本时,从该表单获得的变量将自动的被该PHP脚本设置为可用。请参考如下示例:

 

    Example 5-2. Simple form variable (简单的表单变量)

<form action="foo.php3" method="post">

Name: <input type="text" name="name"><br>

<input type="submit">

</form>

    当提交之后,PHP将建立一个变量“$name”,它将包含任何在表单中输入在“Name”中的内容。

 

    PHP同时也知道如何安排表单变量的上下文关系,但是仅仅限于一次。您可以,例如,将一组变量同时叙述,或者使用这个特性来重新从多重选择输入中获得值:

 

    Example 5-3. More complex form variables

<form action="array.html" method="post">

Name: <input type="text" name="personal[name]"><br>

Email: <input type="text" name="personal"><br>

Beer: <br>

<select multiple name="beer[]">

<option value="warthog">Warthog

<option value="guinness">Guinness

</select>

<input type="submit">

上一个:PHP3中文文档(续1)
下一个:PHP3中文文档(续3)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,