我爱编程

PHP 函数详解

2018-04-17  本文已影响0人  窗边冷月光
<?php
/** 函数
 * Created by PhpStorm.
 * User: hezhao
 * Date: 2018-04-13 17:39
 */

//PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 1000 个内建的函数。
//函数名称以字母或下划线开头(不能以数字开头)

//无参方法
function sayHello(){
    echo "Hello!", "<br>";
}
sayHello();

// 有参方法
function saySomeThing($word){
    echo $word, "<br>";
}
saySomeThing("哈哈");

// 返回值
function calc($num1, $num2){
    return $num1 + $num2;
}
echo "1 + 2 = " . calc(1,2) . "<br>";


// 默认参数
// 默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等。
// 注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。
function sayName($name, $age=23){
    echo "My Name is " . $name . ", I'm " . $age . " years old.<br>";
}
sayName("张三");
sayName("张三",18);
echo "<hr>";

//PHP 还允许使用数组 array 和特殊类型 NULL 作为默认参数
function makecoffee($types = array("cappuccino"), $coffeeMaker = NULL){
    $device = is_null($coffeeMaker) ? "hands" : $coffeeMaker;
    return "Making a cup of [".join(", ", $types)."] with $device.<br>";
}
echo makecoffee();
echo makecoffee(array("cappuccino", "lavazza"), "teapot");
echo "<hr>";


//可变长度参数 5.6+
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4);
echo "<br>";


// 值传递 默认
function takeArray($arrays){
    $arrays[0] = 10;
    return $arrays;
}
$nums = [1, 2, 3];
print_r(takeArray($nums)); //并不会改变数组的值,这与Java不同!
echo "<br>";
print_r($nums);
echo "<hr>";


// 引用传递 参数前加 &
function takeArray2(&$arrays){
    $arrays[0] = 10;
    return $arrays;
}
$nums = [1, 2, 3];
print_r(takeArray2($nums)); //会改变数组的值
echo "<br>";
print_r($nums);
echo "<br>";

// 字符串 引用传递
function add_some_extra(&$string){
    $string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str;
echo "<br>";
上一篇下一篇

猜你喜欢

热点阅读