php学习 函数 课件


Posted in PHP onJune 15, 2008

代码重用
include()
require()
这两个函数都是用来引用文件的,区别是当处理失败时include()产生一个警告而require()是一个致密错误
include_once()
require_once()
这两个函数与include()与require()是一样的 ,区别是include_once与require_once只能引用一次

    自定义函数
自定义函数用function()来声明
函数的优越性:
  控制程序设计的复杂性
  提高软件的可靠性
  提高软件的开发效率
  提高软件的可维护性
  提高程序的重用性
自定义函数的语法格式:
  function 函数名称(参数1,参数2){
    程序的内容叙述;
    return;
  }
  函数名称(参数1,参数2);
return  返回值; //返回值也可以是一个表达式
自定义函数名不区分大小写。命名函数时不可使用已声明的函数,或PHP内建的函数名称。
判断函数是否存在:function_exists(函数名称);

    变量的范围
变量的能见度是指变量在程序中的可作用范围。
大致上变量会依据声明分为两种:局部变量与全局变量
局部变量:
在函数之中声明的变量就是局部变量,并且该变量只有在函数范围之中才能加以使用。如果其它程序局部需要调用使用该变量值时,必须透过「return」指令,来将其传回至主程序区块以作后续处理。
全局变量:
在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的程序片段,所以局部变量会复盖全局变量的能见度,因此在函数中并无法直接调用使用全局变量。
函数中若要使用全局变量时,必须要利用global关键字定义目标变量,以告诉函数主体此变量为全局。
也可以使用预定义的全局变量数组$GLOBALS.这是一个特殊变量在程序运行时自动创建。
echo $GLOBALS[“A”];
通过unset($var)可以手动删除变量,变量会在内存中被释放,也就不在全局作用域中了。
使用require与include包含不会影响作用域

    静态变量
声明函数变量为静态的(static)。
一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调用时被初始化。要声明函数变量为静态的用关键字static。通常,静态变量的第一次使用时赋予一个初始值。

    参数的传递  
按值传递参数:
父程序直接传递指定的值或是变量给函数使用。由于所传递的值或变量,与函数里的数值分别储存于不同的内存区块,所以当函数对所导入的数值作了任何变动时,并不会对父程序造成直接影响。
按址传递参数(用“&”符号实现)
相对于按值传递模式,并不会将父程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块相对地址导入函数之中。因此当该数值在函数中有任何变动时,会连带对父程序造成影响。

    默认参数
默认参数必须列在所有没有默认值参数的后面。  
  function fun_sum($a,$b=0,$c=0){
    return $a+$b+$c;
  }
  echo fun_sum(10,20);
  echo fun_sum(10,20,30);
0为默认参数

    任意数量的参数列表
func_get_args()    //返回一个数组,包含所有参数 
func_num_args()     //返回个数的参数总数 
func_get_arg()     //接收一个数字参数,返回指定参数 按下标查找数值
  function foo() 
  {
        $numargs = func_num_args();
        echo "Number of arguments: $numargs<br />\n";
      if ($numargs >= 2) {
            echo "Second argument is: " . func_get_arg(1) . "<br />\n";
      }
        $arg_list = func_get_args();
        for ($i = 0; $i < $numargs; $i++) {
            echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
      }
  } 

  foo(1, 2, 3);
输出结果:Number of arguments: 3
  Second argument is: 2
  Argument 0 is: 1
  Argument 1 is: 2
  Argument 2 is: 3

    变量函数 
这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且将尝试执行它。除了别的事情以外,这个可以被用于实现回调函数,函数表等等。

    递归调用
所谓的函数递归调用,就是函数可以在其声明的执行叙述之中调用执行自己。
通常在此类型的函数之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定条件下终止函数的递归调用动作,把目前流程的主控权交回上一层函数执行。因此当某个执行递归调用的函数,没有附加条件判断叙述时可能会造成无限循环的错误情形.
函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序,并且能以这种特性来执行一些较为复杂的运算动作。
此课件为phpchina教学课件
php学习 函数 课件1210491967_9664e02c.rar

PHP 相关文章推荐
用PHP函数解决SQL injection
Dec 09 PHP
php基础知识:控制结构
Dec 13 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
PHP类的特性实例分析
Sep 28 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
Apr 24 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 PHP
PHP学习 运算符与运算符优先级
Jun 15 #PHP
坏狼php学习 计数器实例代码
Jun 15 #PHP
坏狼的PHP学习教程之第2天
Jun 15 #PHP
坏狼的PHP学习教程之第1天
Jun 15 #PHP
Php注入点构造代码
Jun 14 #PHP
介绍php设计模式中的工厂模式
Jun 12 #PHP
php mysql索引问题
Jun 07 #PHP
You might like
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
Linux下编译安装MySQL-Python教程
2015/02/02 Python
简单谈谈Python流程控制语句
2016/12/04 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python日期的加减等操作的示例
2017/08/15 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
python中的global关键字的使用方法
2019/08/20 Python
解决python 上传图片限制格式问题
2019/10/30 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers