函数

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

先看一个简单的函数:

<?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

?>

我的PHP之旅--PHP的函数初步认识的更多相关文章

  1. acm数论之旅--欧拉函数的证明

    随笔 - 20  文章 - 0  评论 - 73 ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭) https://blog.csdn.net/chen_ze_hua ...

  2. ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭)

    欧拉函数,用φ(n)表示 欧拉函数是求小于等于n的数中与n互质的数的数目 辣么,怎么求哩?~(-o ̄▽ ̄)-o 可以先在1到n-1中找到与n不互质的数,然后把他们减掉 比如φ(12) 把12质因数分解 ...

  3. Python之旅Day4 闭包函数 模块及模块倒入

    闭包函数 闭包函数就是在内部函数当中有对外部函数名字的引用 ###代码示例1### def f1(): x =1 def f2(): print(x) return f2 f=f1() f() ### ...

  4. ios学习之旅---c语言函数

    1.函数的概述 C源程序是由函数组成的. 尽管在前面各章的程序中大都仅仅有一个主函数main(),但有用程序往往由多个 函数组成. 函数是C源程序的基本模块,通过对函数模块的调用实现特定的功能. C语 ...

  5. Python学习第十篇——函数初步

    def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...

  6. SG 函数初步 HDU 1536 &amp;&amp; HDU 1944

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=1944 pid=1536"> http://acm.hdu.edu.cn/showpr ...

  7. python学习笔记:第9天 函数初步

    1. 函数的定义及调用 函数:所谓的函数可以看作是对一段代码的封装,也是对一个功能模块的封装,这样方便在下次想用这个功能的时候直接调用这个功能模块,而不用重新去写. 函数的定义:我们使用def关键字来 ...

  8. 积性函数初步(欧拉$\varphi$函数)

    updata on 2020.4.3 添加了欧拉\(\varphi\)函数为积性函数的证明和它的计算方式 1.积性函数 设\(f(n)\)为定义在正整数上的函数,若\(f(1)=1\),且对于任意正整 ...

  9. js上 十三、函数初步-2

    13-1.函数的参数 函数的本质: ü 函数的作用,代码重用,编写一个函数,就是为了解决一类问题. ü 函数每次调用,都有一个结果,那么结果和什么相关呢?y = x , y = x2,y = sin( ...

随机推荐

  1. ios通知-kvo

    // KVC: Key Value Coding, 常见作用:给模型属性赋值    // KVO: Key Value Observing, 常用作用:监听模型属性值的改变 // // ViewCon ...

  2. Spring MVC中基于注解的 Controller

         终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响 ...

  3. synopsys license maker

    参见bingled大牛的文章(http://bbs.eetop.cn/viewthread.php?tid=366602&extra=&page=1) 注意:经坛友提示,部分系统版本2 ...

  4. windows server 2012R2 网络慢的那些事

    前段时间公司新采购了一台ibm的服务器,装的是 windows server 2012R2, 在做完项目迁移后,发现项目访问数据库缓慢,于是逐项查找原因,最后终于找到解决办法 以Administrat ...

  5. list集合,map集合遍历

    import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** *遍历集合List * @autho ...

  6. 面试之SQL

    1. 查询性能优化:从数据库查询数据时,你一定遇到过查询很慢的情况,请问你是怎么处理的. 答: 遇到的问题描述:是遇到过这种情况,我们给客户做过一款软件,日志库搜集了6000万条数据,显示.查询时候慢 ...

  7. python学习第二天:数字与字符串转换及逻辑值

    1.数字与字符串的转化     #1.数字转字符,使用格式化字符串:         *1.demo = ‘%d’  %  source         *2.%d整型:%f 浮点型 :%e科学计数 ...

  8. Aix命令大全

    AIX服务器系统命令简介 在AIX操作系统上有很多的命令.这里介绍一些系统级的命令,它将有助于回答一些常见问题.大家以此做参考,并补充修改. 以下命令在AIX 5.1上测试通过. 正文 以下命令在AI ...

  9. 【转载】C/C++之回调函数

    [转载地址]:http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 在理解“回调函数”之前,首先讨论下函 ...

  10. iOS开发——https+证书

    由于公司项目的需要,经过调研后,已成功. 同事已把此问题写成博客<[加密解密]HTTPS>,我就直接转用了 附带链接如下: http://www.jianshu.com/p/8351917 ...