PHP中函数初识
2017-06-06 00:00
190 查看
函数的声明:
function 函数名(参数...){
函数体。。
}
关于函数的调用:
只要函数的声明在脚本中可见,就可以通过函数名在脚本的任意位置调用,可以在声明之后调用,也可以在声明之前进行调用,还可以在函数中调用函数
关于函数的参数:
函数的参数列表就是用户调用函数时提供的操作接口
按值传递参数:
有初始化值的参数在没有实参传进来的时候使用初始值,所以这部分的参数就属于可有可无,但是一般将这样的参数放在最右边,保证传送的实参给未初始化的形参
按引用传递参数:
```
<?php
function test(&$a){//声明一个函数,需要传入一个参数,使用“&”将按引用方式传递参数
$a=200;//修改参数&a的值为200,此时外部变量也会被一同修改。
}
$var=100;
test($var);
echo $var;
?>
```
可变长度参数列表:
使用默认参数适合实参个数少于形参的情况,而可变参数列表则适合实参个数多于形参的情况
```
<?php
function test(){//声明一个函数没有指定参数列表
$args=func_get_args();//将所有传递给脚本函数的参数当做一个数组返回
for($i=0;$i<count($args);$i++){
//......可以通过这种方法访问到每个传进来的参数
}
}
?>
```
也可以使用func_num_args()函数返回参数的总数
```
<?php
function test(){
for($i=0;$i<func_num_args();$i++){
echo func_get_arg($i);
}
}
test("one","two",1,2,3);
?>
```
在函数体中如果执行了return,它后面的语句就不会被执行,将程序的控制权返回到调用者的作用域
关于变量函数:
```
<?php
function test(){
}
$result="test";//将函数名
‘test’赋给变量result,执行result时调用函数one
echo "运算的结果是:"$result(2,3);
?>
```
关于自定义函数库:
require(),include()
```
<?php
header("Content-Type: text/html; charset=gb2312");
// require 'a.php';
//这里是对函数的调用,下面就可以在这个页面中直接使用a.php中的函数了
/**
* 分析函数底层的调用,必须要深入到内存的变化
* 一旦程序遇到一个函数,就会开辟一个栈的空间,然后进行执行,完毕之后会进行返回
* 返回之后接着执行
*/
//2.通过变量的方式引入
/* $fileName="a.php";
require $fileName;
*/
//3.
// require ('a.php');
/**
* require 与 require_once的区别
* require一般放在程序的最前面,一旦出错,直接退出整个程序fatar error致命的错误
* 即不进行判断,可以多次引入
* require_once则判断是否已经包含过了,如果包含过了,则不再包含文件,一可以节省资源,二可以避免 重复定义的错误
*
* include和include_once的区别
* 作用都是可以把一个页面包含到另一个页面
*
* 相同点都是可以引入别的页面
* 不同的是,include如果出现了错误,如,文件名写错了,则会继续执行,
* 而require出现错误则会终止程序
*
* 小结:做项目的时候,基本上使用的都是require_once
* 注意:引用一般是放在前面进行的
*
*/
require 'a.php';
require 'a.php';
?>
```
function 函数名(参数...){
函数体。。
}
关于函数的调用:
只要函数的声明在脚本中可见,就可以通过函数名在脚本的任意位置调用,可以在声明之后调用,也可以在声明之前进行调用,还可以在函数中调用函数
关于函数的参数:
函数的参数列表就是用户调用函数时提供的操作接口
按值传递参数:
有初始化值的参数在没有实参传进来的时候使用初始值,所以这部分的参数就属于可有可无,但是一般将这样的参数放在最右边,保证传送的实参给未初始化的形参
按引用传递参数:
```
<?php
function test(&$a){//声明一个函数,需要传入一个参数,使用“&”将按引用方式传递参数
$a=200;//修改参数&a的值为200,此时外部变量也会被一同修改。
}
$var=100;
test($var);
echo $var;
?>
```
可变长度参数列表:
使用默认参数适合实参个数少于形参的情况,而可变参数列表则适合实参个数多于形参的情况
```
<?php
function test(){//声明一个函数没有指定参数列表
$args=func_get_args();//将所有传递给脚本函数的参数当做一个数组返回
for($i=0;$i<count($args);$i++){
//......可以通过这种方法访问到每个传进来的参数
}
}
?>
```
也可以使用func_num_args()函数返回参数的总数
```
<?php
function test(){
for($i=0;$i<func_num_args();$i++){
echo func_get_arg($i);
}
}
test("one","two",1,2,3);
?>
```
在函数体中如果执行了return,它后面的语句就不会被执行,将程序的控制权返回到调用者的作用域
关于变量函数:
```
<?php
function test(){
}
$result="test";//将函数名
‘test’赋给变量result,执行result时调用函数one
echo "运算的结果是:"$result(2,3);
?>
```
关于自定义函数库:
require(),include()
```
<?php
header("Content-Type: text/html; charset=gb2312");
// require 'a.php';
//这里是对函数的调用,下面就可以在这个页面中直接使用a.php中的函数了
/**
* 分析函数底层的调用,必须要深入到内存的变化
* 一旦程序遇到一个函数,就会开辟一个栈的空间,然后进行执行,完毕之后会进行返回
* 返回之后接着执行
*/
//2.通过变量的方式引入
/* $fileName="a.php";
require $fileName;
*/
//3.
// require ('a.php');
/**
* require 与 require_once的区别
* require一般放在程序的最前面,一旦出错,直接退出整个程序fatar error致命的错误
* 即不进行判断,可以多次引入
* require_once则判断是否已经包含过了,如果包含过了,则不再包含文件,一可以节省资源,二可以避免 重复定义的错误
*
* include和include_once的区别
* 作用都是可以把一个页面包含到另一个页面
*
* 相同点都是可以引入别的页面
* 不同的是,include如果出现了错误,如,文件名写错了,则会继续执行,
* 而require出现错误则会终止程序
*
* 小结:做项目的时候,基本上使用的都是require_once
* 注意:引用一般是放在前面进行的
*
*/
require 'a.php';
require 'a.php';
?>
```
相关文章推荐
- 初识PHP(二)常用函数
- 使用ob系列函数实现PHP网站页面静态化
- php 目录遍历、删除 函数的使用介绍
- 学习笔记PHP字符串处理函数总结
- php中批量修改文件后缀名的函数代码
- PHP4用户手册:函数->CURL
- PHP_Date()函数详细参数
- PHP学习笔记5:代码重用和函数
- 分享一个php时间段切分为指定段的函数
- PHP判断webserver的函数
- php 数组操作(增加,删除,查询,排序)等函数说明第1/2页
- PHP Simple HTML DOM Parser 的 find() 函数无法找到元素的类属性
- php 获取唯一字符串与文件扩展名函数
- PHP 5克隆函数应用浅析
- [完]PHP 找不到scandir()函数“Call to undefined function: scandir()”
- php关于文件内容的几个操作函数总结
- 小论PHP的函数参数传递方式
- PHP 5中新增加日期(date)函数的常量简介
- php为什么函数方法名大小写不敏感
- php5.3 不支持 session_register() 此函数已启用的解决方法