PHP 函数 创建 PHP 函数 function functionName() { 要执行的代码; }
PHP 函数准则: • 函数的名称应该提示出它的功能 • 函数名称以字母或下划线开头(不能以数字开头)
一个简单的函数,在其被调用时能输出我的名称:
1 2 3 4 5 6 7 8 9 10 11 12 13 <html> <body> <?php function writeName ( ) { echo "Kai Jim Refsnes" ; } echo "My name is " ; writeName(); ?> </body> </html>12345678910111213
输出: My name is Kai Jim Refsnes
添加参数 下面的实例将输出不同的名字,但姓是相同的:
1 2 3 4 5 6 7 8 9 10 11 12 13 <?php function writeName ($fname ) { echo $fname . " Refsnes.<br>" ; } echo "My name is " ; writeName("Kai Jim" ); echo "My sister's name is " ; writeName("Hege" ); echo "My brother's name is " ; writeName("Stale" ); ?> 12345678910111213
输出: My name is Kai Jim Refsnes. My sister’s name is Hege Refsnes. My brother’s name is Stale Refsnes.
以下函数有两个参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php function sum ($a , $b ) { echo $a + $b ; } sum(1 , 2 ); ?> 12345678 <?php function writeName ($fname ,$punctuation ) { echo $fname . " Refsnes" . $punctuation . "<br>" ; } echo "My name is " ; writeName("Kai Jim" ,"." ); echo "My sister's name is " ; writeName("Hege" ,"!" ); echo "My brother's name is " ; writeName("Ståle" ,"?" ); ?> 12345678910111213
输出: My name is Kai Jim Refsnes. My sister’s name is Hege Refsnes! My brother’s name is Ståle Refsnes?
返回值 使用 return 语句让函数返回一个值
1 2 3 4 5 6 7 8 <?php function add ($x ,$y ) { $total =$x +$y ; return $total ; } echo "1 + 16 = " . add(1 ,16 ); ?> 12345678
输出: 1 + 16 = 17
① 使用return关键字可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL。
1 2 3 4 5 function add ($a ) { return $a +1 ; } $b = add(1 );12345
② 返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行,因此下面函数的返回值跟上面的函数是一样的。
1 2 3 4 5 6 7 8 9 10 <?php function add ($a ) { return $a +1 ; $a = 10 ; return $a +20 ; } $b = add(1 ); echo $b ; ?> 12345678910
输出: 2
③ 函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
1 2 3 4 5 6 7 8 9 10 11 12 <?php function numbers ( ) { return array (1 , 2 , 3 ); } list ($one , $two , $three ) = numbers(); echo $one ; echo "<br>" ; echo $two ; echo "<br>" ; echo $three ; ?> 123456789101112
输出: 1 2 3
可变函数 所谓可变函数,即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来实现调用不同的函数。经常会用在回调函数、函数列表,或者根据动态参数来调用不同的函数。可变函数的调用方法为变量名加括号。
1 2 3 4 5 6 7 8 9 <?php function func ( ) { echo 'my function called.' ; } $name = 'func' ; $name (); ?> 123456789
输出: my function called. 可变函数也可以用在对象的方法调用上。
1 2 3 4 5 6 7 8 9 10 11 12 <?php class book { function getName ( ) { return 'bookname' ; } } $func = 'getName' ; $book = new book(); echo $book ->$func (); ?> 123456789101112
输出: bookname
内置函数
PHP默认支持的函数。PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、session与cookie处理等。
先拿字符串处理函数来举例,通过内置函数str_replace可以实现字符串的替换。下面的例子将“jobs”替换成“steven jobs”:
1 2 3 4 5 <?php $str = '苹果很好吃。' ; $str = str_replace('苹果' , '香蕉' , $str ); echo $str ; ?> 12345
输出: 香蕉很好吃
另外一些函数是通过其他扩展来支持的,比如mysql数据库处理函数,GD图像处理函数,邮件处理函数等,PHP默认加载了一些常用的扩展库,我们可以安装或者加载其他扩展库来增加PHP的处理函数。
PHP 提供了超过 1000 个内建的函数。后面笔者会介绍更多其他的内置函数及用法。 所有数组函数的完整参考手册和实例:http://blog.csdn.net/fancie_wong/article/details/53007273
判断函数是否存在 当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在。同样的method_exists可以用来检测类的方法是否存在。
1 2 3 4 5 6 7 8 9 10 11 <?php function func ( ) { echo 'exists' ; } $name = 'func' ; if (function_exists($name )) { $name (); } ?> 1234567891011
输出: exists
类是否定义可以使用class_exists。
1 2 3 4 5 6 7 class MyClass {} if (class_exists('MyClass' )){ $myclass = new MyClass(); }1234567
PHP中有很多这类的检查方法,例如文件是否存在file_exists等。
1 2 3 4 5 $filename = 'test.txt' ;if (!file_exists($filename )){ echo $filename . ' not exists.' ; }12345
php7 对书写函数的要求提供,如果要使用全局变量需要使用 global 声明先。
conn.php:
1 2 3 <?php $title ="runoob" ;?>
index.php:
1 2 3 4 5 6 7 8 <?php include ('conn.php' );function titleshow ( ) { global $title ; echo $title ; } titleshow(); ?>
end