1、自定义函数:PHP内置了超多1000个函数,因此函数使得PHP成为一门非常强大的语言。大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰。PHP函数的定义方式:
(1)、使用关键字“function”开始
(2)、函数名可以是字母或者下划线开头:function name()
(3)、在大括号中编写函数体:
function name()
{
echo 'Eric';
}
通过以上方式,我们就定义了一个简单的函数,当我们需要的时候,就可以在代码中调用这个函数,调用方法为函数名+参数,例:name();
例: 输出:
<?php
function say() =>
{ hellow world
echo 'hellow world';
}
say();
?>
2、函数的参数:PHP的函数可以没有参数,也可以有若干个参数,多个参数称之为参数列表,采用逗号分割,参数类是于一个变量,调用时来传递数据到函数体中。通过参数传递可以使函数实现对参数的运算,得到我们想要的结果。参数的变量名可以自由指定,但是最好能够表达相关的意思,常用的设定参数的方法为:
例: 输出:
<?php
function sum($a, $b) =>
{ 3
echo $a + $b;
}
sum(1, 2);
?>
3、返回值:使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果略了return,则默认返回值为NULL。
function add($a)
{
return $a +1;
}
$b = add(1);
返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行,因此下面函数的返回值跟上面的函数是一样的。
function add($a)
{
return $a +1;
$a = 10;
return $a + 20;
}
$b = add(1);
函数不能返回多个值,但是可以通过返回一个数组来得到类似的效果。function numbers()
{
return array(1, 2, 3);
}
list($one, $two, $three) = number();
例: 输出:
<?php =>
function sum($a, $b) 样例 1: 3
{ 样例 2:1 2 3 4
return $a + $b;
}
echo '<br />';
function numbers()
{
rerurn array(1, 2, 3, 4);
}
$arr = numbers();
echo '样例 2:';
for($index = 0; $index < sizeof($arr); $index++)
{
if( $index <sizeof($arr) - 1)
echo $arr[$index] . ' ';
else
echo $arr[$index];
}
?>
4、可变函数:所谓可变函数,即通过变量的值来调整函数,因为变量的值是可变的,所以通过改变一个变量的值来实现调用不同的函数。经常会用在回调函数、函数列表、或者根据动态参数调用不同的函数,可变函数的调用方法为变量名加括号。
例:
function name()
{
echo 'jobs';
}
$func = 'name';
$func();//调用可变函数
可变函数也可以用在对象的方法调用上
class book
{
function getName()
{
return 'bookname';
}
}
$func = 'getName';
$book = new book();
$book->$func();
例: 输出:
<?php =>
function func() 样例 1:my function called
{ 样例 2:boolname
echo '样例 1:' . 'my function called.';
}
$name = 'func';//调用可变函数
$name();
echo '<br />';
class book
{
function getName()
{
return 'boolname';
}
}
$func = 'getName';
$book = new book();
echo '样例 2:' . $book->$func();
?>
5、内置函数:内置函数指的是PHP默认支持的函数,PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、session与cookie处理等。
例: 输出:
<?php =>
$str = '苹果很好吃。'; 香蕉很好吃
//请将变量$str中的苹果替换成香蕉
$str = str_replace('苹果', '香蕉', $str);
echo $str;
?>
6、判断函数是否可见:当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在。同样的method_exists可以用来检测类的方法是否存在。file_exists可以用来检查文件是否存在。
例: 输出:
<?php =>
function func() { 函数func()存在!
echo '函数func()存在!' . '<br />'; MyClass类存在 !
} 名为:test.txt的文件不存在!
$name = 'func';
if (function_exists('func') ) { //判断函数是否存在
$name();
}
class Myclass
{
function fun()
{
echo 'Myclass类存在!' . '<br ?>'.;
}
}
if(class_exists('myclass'))
{
$Fun = 'fun';
$Myclass = new MyClass();
$Myclass->$Fun();
}
$filename = 'test.txt';
if(!file_exists($filename))
{
echo '名为:test.txt的文件不存在!';
}?>