分类频道: 站务文件 | 茶眼观色 | 茗柯香机 | 软件下载 | 北冥天池 | 国茶文化 | 专栏作家 |
 
  当前位置:文章首页>>北冥天池>>电脑频道>>正文
 
PHP的程序模式(1)
来源:      作者:
责任编辑:苏箫  时间:2005-07-29

 

PHP的程序模式

  有三种方法从HTML进入"PHP程序模式":

  第一种方法: <?  PHP3语句; ?>
  

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

  第二种方法:  <?PHP  PHP3语句; ?>

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

  第一种方法:  <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() 函数设置变量。


  共3页: 1 [2] [3] 下一页   

 
   
  • 除站方文档外,本站选用文章均来自®茶网或者其它相关网站,文章内容反映作者本人观点,并不代表三醉立场;
  • ® 保留本文在本站的所有最终权利,转载务必注明原作者与三醉斋字样;
  • 文章本身的任何意见、评述,请往®茗柯香机茶论坛表述。
相关文章
VBB2x几个小HACK...
PHP的日期实践函数date()...
网站规划...
Linux命令--重定向与管道...
Linux命令——文件改名、移动...
Linux命令——文件复制...
推荐文章
Apache服务器配置全攻略...
怎么让多个域名指向到一个ip下的...
查找文章
查 找:
范 围:
搜 索
国茶导播 文化点承