后端开发|php教程
php,详解,实例,定义,语法,函数
后端开发-php教程
函数是完成一个特定功能的代码集合,可以分为系统函数和用户函数。用户可以通过创建自定义函数实现特定需要。
winform 消息传递 源码,vscode欢迎界面,ubuntu nm,git发布tomcat,sqlite初始化数据,ecshop 淘宝采集插件,前端三大框架没必要用,如何将爬虫请求伪装,apache开启php,平潭企业seo技术,彩票直播开奖网站源码,易语言 超文本浏览器显示网页源码,中国的动画网站模板lzw
1.函数定义语法结构:
android 优秀源码,vscode 配置 详解,ubuntu srs,tomcat摘要认证,官网下载sqlite教程,飞秋应用插件,大众cc前端框架99b,爬虫提取评论关键字,php 弹出下载,seo通过什么考核,手机app模板免费网站,html5网页效果,大字广告模板lzw
PHP中允许用户使用function关键字创建一个自定义函数。语法结构:
function 函数名称(参数1, 参数2, …)
{
//函数内的代码
}
PHP对函数名称的限制比较少,可以是以字母或下划线开头后跟字母、下划线或数字的任何字符串,而且不区分大小写。括号内是函数的参数,多个参数间用逗号分隔,没有参数时括号也不能省略。大括号内是函数体,在函数体内使用return语句可以指定函数的返回值。示例:
php印刷在线系统源码,Ubuntu支持哪些系统,爬虫项目描述总结,emacs php开发,seo邮件回复lzw
function format_Html($text){$text=””; //应用加粗、斜体和粗体标记 echo $text; //输出格式化后的字符串 }
2.使用函数:
用户函数创建之后,便可以像系统函数一样使用,即通过指定函数名称来调用。如果该函数需要参数,需要在小括号内指定参数的值,注意参数的类型应与定义时一致。
在调用用户自定义函数时,必须确保之前函数已经存在,即函数应先定义再调用。示例:
3.函数返回值:
有时需要在程序外部使用函数执行的结果,这时就需要在函数内使用return语句指定一个返回值。使用return语句可以为函数返回任何类型的数据。示例:
4.函数参数传递方式:
PHP支持的参数传递方式有:按值传递、按索引传递、默认值传递和可变参数列表传递。
1)按值传递:
按值传递是PHP默认的参数传递方式。这种传递方式将为函数外部变量的值创建一个副本,然后赋给函数内部的局部变量。在函数处理完成后,该外部变量的值不发生改变,除非在函数内部声明该外部变量作用域为全局。示例:
<?php function PassByValue($number, $str){ //按值传递参数 $number+=100; //第一个参数增加100 $str.=” World”; //第二个参数附加World字符串 echo “函数内\$number=”,$number, “, \$str”, $str, “
”; //输出参数 } $number=3; //创建一个整数作为第一个参数 $str=”hello”; //创建一个字符串作为第二个参数 PassByValue($number, $str); //调用 echo “函数外\$number=”,$number, “, \$str”, $str, “
”; //输出调用两个参数的值 ?>
输出结果为:
函数内$number=103, $str=hello World
函数外$number=3, $str=hello
可见,PHP按值传递参数,在函数范围内对这些值的任何改变在函数外部都会被忽略。
2)按引用传递:
在按引用传递参数方式下,实参的内存地址被传递到形参中,在函数内部对形参的任何修改都会影响到实参,因为它们被存储到同一个内存地址。函数返回后,实参的值将会发生改变。引用传递参数的形参和实参都是针对同一个块地址修改。如果希望一个函数参数通过引用被传递,需要在函数定义的参数名前添加符号&来实现。示例:
<?php function PassByValue(&$number, &$str){ //按引用传递参数 $number+=100; //第一个参数增加100 $str.=” World”; //第二个参数附加World字符串 echo “函数内\$number=”,$number, “, \$str”, $str, “
”; //输出参数 } $number=3; //创建一个整数作为第一个参数 $str=”hello”; //创建一个字符串作为第二个参数 PassByValue($number, $str); //调用 echo “函数外\$number=”,$number, “, \$str”, $str, “
”; //输出调用两个参数的值 ?>
输出结果为:
函数内$number=103, $str=hello World
函数内$number=103, $str=hello World
可见,使用通过引用传递参数的方式时,在函数内对这些值的任何改变,在函数之外也能反映出这些修改。
3)默认值传递:
除了按值传递参数和按引用传递参数的方式外,一个函数还可以使用预先定义好的默认参数。在未指定参数的情况下,函数使用默认值作为函数的参数;在提供了参数的情况下,函数使用指定的参数。示例:
<?php function setFontColor($str, $color=”red”){ //创建带默认值的参数 echo “”;} setFontColor(“教学”); //使用参数的默认值 setFontColor(“热门商品”, “black”); //修改参数的默认值 ?>
可见,调用函数时,可以传递两个参数,也可以传递一个参数。如果只传递一个参数,则第二个参数使用创建函数时定义的默认值。
在使用PHP的默认参数时需要注意,默认值必须是常量表达式,不能是变量。如果函数有多个参数,可以为多个参数指定默认值。但是,带默认值的参数只能位于参数列表的最后,即一个默认值参数的右边不能出现没有指定默认值的参数。
4)可变参数列表传递:
即参数的数量是不确定的。这种方式需要借助3个特殊的函数获取传入的参数,如下表。
func_num_args() func_num_args(void)返回自定义的函数中传入的参数个数
func_get_arg() func_get_arg($arg_num)取得第$arg_num+1个参数的值
func_get_args()func_get_args(void)返回一个包含所有参数的数组
示例:创建一个函数实现对调用时传递的任意数量的数字进行排序并输出
创建函数时没有参数,在函数内使用func_num_args()函数获得实际调用时参数的数量并保存到变量中,使用func_get_args()函数获得所有传递的参数,并以数组形式保存到变量中。
5.递归函数:
递归函数,是指在一个函数的函数体内调用函数本身。在递归函数中,主调函数又是被调函数,递归函数反复调用其自身,每调用一次进入新的一层。示例:
递归函数只需要少量的程序即可描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。但是,必须为递归函数设置停止条件,否则会造成死循环。
6.嵌套函数:
嵌套函数是指在一个函数体中又同时定义一个函数,两个函数形成嵌套关系。此时只有外部函数被调用后,内部函数才能使用。示例:
上述代码定义了3个函数,start()是外部函数,其中包含了boot()和welcome()两个函数。因此,为了使用boot()和welcome()函数,必须先调用start()函数,否则将提示函数未定义。
7.判断函数是否存在:
开发大型项目时通常是多人协作,这时就要避免自定义函数名称存在的情况。PHP中可以使用function_exists()函数判断指定的用户函数是否已经存在。示例:
还可以使用create_function()函数创建一个临时函数,这个函数名称由PHP动态生成,从而避免名称相同的情况。示例: