电脑安全

您当前的位置:主页 > 电脑安全 >

PHP编程与应用-网络编程

来源:[db:来源]标题:   变量    编辑:电脑技术全能网 时间:2019-09-21 18:24

原标题:PHP编程与应用-网络编程
   第一章PHP3简介     PHP 是一种效劳器内置式的script 言语,它的呈现使得在unix上疾速地开辟静态web成为事实。     PHP是Rasmus Lerdorf在1994年秋日构想进去的。最早的未刊行版本是他在本人的主页下去用来和寓目他的在线简历的人坚持接洽的。第一个托付用户应用的版本是在1995年终刊行的,它只是被看成一个团体主页制造东西。事先它仅包含一个只能理解很少几条宏指令的十分简略的剖析引擎和一组用于主页信息反应的东西(一个留言簿,一个计数器和一些其余的货色)。1995年年中,Rasmus重写了全部剖析器,并取名为PHP/FI 2。FI起源于他写的别的一个html表单集成数据的软件包。他把团体主页东西,表单集成东西兼并在一同,并参加了mSQL数据库的支撑,如许就有了PHP/FI。尔后PHP/FI便以一种使人惊疑的速率传布开来,人们开端大批应用它编写顺序。     咱们无奈确实的统计它的应用范畴,然而依据估量到1996岁尾,天下上曾经有最少15,000个站点在应用PHP/FIl。到了1997年年中这个数字曾经增加到超越50,000个站点。 1997年年中咱们也发觉了PHP进展进程中一个严重的转机。这就是PHP的开辟从Rasmus团体的喜好进级到一群顺序员们有构造的任务。 再厥后,这个剖析器被Zeev Suraski和Andi Gutmans重写,经过此次片面的重写,大批PHP/FI的功效被移植到PHP3中,而且成为了PHP3的基础雏形。     到1998年年中时,曾经有大批的贸易化产物,比方 C2的 StrongHold web server和RedHat Linux绑缚了PHP/FI剖析器或PHP3剖析器,依据NetCraft估量的守旧数据,PHP曾经被天下上150,000个站点所采纳。经过进一步剖析,咱们晓得其应用数目远比应用Netscape公司旗舰产物--企业级WEB效劳器的站点多。 PHP3大批采纳了C, Java和Perl言语的语法,并参加了种种PHP本人的特点。它与javascript等言语的一个差别就是PHP3是在效劳器履行,客户机所看到的是其在效劳器上运转的成果,这象征着您若想采纳PHP3 scrpit,必需得有 WEB SERVER 支撑。     PHP3支撑HTTP的身份认证、cookie、GIF图像创立,它的一个最有代表性的特色是它的数据库层,它使得编写基于数据库的网页变得十分简略。以下出了现在所支撑的数据库:   Oracle ,Sybase , mSQL ,MySQL ,Informix ,Solid dBase ,ODBC, Unix dbm, PostgreSQL ,Adabas D,FilePro Velocis。     PHP3也支撑与采纳POP3、HTTP、SNMP、NNTP、IMAP等协定的效劳停止收集编程。   PHP3的顺序形式       有三种方式从HTML进入"PHP顺序形式":     第一种方式: <?  PHP3语句; ?>          如:   <? echo("this is the simplest, an SGML processing instruction"); ?>           第二种方式:  <?PHP  PHP3语句; ?>     如:   <?php echo("if you want to serve XML documents, do like this"); ?>         第一种方式:  <script language="php">        PHP3语句;     </script>         如:   <script language="php">      echo("some editors (like FrontPage) don't like processing instructions");     </script>      第二章变 量         PHP3支撑上面范例的变量:     (一)、外部变量       重要有整数(interger),浮点数(float-point numbers),字符串(string),数组(array),工具(object)。       1 初始化变量       要在PHP中初始化变量, 你只有简略的给它赋值便可。关于大少数范例,这是最间接的。关于数组和工具,能够应用别的方式。     2 初始化数组       数组能够应用这两种方式之一来赋值: 应用一系列持续数值,或应用array()函数结构 (见 Array functions 局部)。     要将持续的数值加进数组,你只要将要赋值赋给不带下标的数组变量。该值会作为数组的最初元素加进数组中。     例:          $names[] = "Jill"; // $names[0] = "Jill"      $names[] = "Jack"; // $names[1] = "Jack"       与c、perl类似,数组下标也是从0开端。     3 初始化工具     要初始化一个工具,需用new语句树立该范例的变量。        class foo {     function do_foo() {       echo "Doing foo.";        }       }       $bar = new foo;       $bar->do_foo();         4 变量感化域       变量的感化域就是它的无效范畴。关于大少数PHP的变量只要一个感化域。在用户自界说函数里采纳部分变量感化域。函数内应用的变量被缺省设置为部分变量。比方:        $a=1; /* global scope */      Function Test() {      echo $a; /* reference to local scope variable */        }      Test();       这段顺序不会输入任何的货色,由于echo语句要输入部分变量 $a ,而函数内的 $a 从未被赋过值。你能够留神到这和C言语有点小小的差别,C中全局变量能够间接在函数内援用,除非它被一个部分变量所笼罩。而这使得人们能够不留神修正了全局变量的值。在PHP中要在函数外部应用全局变量必需显式的阐明。比方:        $a=1;      $b=2;      Function Sum() {      global $a,$b;      $b = $a + $b;       }      Sum();      echo $b;       下面顺序将输入"3"。经过在函数外部申明$a和$b是全局变量,所要变量都参考全局。一个函数能够把持的全局变量的数目没无限制。     感化域的别的一个值得留神的处所是static 变量。一个 static变量存在于部分函数中,但当顺序分开这个函数时它的值不会丧失。斟酌上面的例子:        Function Test() {      $a=0;      echo $a;      $a++;      }       这个函数是没用的,由于每次挪用时它都先把$a赋为 0 而后打出"0"。 对$a++的自加没有任何后果由于函数挪用停止后变量$a 就被开释了。要使记数顺序无效记数而不丢掉以后的记数成果,$a 要申明为static变量:       Function Test() {     static $a=0;     echo $a;     $a++;     }       当初,每次挪用Test()函数它都市打出$a的值并把增添它的值。       当应用递归函数时动态变量是必弗成少的。递归函数就是挪用本人的函数。写递归函数时必定要非常警惕,由于它的轮回次数不断定。你必需确保有充足的前提停止递归进程。上面是一个简略的递归函数记数到10:       Function Test() {      static $count=0;      $count++;      echo $count;      if($count < 10) {      Test();      }     }         (二) 静态变量       偶然应用可变的变量名比拟便利。就是说,一个可能主动态赋值和应用的变量名。一个一般变量的赋值语句如:       $a = "hello";       一个静态变量援用该变量的值作为一个新变量的名字。在下面例中, hello,能够经过双$用做变量名。例:       $$a = "world";     至此,两个变量被界说并存贮在PHP标记树中: $a 的内容是"hello",$hello 的内容是 "world"。 因而,语句: echo "$a ${$a}"; 的表现成果完整同等于: echo "$a $hello";     (三)PHP内部变量     1、HTML表单(GET和POST)       当一个表单提交给PHP3 script时,PHP会主动失掉表单中的变量。比方:       <form action="foo.php3" method="post">     Name: <input type="text" name="name"><br>     <input type="submit">     </form>       当按下”submit”后,PHP3会主动发生变量:$name,此中包括了用户输出的全部内容。     2、IMAGE SUBMIT 变量名       当提交一个表单时,能够经过上面标志用一副图取代尺度的提交按钮:        <input type=image src="image.gif" name="sub">     当用户点击该图时,两个附加变量sub_x和sub_y就会随同表繁多起送到server上。此中包括了用户在图上点击处的坐标。有教训的人能够留神到扫瞄器现实送出的名字包括一个句号而不是下划线,但PHP主动将句号转换成了下划线。     3、HTTP Cookies       PHP支撑HTTP cookies。Cookies在客户端扫瞄器存储数据,以此和用户坚持联系或考证用户身份。你能够应用setcookie() 函数来设置cookies。 Cookies是HTTP恳求头的一局部,以是必需在任何输入数据前往给用户扫瞄器前挪用SetCookie()函数。它相似于 Header() 函数的限度。任何用户端前往的cookies都将被主动转换为尺度的PHP变量,就象GET和POST方式的数据。       假如要在一个 cookie中设置多个值,要给这个cookie的名字加上 [] ,比方:       SetCookie("MyCookie[]","Testing", time()+3600);       留神:新的cookie将笼罩掉你的扫瞄器中已有的同名cookie,除非它们存在差别的门路或域。     4、情况变量       PHP主动将情况变量转换为一般的变量。       echo $HOME; /* Shows the HOME environment variable, if set. */       只管来自GET,POST 及 Cookie构造的信息也会被主动转化为PHP的变量, 但最好明白的从情况变量中读取它们以确保取得准确的值。为此可应用 getenv() 函数。也能够经过 putenv() 函数设置变量。     变量范例转换     PHP中不须要(也不支撑)在变量界说时做显式的范例申明;一个变量的范例取决于它的值的范例。也就是说,假如你给变量var 赋了一个字符串值,var 就成为字符串变量。假如你又赋了一个整型值给var, 它就酿成了一个整型变量。       一个PHP主动范例转换的例子是加法操纵符 '+'。假如任何一个操纵数是double型,则全部的操纵数按 double范例来盘算, 成果也是double型的。不然,全部的操纵数按integer范例来盘算, 成果也是integer型的。留神:操纵数自身的范例不产生变更;范例变更仅在盘算时做       $foo = "0"; // $foo is a string (ASCII 48)     $foo++; // $foo is the string "1" (ASCII 49)     $foo += 1; // $foo is now an integer (2)     $foo = $foo + 1.3; // $foo is now a double (3.3)     $foo = 5 + "10 Little Piggies"; // $foo is a double (15)     $foo = 5 + "10 Small Pigs"; // $foo is an integer (15)       要转变变量的范例,也可用settype() 函数。     1、强迫范例转换       PHP中的强迫范例转换和C中一样: 在须要停止范例强迫转换的变量前的括号中写出想要的范例名。        $foo = 10; // $foo is an integer      $bar = (double) $foo; // $bar is a double      同意的强迫转换是:     (int), (integer) - cast to integer     (real), (double), (float) - cast to double     (string) - cast to string     (array) - cast to array       (object) - cast to object       留神:括号中能够含有tab或空格,上面的函数将被盘算:       $foo = (int) $bar;     $foo = ( int ) $bar;       2、字符串转换       当字符串作为数值范例盘算时,成果的值和范例按以下方法决议。       假如字符串中包括任何'.', 'e',及'E'字符,则被作为double范例盘算。不然,就作为integer范例盘算。     该值从字符串最开端算起。假如字符串是正当的数字,则应用该值,不然值为 0 。正当的数字是一个标记位(可选),后跟一名或几位数字(也可含有一个十进制的小数点), 后跟一名可选的指数。指数是一个 'e' 或 'E'后跟一个或几个数字。       $foo = 1 + "10.5"; // $foo is a double (11.5)     $foo = 1 + "-1.3e3"; // $foo is a double (-1299)     $foo = 1 + "bob-1.3e3"; // $foo is a double (1)     $foo = 1 + "bob3"; // $foo is an integer (1)     $foo = 1 + "10 Small Pigs"; // $foo is an integer (11)     $foo = 1 + "10 Little Piggies"; // $foo is a double (11); the string contains 'e'     第三章 运算符                上面我分辨看一下PHP3的算术、字符串、逻辑与比拟等运算符。       1、算术运算符       +:  $a + $b 加 $a加上$b     -:  $a - $b 减 $a减去$b     *:  $a * $b 乘 $a乘以$b     /:  $a / $b 除 $a除以$b     %:  $a % $b 取模 $a除以$b的余数       假如两个操纵数都是整型值(字符串将被转换为整型值),除号("/") 前往整型值(整除的值)。假如任一个操纵数是浮点值,则做浮点除法。     2 字符串运算符       字符串操纵符只要字符勾通接符 (".")。         $a = "Hello ";     $b = $a . "World!"; // now $b = "Hello World!"         3、赋值运算符       基础的赋值运算符是 "="。       一个赋值表白式的值就是所赋给的值。比方, 表白式 $a = 3 的值是3。 这同意你如许做一些庞杂的事件:       $a = ($b = 4) + 5; // 当初 $a 即是 9, $b为4 。       除了基础赋值符外,另有"复合运算符"。关于全部的二进制数和字符串,同意你做变量自我复合运算。比方:       =: $a = 3;     +=:$a += 5; // 把$a 设成 8, 也就是: $a = $a + 5;      $b = "Hello ";     . :$b .= "There!"; // 把 $b 设成 "Hello There!", 就象 $b = $b . "There!";         4、 位运算符       位运算同意你对指定的数据置位或复位。         &:与运算,$a & $b 与 $a和$b都被置位则成果被置位     |:或运算,$a | $b 或 $a或$b有一个被置位则成果被置位     ~:非运算,~ $a 非 $a没有被置位则成果被置位         5、 逻辑运算符      and:  $a and $b 与 $a和$b同时为真则成果为真    or :  $a or $b 或 $a或$b有一个为真则成果为真    xor:  $a xor $b 异或 $a和$b差别时为真则成果为真    ! :  ! $a 非 $a为假则成果为真    &&:  $a && $b 与 $a和$b同时为真则成果为真    ||:  $a || $b 或 $a或$b有一个为真则成果为真         比拟两个变量时,"与"和"或"运算有两种运算符这是认为两种运算符有差别的优先级     6、 比拟运算符       比拟运算符,就象名字一样,同意你比拟两个值。       ==: $a == $b 即是 $a即是$b成果为真     !=: $a != $b 不即是 $a不即是$b成果为真     < : $a < $b 小于 $a小于$成果为真     > : $a > $b 大于 $a大于$b成果为真     <=: $a <= $b 小于即是 $a小于或即是$b成果为真     >=: $a >= $b 大于即是 $a大于或即是$b成果为真         第四章表白式              表白式是PHP最主要的构成元素。在PHP 3.0中,简直你所写的任何货色都是表白式。表白式的最简略但准确的界说是"有一个值的任何货色"。      一个简略的例子是常量和变量。当你写 "$a = 5"时, 你给 $a 赋了值 '5' 。 (在这类情形下, '5' 是一个整形常量)。 在此,你是盼望把 $a 赋值成 5。以是写 $b = $a 时,你盼望的成果就是 $b = 5 。即 $a 是一个值为 5 的表白式。       庞杂表白式的简略例子是函数。比方说,斟酌以下函数:        function foo()     {      return 5;     }         假如你以为写$c = foo()现实上和写 $c = 5是一样的,那末你是对的。函数是值为其前往值的表白式。由于foo() 前往5, 以是表白式 'foo()'的值是 5 。       PHP的值固然不限于整形,且平日都不是。PHP支撑三类值的范例: 整形值,浮点值和字符串值。PHP 支撑两种混杂范例(non-scalar): 数组和工具。这两品种型的值能够赋给变量或从函数中前往。       PHP 3是一种面向表白式的言语, 以是简直全部货色都是表白式。斟酌咱们曾经探讨的例子, '$a = 5'。很轻易看出这里有两个值,整形常量 '5'的值,和也被赋为 5 的变量 $a 的值。然而这里现实上另有一个附加的值,就是赋值语句自身的值。赋值语句自身的值就是被赋给的值,本例中是 5. 现实上,它象征着不斟酌 '$a = 5'要做甚么,它是一个值为 5 的表白式。如许,写诸如 '$b = ($a = 5)'的语句,就象 '$a = 5; $b = 5;' (每条语句末端有一个分号)。由于赋值的次序是从右向左的你也能够写成 '$b = $a = 5'。       表白式盘算偏向的另一个好例子是先加、后加及先减、后减。PHP/FI和少数其余言语的用户能够很熟习 variable++ 和 variable--。这是自加和自减操纵。在 PHP/FI 2 中,语句 '$a++' 没有值(它不是表白式), 如许你就既不能赋值给它也不能经过任何方法应用它。PHP 3 把它们酿成了和 C 中一样的表白式从而加强了自加和自减运算的才能。和 C 中相似,PHP 3中也有两品种型的自加----先加和后加。先加和后加的实质都是变量自加,关于变量自身的感化是一样的。差别点是自加表白式的值。形如 '++$variable'的先加, 盘算变量自加后的值(PHP先做变量自加,再读取它的值,也就叫做 '先加').形如'$variable++'的后加, 则先盘算原始变量$variable的值,而后才停止自加 (PHP在读取变量的值后再做自加,因而叫做'后加').       最罕见的表白式是比拟表白式。这类表白式盘算成果是 0 或 1,分辨象征着 FALSE 或是 TRUE。 PHP 支撑 > (大于), >= (大于即是), == (即是), < (小于) 及 <= (小于即是)。这类表白式平日用在前提履行里 , 比方 IF 语句。       在这里咱们最初要探讨的表白式是混杂赋值表白式。你曾经晓得假如要使 $a 加一,你能够简略的写一句 '$a++' 或许 '++$a'。然而假如要增添的值比1大怎样办呢,比方使它加 3 ? 你能够多写几回'$a++' ,但这 明显不是一种高效或使人乐于接收的方法。别的一个平日的方法是写 '$a = $a + 3'。先盘算'$a + 3' 的值,在赋回到 $a, 如许 $a 就加上 3 了。在PHP 3 中,你能够象在其余几种言语(比方 C)一样把它简写,如许更清楚、快洁易懂。 把以后变量 $a 加 3 能够写成 '$a += 3'。这句话的意义是 "掏出 $a 的值, 把它加 3 , 在赋给 $a"。这除了使得语句冗长、清楚,还使它履行的更快。表白式 '$a += 3'的值,和一个严厉的赋值语句一样,是所赋的值。留神:不是 3, 而是 $a 加 3 的值(这才是赋给$a 的)。任何的双操纵符 能够被用于这类赋值操纵形式,比方 '$a -= 5' (变量 $a 减去 5 ), '$b *= 7' ( 变量 $b 乘以 7),等等。       最初值得提到的是表白式的真值。许多时间(重要是在前提履行和轮回时),你并不关怀表白式的特定值 , 而只是留神它代表TRUE 仍是 FALSE (PHP 没有公用的布尔范例)。PHP中应用相似perl的方式盘算表白式的真值。任何非零的值为 TRUE,零为 FALSE 。请必定留神负零的值长短零值,并被视为 TRUE ! 空字符串可 字符串 "0" 为 FALSE; 所其余的字符串为 TRUE 。关于非数目值(数组和工具) - 假如它的值不含任何元素为 FALSE, 不然为 TRUE。       第五章PHP3 言语构造            (一)、操纵构造     1、IF语句       IF语句是少数言语中的一个主要特色,它依据前提履行顺序段。PHP的IF语句相似于 C:       if (expr)       statement         正如在表白式中所阐述, expr 被盘算为它的真值。假如 expr 为TRUE, PHP履行响应语句, 假如为FALSE 则疏忽它。     假如$a 大于 $b,下例将表现 'a is bigger than b':       if ($a > $b)       print "a is bigger than b";         平日,你盼望依据前提履行多于一条语句。固然,不须要给每条语句都加上 IF 推断。取而代之,能够把多条语句构成一个语句组。      If语句能够嵌套于其余 IF语句中,使你可能机动地有前提的履行顺序的各个局部。     2、 ELSE语句       平日你盼望满意特定前提时履行一条语句,不满意前提是履行另一条语句。ELSE就是用来做这个的。ELSE 扩大IF语句,在IF语句表白式为FALSE时履行另一条语句。比方, 上面顺序履行假如 $a 大于 $b则表现 'a is bigger than b',不然表现 'a is NOT bigger than b':       if ($a>$b) {     print "a is bigger than b";      }     else {     print "a is NOT bigger than b";      }          3、 ELSEIF语句       ELSEIF,就象名字所示,是IF和ELSE的组合,相似于 ELSE,它扩大 IF 语句在IF表白式为 FALSE时履行其余的语句。但与ELSE差别,它只在ELSEIF表白式也为TRUE时履行其余语句。       能够在一条IF语句中应用多条ELSEIF语句。第一个ELSEIF表白式为TRUE的语句将被履行。在PHP 3中,你也能够写成'else if' (写成两个单词)和 'elseif' (写成一个单词)后果一样。这只是写法上的渺小差异(假如你熟习 C,它也是),成果是完整一样的。       ELSEIF语句仅在IF表白式和任何后面的ELSEIF表白式都为FALSE,且以后ELSEIF表白式为TRUE时履行。     上面是一个含有ELSEIF和ELSE的嵌套格局的IF语句:       if ($a==5):      print "a equals 5";      print "...";     elseif ($a==6):     print "a equals 6";     print "!!!";      else:     print "a is neither 5 nor 6";     endif;               4、 WHILE语句       WHILE轮回是PHP 3的一种简略的轮回。象在 C 中一样。WHILE语句的基础格局是:       WHILE(expr) statement       WHILE语句的意义十分简略。它告知PHP只有WHILE表白式为TRUE就反复履行嵌套的语句。每次轮回开端时检讨WHILE表白式的值,以是即便在嵌套语句内转变了它的值,本次履行也不会停止,而直到轮回停止(每次PHP运转嵌套的语句称为一次轮回)。相似于IF语句,你能够用大括号把一组语句括起来,在统一个WHILE轮回中履行多条语句:        WHILE(expr): statement ... ENDWHILE;       上面例子完整雷同, 都打出数字 1 到 10:           /* example 1 */      $i=1;      while ($i<=10) {      print $i++; /* the printed value would be $i before the increment (post-          increment) */     }       /* example 2 */      $i=1;      while ($i<=10):      print $i;      $i++;      endwhile;         5、DO..WHILE语句       DO..WHILE 十分相似于 WHILE 轮回, 只是它在每次轮回停止时检讨表白式能否为真,而不是在轮回开端时。 它和严厉的WHILE轮回的重要差别是DO..WHILE的第一次轮回确定要履行(真值表白式仅在轮回停止时光检讨), 而不用履行严厉的WHILE轮回(每次轮回开端时就检讨真值表白式, 假如在开端时就为FALSE, 轮回会马上停止履行).       DO..WHILE轮回只要一种情势:       $i = 0;     do {      print $i;     } while ($i>0);       下面轮回只履行一次, 由于第一次轮回后,当检讨真值表白式时, 它算进去是 FALSE ($i 不大于 0)轮回履行停止。       6、 FOR轮回语句       FOR轮回是PHP中最庞杂的轮回。象在 C 中一样。 FOR轮回的语法是:       FOR (expr1; expr2; expr3) statement       第一个表白式(expr1)在轮回开端时无前提的盘算(履行)。     每一次轮回, 表白式 expr2 都被盘算。假如成果为 TRUE, 则轮回和嵌套的语句持续履行。假如成果为 FALSE,则全部轮回结 束。      每次轮回停止时, expr3 被盘算(履行). 每一个表白式都可为空。expr2 为空则轮回的次数不定(PHP 默许它为TRUE,象C一样)。除非你要经过一个前提的 BREAK语句取代FOR 的真值表白式来停止轮回,不然不要如许。     斟酌上面例子。它们都表现数字 1 到 10:        /* example 1 */      for ($i=1; $i<=10; $i++) {     print $i;      }        /* example 2 */      for ($i = 1;;$i++) {      if ($i > 10) {      break;      }      print $i;     }       /* example 3 */     $i = 1;     for (;;) {     if ($i > 10) {       break;      }     print $i;     $i++;      }         固然,第一个例子明显是最好的,但借此你能够发觉在FOR 轮回中许多场所能够应用空的表白式。     其余的言语有一条foreach语句用来遍历一个数组或哈希(hash)表。PHP应用while语句和 list()、each() 函数来到达这个功效。       7、 SWITCH抉择语句       SWITCH语句就象是对统一个表白式的一系列IF语句。在许多时侯,你想把统一个变量(或许表白式)和很多差别的值去比拟 ,并依据差别的比拟成果履行差别的顺序段。这就是 SWITCH语句的用途了。       上面两个例子经过差别的方式做统一件事,一个用一组 IF语句,别的一个用 SWITCH 语句:       /* example 1 */      if ($i == 0) {     print "i equals 0";       }      if ($i == 1) {     print "i equals 1";     }      if ($i == 2) {     print "i equals 2";      }       /* example 2 */      switch ($i) {      case 0:     print "i equals 0";     break;      case 1:     print "i equals 1";     break;      case 2:     print "i equals 2";     break;      }         (二)、REQUIRE语句       REQUIRE语句用指定的文件取代本人,很象 C 中的预处置 #include 。     这象征着你不能为了每次挪用该函数来包括差别文件的内容,而把require()语句放在一个轮回构造,。要这么做,应用 INCLUDE 语句。       require('header.inc');     (三)、 INCLUDE语句       INCLUDE语句包括指定的文件。     每次碰到INCLUDE是INCLUDE语句就包括指定的文件。以是你能够在一个轮回构造中应用INCLUDE语句以包括一系列差别的文件。       $files = array('first.inc', 'second.inc', 'third.inc');     for ($i = 0; $i < count($files); $i++) {       include($files[$i]);      }       (四)、 函数       能够经过以下的语法界说函数:        function foo( $arg_1, $arg_2, ..., $arg_n ) {      echo "Example function.";      return $retval;      }       函数中能够应用任何无效的PHP3 代码,乃至是其余的函数或类 的界说      1、 函数前往值       函数能够经过可选的return语句前往值。前往值能够是任何范例,包含列表和工具。       function my_sqrt( $num ) {      return $num * $num;      }     echo my_sqrt( 4 ); // outputs '16'.         函数不能同时前往多个值,但能够经过前往列表的方式来完成:           function foo() {      return array( 0, 1, 2 );      }     list( $zero, $one, $two ) = foo();       2、 参数       内部信息能够经过参数表来传入函数中;参数表就是一系列逗号分开的变量和/或常量。     PHP3支撑经过值形参数(默许), 变量参数,和 默许参数。不支撑变长参数表, 但能够用传递数组的方式来完成。     3、 关系参数       默许情形函数参数是传值方法。假如你同意函数修正传入参数的值,你能够应用变量参数。     假如你盼望函数的一个情势参数一直是变量参数,你能够在函数界说时给该情势参数加(&)前缀:       function foo( &$bar ) {     $bar .= ' and something extra.';      }     $str = 'This is a string, ';     foo( $str );     echo $str; // outputs 'This is a string, and something extra.'         假如要通报一个可变参数给默许的函数(其情势参数不是变参方法),你能够在挪用函数时给现实参数加(&)前缀:       function foo( $bar ) {     $bar .= ' and something extra.';      }     $str = 'This is a string, ';     foo( $str );     echo $str; // outputs 'This is a string, '     foo( &$str );     echo $str; // outputs 'This is a string, and something extra.'       4、 默许值       函数能够界说 C++ 作风的默许值,以下:       function makecoffee( $type = "cappucino" ) {     echo "Making a cup of $type.";      }     echo makecoffee();     echo makecoffee( "espresso" );         上边这段代码的输入是:       Making a cup of cappucino.     Making a cup of espresso.     留神,当应用默许参数时,全部有默许值的参数应在无默许值的参数的后边界说;不然,将不会按所想的那样任务。         5、CLASS(类)     类是一系列变量和函数的聚集。类用以下语法界说:        <?php     class Cart {     var $items; // Items in our shopping cart     // Add $num articles of $artnr to the cart     function add_item($artnr, $num) {     $this->items[$artnr] += $num;      }     // Take $num articles of $artnr out of the cart     function remove_item($artnr, $num) {     if ($this->items[$artnr] > $num) {     $this->items[$artnr] -= $num;     return true;      } else {        return false;       }      }      }     ?>       下面界说了一个叫Cart 的类,此中包含一个关系数组和两个用来从cart中增添和删除名目的函数。     类是现实变量的原始模子。你要经过new 操纵符来树立一个所需范例的变量。        $cart = new Cart;      $cart->add_item("10", 1);       这树立起一个 Cart类的工具$cart。该工具的函数add_item()被挪用来给第10项加 1。       类能够从其余的类裁减失掉。裁减或派生进去的类领有基类的全部变量和函数及你在裁减界说中所界说的货色。这要应用 extends 要害字。       class Named_Cart extends Cart {     var $owner;     function set_owner($name) {     $this->owner = $name;      }      }       这里界说了一个名为 Named_Cart 的类它继续了 Cart类全部变量和函数并增添了一个变量 $owner和一个函数 set_owner()。 你树立的 named_cart 类的变量当初就能设置carts 的 owner了。在named_cart变量中你依然能够应用个别的 cart函数:      $ncart = new Named_Cart; // Create a named cart    $ncart->set_owner("kris"); // Name that cart    print $ncart->owner; // print the cart owners name    $ncart->add_item("10", 1); // (inherited functionality from cart)       函数中的变量 $this 意义是以后的工具。你须要应用 $this->something 的情势来存取全部以后工具的变量或函数。     类中的结构器是你树立某品种的新变量时主动被挪用的函数。类中和类名一样的函数就是结构器。       class Auto_Cart extends Cart {      function Auto_Cart() {      $this->add_item("10", 1);       }       }       这里界说一个类 Auto_Cart ,它给 Cart类加了一个每次new操纵时设置名目10停止变量初始化的结构器。结构器也能够有参数,这些参数是可选的,这类特色也使得其非常有效。       class Constructor_Cart {      function Constructor_Cart($item = "10", $num = 1) {      $this->add_item($item, $num);     }      }        // Shop the same old boring stuff.     $default_cart = new Constructor_Cart;     // Shop for real...     $different_cart = new Constructor_Cart("20", 17);

上一篇:php保存远程图片-网络编程

下一篇:没有了