边记边学PHP-(八)函数及include与require引用文件

来源:互联网 发布:java模拟浏览器 编辑:程序博客网 时间:2024/06/07 03:22

         作为PHP的基础,大概还有四个大的部分,一个是函数,一个是数组,一个是字符串,一个是面向对象也就是类。本来想通过一篇就可以搞定,但是我想了一下,还是分开吧,一些东西需要注意细节。分开可能说的详细一点。

         每种语言都会涉及函数,PHP当然也会有。使用函数可以减少相同的代码,提高效率。

1.函数的命名规则:

①一般采用大小写混合,第一个单词的首字母小写,后面单词的首字母大写。如:function run();function runFast();function getBackGround();

②函数的参数没有限制,0到多个都可以

③PHP作为一种弱语言类型,对于函数的名称不区分大小写,也就是说name()与NAME()是同一个函数,所以在一个文件里不要用大小写区分两个函数,否则会出错。

④名称的开头不能使用数字或者其他符号。必须是英文字母或者下划线。一般功能函数使用下划线开头。

⑤不能使用关键字定义函数

⑥如果是要获取一个值,往往这样定义:functionset……();如果设置一个值往往这样定义:function set……();

2.函数格式:

function function_name([$arg1],[$arg2],···){

         函数主体,功能实现

    [return$argn;]

}

说明一点:[]这里面的代表可以省略。在PHP参考手册里同样是如此。如果一个函数的参数被包含在中括号里面,说明这个参数可以省略。

第一个function是定义函数时必须使用的参数,表示声明一个函数。里面的$arg1···都是可以定义或者不定义的参数。函数可以有返回值也可以没有返回值。

函数调用就是用函数名调用,有参数的需要传参。有返回值的可以根据需要进行使用,比如根据返回值作为判断语句的判断条件,也可以输出返回值等等。

3.传递参数

参数传递有两种方式,第一种是按值传递,第二种是引用传递,也就是地址传递。我举一个例子:

(按值传递)

<?php

function example($num){

         $num+= 1;

         echo$num;

}

$num = 1;

example($num);

echo ‘函数外的$num:’.$num;

?>

在example这个函数里面输出的num 是2.但是在函数外面的num还是1.也就是说当按值传递的时候,他只是在函数的内部改变了传进来的变量的值,但是函数外部原来变量的值还是没有改变的,虽然你定义的变量名与函数的参数名一样。

(引用(地址)传递)

<?php

function example(&$num){

         $num+= 1;

         echo$num;

}

$num = 1;

example($num);

echo ‘函数外的$num:’.$num;

?>

引用传递就是在参数的前面加了一个取地址符&。这样输出的结果就是两个都是2。也就是说传进去的就是变量的存储地址。每个变量占用一个地址,如果这个地址上的值改变,那么这个值就改变了。就是这个意思。这点需要注意。

4.默认参数

如果你在定义函数的时候在参数列表定义的某一个参数给它了值,那么这个参数就是默认参数,也叫可选参数,尽管定义了这个参数,在使用的时候还是可以不用写的,如果不写它就用你给它的值。

5.其他

在函数内部可以再次定义函数,也就是嵌套定义。在函数内部定义的函数,只能在本函数内部使用,我是这么理解的。PHP函数也可以像其他语言一样递归调用函数。这个我就不说了,我最烦的就是递归,一会就能把我递归晕了。

6.内建函数

PHP提供了一些内建函数,也就是已经定义好的。现在在我看来用的最多的就是一些字符串函数和文件函数,真的是很棒。这个可以看手册,当然还有很多。

7.输出语句

echo我就不多说了,我一般就是用这个。

当然还可以用print , printf,sprintf如果有兴趣的可以自己查一下。我基本没有用过。

在数组介绍的时候还有两个输出函数一个是print_r(),一个是var_dump()这两个数组再讲。

 

接下来就是这篇最重要的require和include 了。

首先知道,这两个函数都是引用文件函数,引用外部的PHP文件。主要有四个语句,require,require_once,include,include_once。这四个语句。

他们四个都是这种形式:void 函数名(sting filename)

参数都是文件的路径。但调用他们的时候可以加括号也可以不加。

在使用他们的部分PHP都会将他们代表的代码替换到他们的位置。比如上一篇,我用了一个<frameset></frameset>这个标签,把界面分了三部分。同样你可以使用表格将界面分割,在表格内部使用这些引用函数引用。比如:

<table>

<tr>

<td><?php include(“top.php”);?></td>

</tr>

<tr>

<td><?php include(“bottom.php”);?></td>

</tr>

</table>

这样就把界面分成了两部分,上面一部分引用top.php,下面一部分引用bottom.php。当然这里我没有设计上下两部分的比例,可以通过表格的一些属性进行设计。我只是说明用法。同样其他三种引用函数也可以这样做。

再就是他们还有更大的用处,比如说有些函数在整个工程里的各个文件都需要用到,那么你可以把这些函数单独写在一个PHP文件里,然后在其他文件里引用这些文件,从而减少整个文件的工作量,比如:

我在phpHelper.php里面定义了一些常用的函数,在其他文件里需要用,那么我在其他文件的开头只要引用这个文件就好了。这里面的函数我就可以再这个php文件里用了。我会这么引用:

<?php

include ‘phpHelper.php’;   //这里也可是其他三种函数

 

//在这后面的代码里就可以引用引用文件的函数了。

?>

特别是以后用到数据库连接数据库操作,如果每个界面都要写一次,未免太麻烦了。

那么问题来了,这四个函数有什么区别吗?

①inlcude与include_once(require与require_once)的区别:

带有once 的函数是没有带once函数的加强,或者延伸。带有once的函数在引用文件的时候会先检查一下在这个php文件里你要引用的文件是不是已经被引用过了,如果已经引用过了,它不会再引用第二次。在include_once里,如果重复引用了文件,那么程序运行到此处的时候就会发生错误,因为一些东西你重复定义了。如果是require_once重复引用了文件,它只会执行第一个,第二个文件不会执行。

②include与require(include_once与require_once的区别):

第一:使用include调用时如果没有找到要引用的文件,那么程序会发出警告,但是不会终止脚本进行(php语言可以看成脚本语言,因为只是处理后台程序),但是如果是require引用没有找到要引用的文件,那么将会直接报错,终止运行。

第二:使用require调用文件的时候,只要程序开始执行,不管这句引用在哪,那么引用的文件会立刻把这句话替换掉,换成引用的文件。但是include调用文件时,只有程序执行到该句时程序才会把这句话替换。

另外:include_once和require_once都是确保外部文件在同一个php文件里只能被包含一次,使用这两个可以有效防止包含相同的函数库从而导致函数重复定义发生错误。只是require_once发生错误时是一个致命错误而include_once发生错误时只会发出警告。

 

所以建议使用require_once来保证程序的正确性。

 

 

今天两节课,所以现在才更新。在刚刚发布的语言收入排行榜上,php没有进前12,我现在有点迷茫,不知道要不要继续学下去。是不是应该尽早的学一下Java,不管是应用度还是收入上Java都是不错的语言。但是还是先好好学吧,等我再冲动一次的时候再学Java。

 

最近这几篇都没什么意思啊,几乎都是理论,还没有做点什么。

等这几个基础都说完了,数据库编程应该就很有意思了。

 

坚持!坚持!再坚持!

0 0
原创粉丝点击