站长论坛-站长交流,交易,资讯,下载,培训中心
发新话题
打印

php函数详解--阿涛教学

本主题由 阿涛 于 2008-8-2 08:08 加入精华

php函数详解--阿涛教学

函数是程序中的精华部分,对于php而言也是这样的,php函数分自定义函数和系统函数,其中自定义函数也是程序员发挥自己聪明才智的地方,简单,灵巧,思路清晰的函数简直是一种艺术,哈哈闲话少说,进入正题

一:自定义函数

1:结构:

function function_name ($arg_1, $arg_2, ..., $arg_n)
{
    echo "http://www.admin300.com.\n";
    return $retval;
}

上面的结构中 function 为函数关键字既定义函数的关键字,function_name为函数名 $arg_1,$arg_2....,$arg_n函数变量即为形参,{}之间的为函数具体执行语句,这和c语言很类似
调用函数
2:函数的参数:
函数的参数就是函数的既形参有一下,命名规则遵循普通变量命名,具体的引用方式是:

(1)默认参数值
例子:
function admin300($a=20,$b=30){
      $c=$a+$b;
      echo $c;
}

admin300(100,40);

?>
虽然引用函数的时候实参是100,40,但是由于我们形参已经默认了参数值,所以输出结果是50了

注意:
默认值必须是常量表达式,不是(比如)变量,类成员,或者函数调用。

请注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则, 可能函数将不会按照预期的情况工作。考虑下面的代码片断:

默认值必须是常量表达式,不是(比如)变量,类成员,或者函数调用。

请注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则, 可能函数将不会按照预期的情况工作。考虑下面的代码片断:
<?php
function makeyogurt ($type = "acidophilus", $flavour)
{
    return "Making a bowl of $type $flavour.\n";
}

echo makeyogurt ("raspberry");  
?>  



上述例子的输出时:

Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Making a bowl of raspberry .
这点大家要一定明确


(2):通过引用传递参数

缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它 并不会改变函数外部的值)。如果你希望允许函数修改它的参数值,你必须 通过引用传递参数。

如果想要函数的一个参数总是通过引用传递,你可以在函数定义中该参数的 前面预先加上符号(&):

例子:

<?php

function add_some_extra(&$string)
{
    $string .= 'www.admin300.com';
}
$str = 'php100 ';
add_some_extra($str);
echo $str;  

?>
这种引用直接可以修改函数外部的变量,有时候用得到,应该引起大家的注意

3:返回值

值通过使用可选的返回语句返回。任何类型都可以返回,其中包括列表和对象。 这导致函数立即结束它的运行,并且将控制权传递回它被调用的行

(1):返回单个值
<?php
function square ($num)
{
    return $num * $num;
}
echo square (4);   
?>

返回结果为16
函数不能返回多个值,但为了获得简单的结果,可以返回一个列表。

(2):返回列表(多值):
<?php
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>
这样吧数组中的值赋值给列表了

(3):返回一个引用
从函数返回一个引用,你必须在函数声明和指派返回值给一个变量时都使用引用操作符 & :

<?php
function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();
?>
相当于引用了函数模块所在内存的地址,用处不是特别大

4:变量函数

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

变量函数不能用于语言结构,例如 echo()、print()、unset()、isset()、empty()、include()、require() 以及类似的语句。您需要使用您自己的外壳函数来将这些结构用作变量函数。

例子:

<?php
function foo()
{
    echo "In foo()<br>\n";
}

function bar($arg = '')
{
    echo "In bar(); argument was '$arg'.<br>\n";
}

// This is a wrapper function around echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();      
$func = 'bar';
$func('test');  
$func = 'echoit';
$func('test');
?>
不建议使用这种方式,php的缺点就是太自由,这点我不是很喜欢。

5:函数引用:
function_name($str1,...strn)
函数名(实参)

例子

<?php

function admin300($a,$b)
{
    $c=$a+$b;
        echo $c;
}

echo admin300(2,3);  

?>
函数就讲到这里~~~~不懂请在论坛留言

TOP

发新话题