转载请标明出处:
http://blog.csdn.net/hai_qing_xu_kong/article/details/50968247
本文出自:【顾林海的博客】

前言

大清早没什么事做,距离上班时间还早,就先把PHP的笔记做下吧,之前报了驾校,就练了几次车,马上要科目二了,感觉危险啊00。

函数

在开发过程中,经常要重复做某种操作,如数据查询、字符操作等,如果每个模块的操纵都要重新输入一次代码,不仅程序员头痛,而且对于后期维护有较大的影响。使用PHP函数即可解决这些问题。

定义和调用函数

函数,就是将一些重复使用的功能写在一个独立的代码块中,在需要时单独调用。创建函数的基本语法格式为:

function fun_name($str1,$str2...$strn){fun_body;
}
  • function:为声明自定义函数时必须使用到的关键字
  • fun_name:为自定义函数的名称。
  • str1...str1...strn:为函数的参数。
  • fun_body:为自定义函数的主体,是功能实现部分。

当函数被定义好后,所要做的就是调用这个函数,调用函数的操纵十分简单,只需要引用函数名并赋予正确的参数即可。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title></head>
<body><?phpheader("Content-Type:text/html;   charset=gb2312");function example($num){return "$num * $num =".$num*$num;}echo example(10);
?></body>
</html>

输出结果为: 10 * 10 =100

在函数间传递参数

在调用函数时,需要向函数传递参数,被传入的参数称为实参,而函数定义时的参数为形参。函数间参数传递的方式有按值传递、按引用传递和默认参数3种方式。

按值传递方式

将实参的值赋值到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title></head>
<body><?php
header("Content-Type:text/html; charset=gb2312");
function example($num){$num=$num*2+2;echo "\$num=".$num."<p>";
}
$num=1;
example($num);
echo "\$num=$num"?></body>
</html>

输出结果:

$num=4

$num=1

按引用传递方式

按引用传递就是将实参的内存地址传递给形参。这时,在函数内部所有对形参的操作都会影响到实参的值。函数返回后,实参的值会发生变化。引用传递方式就是函数定义时在形参前加“&”符号。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title></head>
<body><?php
header("Content-Type:text/html; charset=gb2312");
function example(&$num){$num=$num*2+2;echo"函数内:\$num=".$num;
}
$num=1;
example($num);
echo"<p>函数外:\$num=$num";?></body>
</html>

运行结果:

函数内:$num=4

函数外:$num=4

默认参数(可选参数)

可选参数,可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并且指定其默认值为空。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title></head>
<body><?php
header("Content-Type:text/html; charset=gb2312");
function values($price,$tax=""){$price=$price+($price*$tax);echo"价格:$price<br>";
}
values(100,0.25);
values(100);
?></body>
</html>

运行结果:
价格:125
价格:100

从函数中返回值

通常,函数将返回值传递给调用者的方式使用关键字return或return()函数。return的作用是将函数的值返回给函数的调用者,即将程序控制权返回到调用者的作用域。如果在全局作用域使用return关键字,那么将终止脚本的执行。

变量函数

PHP支持变量函数,下面通过一个实例介绍变量函数的具体应用。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title></head>
<body><?php header("Content-Type:text/html; charset=gb2312"); function come(){ echo"来了<p>"; } function go($name="jack"){ echo"$name 走了<p>"; } function back($string){ echo"又回来了 ,$string<p>"; } $func="come"; $func();//使用变量函数来调用函数come() $func="go"; $func("Bill"); $func="back"; $func("Tom"); ?></body>
</html>

运行结果:
来了
Bill 走了
又回来了 ,Tom

可以看到,变量函数的调用时通过改变变量名来实现的,通过在变量名后面加上一对小括号,PHP将自动寻找与变量名相同的函数,并且执行它。如果找不到对应的函数,系统就会报错。这个技术可用于实现回调函数和函数表等。

对函数的引用

函数间参数传递中的按引用传递的方式可以修改实参的内容。引用不仅可用于普通变量、函数参数,也可作用于函数本身。对函数引用,就是对函数返回结果的引用。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title></head>
<body><?php header("Content-Type:text/html; charset=gb2312"); function &example($tmp=0){ return $tmp; } $str=&example("examp"); echo $str."<p>"; ?></body>
</html>

运行结果:
examp

注意:和参数引用传递不同,对函数的引用必须在两个地方都使用“&”符,用来说明返回的是一个引用。

取消引用

当不在需要引用时,可以取消引用使用unset()函数,它只是断开了变量名和变量内容之间的绑定,而不是销毁变量内容。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title></head>
<body><?php header("Content-Type:text/html; charset=gb2312"); $num=1234;//声明一个整型变量 $math=&$num;//声明一个对变量$num的引用$math echo "\$math is:".$math."<br>";//输出引用$math unset($math);//取消引用$math echo "\$math is:".$math."<br>";//再次输出引用 echo "\$num is:".$num;//输出原变量 ?></body>
</html>

运行结果:

$math is:1234

$math is:

$num is:1234

PHP学习笔记-PHP语言基础3相关推荐

  1. PHP学习笔记-PHP语言基础2

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/50959797 本文出自:[顾林海的博客] 前言 这几天因为公司的变动, ...

  2. rust学习笔记-rust语言基础

    rust语言基础 rust语言的优点 c/c++ 性能好,但是类型系统和内存都不太安全. java/c#, 有GC,内存安全有很多优秀的特性,但性能不行. Rust:安全,无需GC,易于维护 rust ...

  3. PHP学习笔记-PHP语言基础1

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/50951976 本文出自:[顾林海的博客] 前言 "合抱之木, ...

  4. MySQL学习笔记_8_SQL语言基础复习

    SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...

  5. 学习笔记3-C语言-基础

    C语言简介 发展史:BCPL -> new B -> C -> Minix -> Linux -> gcc C语言诞生: 1970年~1973年,在肯.汤姆逊和丹尼斯.里 ...

  6. nltk和python的关系_NLTK学习笔记(一):语言处理和Python

    目录 nltk资料下载 import nltk nltk.download() 其中,download() 参数默认是all,可以在脚本里面加上nltk.download(需要的资料库) 来进行下载 ...

  7. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  8. 菜鸟学习笔记:Java基础篇6(数组、字符串)

    菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...

  9. 菜鸟学习笔记:Java基础篇3(面向对象思想、程序执行过程内存分析、面向对象重要概念)

    菜鸟学习笔记:Java面向对象篇上 Java面向对象的思想 Java程序执行过程内存分析 Java垃圾回收机制 构造方法 方法重载(overload) static关键字 this关键字 Java面向 ...

最新文章

  1. 关卡设计快速入门_6. 执行构建过程
  2. linux 错误 ttyname failed: Inappropriate ioctl for device 解决方法
  3. 深入理解XGBoost:分布式实现
  4. Elementui select 设置点击事件,在Change事件前触发
  5. JavaMVC之JSON
  6. 大数据杀熟,是真的吗?
  7. Ubuntu 16.04 - 64bit 解压 rar 报错 Parsing Filters not supported
  8. 如何使用Mac的屏幕时间功能限制访问网站?
  9. android获取手机联系人信息(电话,邮箱,姓名,头像)
  10. Code For Better 谷歌开发者之声——Google Play
  11. PHP字符串函数 查找字符位置函数
  12. 软件开发人员如何提高个人和团队工作效率
  13. 计算机控制面板设置密码,如何设置修改电脑的开机密码
  14. 【专业课程】网络协议分析与安全
  15. 2022茶艺师(中级)国家题库模拟考试平台操作
  16. 小程序通过三元运算符设置样式
  17. ArcGIS地理数据库简介
  18. Java面试题交流群
  19. Word代做,线上兼职,月入过万
  20. 【nginx 扩容及常用模块扩展】

热门文章

  1. Zookeeper的功能以及工作原理
  2. OTL调用Oracle存储过程
  3. 神经网络第一步,手写数字识别的例子分享给大家
  4. Xamarin.Android模拟器提示HAX kernel module is not Installed
  5. Google C++命名规范
  6. XFCE字体发虚的解决方法
  7. DOS批处理高级教程:第三章 FOR命令中的变量(转)
  8. 打造属于自己的图文符号库
  9. Solaris10下NDOUtils的安装
  10. Nginx 路由--Location的使用