函数

函数主要是将一块代码封装起来方便多次使用,方便以后维护,节省代码。

先看一个简单的函数:

<?php

function myFirstFunc(){
    echo "Hello PHP";
}

myFirstFunc();

?>

带形参和返回值的函数:

<?php

$a = 10;
$b = 20;
function getMax($num1, $num2) {
    return $num1 > $num2 ? $num1 : $num2;
}

echo "最大数是:".getMax($a, $b);
echo "<br />最大数是:".getMax(17, 1);

?>

值传递和引用传递

  • 值传递:值传递是将变量的值拷贝一份传入参数后,在函数中进行操作,这样不会修改函数外部的变量,它会开辟新的内存来存储变量。
  • 引用传递:引用传递是将变量的地址拷贝一份,这样在函数中修改变量也会影响到函数外部的变量,它不会开辟新的内存来储存变量。
<?php
$a = 5;
$b = 40;
$arr = array(55, 10);
// 这是值传递参数的函数。
function getMin($num1, $num2){
    echo "最小值是:".($num1 < $num2 ? $num1 : $num2)."<br />";
}

// 这是引用传递的函数。
function appendArr(&$array, $someValue){
    $array[] = $someValue;
    echo "数组已经被添加<br />";
}

getMin($a, $b);
appendArr($arr, 80);
echo "被添加后的数组:<pre>";
print_r($arr);
echo "</pre>";

// 结果:
// 最小值是:5
// 数组已经被添加
// 被添加后的数组:
// Array
// (
//     [0] => 55
//     [1] => 10
//     [2] => 80
// )

?>

变量的作用域

  1. 局部变量:是在函数内部声明的,当函数执行后被释放。
  2. 全局变量:在函数外部所声明的变量,当关闭页面后被释放。

在PHP中 全局变量是无法直接在函数中使用的,需要使用global关键字:

<?php

$user_name = "Alex_sk";
function someFun(){
    global $user_name;    // 在声明时不可赋值
    echo "my name is:{$user_name}";
}

someFun();
// 结果:my name is:Alex_sk

?>

其实说到底 global关键字 是引用传递的:

<?php

$user_name = "Alex_sk";
function someFun(){
    global $user_name;    // 在声明时不可赋值
    $user_name = "Sky";
    echo "my name is:{$user_name}";
}

someFun();
// user_name在函数中被更改,也会影响到原本的全局变量user_name
echo "<br />my name is:{$user_name}";
// 结果:
// my name is:Sky
// my name is:Sky

?>

最新文章

  1. 取消Git代理设置
  2. java中的负数的问题
  3. 导入DXF文件
  4. (转载)SQL中导入图片
  5. webpack React+ES6
  6. php 读取二进制文件
  7. Linux常用操作命令(三)
  8. IntelliJ IDEA 2017 注册方法
  9. hbuilder 个推 问题记录
  10. Flume架构以及应用介绍
  11. @SuppressLint("HandlerLeak"),或Handler使用有警告;
  12. Socket网络编程--聊天程序(9)
  13. [HEOI2016/TJOI2016]树
  14. float double 如何存储
  15. uva 331 Mapping the Swaps 求交换排序的map 纯DFS
  16. Python- requests详解
  17. nGrinder对监控机器收集自定义数据及源码分析
  18. PHP上传文件限制的大小
  19. shell视频
  20. 《Programming with Objective-C》第七章 Values and Collections

热门文章

  1. PHP读书笔记(2)-变量与数据结构
  2. centos安装crontab:
  3. 浅析PAC,教你动手修改你的PAC文件及user-rule文件实现自动代理
  4. CentOS7安装RabbitMQ集群
  5. 关于Git的分支
  6. monkey与monkeyrunner的使用
  7. 通用安全字符串输入,彻底替换server.htmlencode
  8. oracle 表空间常用语句
  9. iOS开发——百度云推送
  10. html-----017