PHP教程第十讲Word文档下载推荐.docx
- 文档编号:16505987
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:7
- 大小:17.13KB
PHP教程第十讲Word文档下载推荐.docx
《PHP教程第十讲Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《PHP教程第十讲Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
除非是下面两个例子中的情况,函数必须在其调用之前定义。
Example2条件函数:
$makefoo=true;
/*我们不能在处调用foo()函数,
因为它还不存在,但可以调用bar()函数。
*/
bar();
if($makefoo){
functionfoo()
{
Idon'
texistuntilprogramexecutionreachesme.\n"
}
/*现在我们可以安全调用函数foo()了,
因为$makefoo值为真*/
if($makefoo)foo();
functionbar()
Iexistimmediatelyuponprogramstart.\n"
Example3函数中的函数:
functionfoo()
functionbar()
texistuntilfoo()iscalled.\n"
/*现在还不能调用bar()函数,因为它还不存在*/
foo();
/*现在可以调用bar()函数了,因为foo()函数
的执行使得bar()函数变为已定义的函数*/
PHP中的所有函数和类都具有全局作用域,可以在内部定义外部调用,反之亦然。
PHP不支持函数重载,也不可能取消定义或者重定义已声明的函数。
Note:
函数名是大小写无关的,不过在调用函数的时候,通常使用其在定义时相同的形式。
Example4递归函数:
functionrecursion($a)
if($a<
20){
$a\n"
recursion($a+1);
二、函数的参数
通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表。
PHP支持按值传递参数(默认),通过引用传递参数以及默认参数。
也支持可变数量的参数;
Example1向函数传递数组:
functiontakes_array($input)
$input[0]+$input[1]="
$input[0]+$input[1];
1.通过引用传递参数
缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)。
如果希望允许函数修改它的参数值,必须通过引用传递参数。
如果想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面预先加上符号&
:
Example2用引用传递函数参数:
functionadd_some_extra(&
$string)
$string.='
andsomethingextra.'
$str='
Thisisastring,'
add_some_extra($str);
echo$str;
//outputs'
Thisisastring,andsomethingextra.'
2.默认参数的值
函数可以定义C++风格的标量参数默认值,如下:
Example3在函数中使用默认参数:
functionmakecoffee($type="
cappuccino"
)
return"
Makingacupof$type.\n"
echomakecoffee();
echomakecoffee(null);
echomakecoffee("
espresso"
);
以上例程会输出:
Makingacupofcappuccino.
Makingacupof.
Makingacupofespresso.
三、返回值
值通过使用可选的返回语句返回。
可以返回包括数组和对象的任意类型。
返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。
Example1return的使用:
functionsquare($num)
return$num*$num;
echosquare(4);
16'
.
函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
Example2返回一个数组以得到多个返回值:
functionsmall_numbers()
returnarray(0,1,2);
list($zero,$one,$two)=small_numbers();
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符&
:
Example3从函数返回一个引用
function&
returns_reference()
return$someref;
$newref=&
returns_reference();
四、可变函数
PHP支持可变函数的概念。
这意味着如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数,并且尝试执行它。
可变函数可以用来实现包括回调函数,函数表在内的一些用途。
变量函数不能用于语言结构,例如echo,print,unset(),isset(),empty(),include,require以及类似的语句。
需要使用自己的包装函数来将这些结构用作变量函数。
Example1可变函数示例:
functionfoo(){
Infoo()<
br/>
\n"
functionbar($arg='
'
){
Inbar();
argumentwas'
$arg'
.<
//使用echo的包装函数
functionechoit($string)
echo$string;
$func='
foo'
$func();
//Thiscallsfoo()
bar'
$func('
test'
//Thiscallsbar()
echoit'
//Thiscallsechoit()
还可以利用可变函数的特性来调用一个对象的方法。
Example2可变方法范例:
classFoo
functionVariable()
$name='
Bar'
$this->
$name();
//ThiscallstheBar()method
functionBar()
ThisisBar"
$foo=newFoo();
$funcname="
Variable"
$foo->
$funcname();
//Thiscalls$foo->
Variable()
五、匿名函数
Example1Anonymousfunction示例
echopreg_replace_callback('
~-([a-z])~'
function($match){
returnstrtoupper($match[1]);
},'
hello-world'
//输出helloWorld
闭包函数也可以作为变量的值来使用。
PHP会自动把表达式转换成内置类Closure的对象实例。
把一个closure对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号。
Example2匿名函数变量赋值示例:
$greet=function($name)
printf("
Hello%s\r\n"
$name);
};
$greet('
World'
PHP'
六、小结
本节讲了PHP的函数,可以使用function关键字定义,PHP中还支持可变函数、引用函数和匿名函数。
七、练习
掌握返回引用的函数和返回值的函数的区别。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 教程 第十