我的PHP之旅--PHP的函数初步认识
函数
函数主要是将一块代码封装起来方便多次使用,方便以后维护,节省代码。
先看一个简单的函数:
<?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
// )
?>
变量的作用域
- 局部变量:是在函数内部声明的,当函数执行后被释放。
- 全局变量:在函数外部所声明的变量,当关闭页面后被释放。
在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的函数初步认识的更多相关文章
- acm数论之旅--欧拉函数的证明
随笔 - 20 文章 - 0 评论 - 73 ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭) https://blog.csdn.net/chen_ze_hua ...
- ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭)
欧拉函数,用φ(n)表示 欧拉函数是求小于等于n的数中与n互质的数的数目 辣么,怎么求哩?~(-o ̄▽ ̄)-o 可以先在1到n-1中找到与n不互质的数,然后把他们减掉 比如φ(12) 把12质因数分解 ...
- Python之旅Day4 闭包函数 模块及模块倒入
闭包函数 闭包函数就是在内部函数当中有对外部函数名字的引用 ###代码示例1### def f1(): x =1 def f2(): print(x) return f2 f=f1() f() ### ...
- ios学习之旅---c语言函数
1.函数的概述 C源程序是由函数组成的. 尽管在前面各章的程序中大都仅仅有一个主函数main(),但有用程序往往由多个 函数组成. 函数是C源程序的基本模块,通过对函数模块的调用实现特定的功能. C语 ...
- Python学习第十篇——函数初步
def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...
- SG 函数初步 HDU 1536 && HDU 1944
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=1944 pid=1536"> http://acm.hdu.edu.cn/showpr ...
- python学习笔记:第9天 函数初步
1. 函数的定义及调用 函数:所谓的函数可以看作是对一段代码的封装,也是对一个功能模块的封装,这样方便在下次想用这个功能的时候直接调用这个功能模块,而不用重新去写. 函数的定义:我们使用def关键字来 ...
- 积性函数初步(欧拉$\varphi$函数)
updata on 2020.4.3 添加了欧拉\(\varphi\)函数为积性函数的证明和它的计算方式 1.积性函数 设\(f(n)\)为定义在正整数上的函数,若\(f(1)=1\),且对于任意正整 ...
- js上 十三、函数初步-2
13-1.函数的参数 函数的本质: ü 函数的作用,代码重用,编写一个函数,就是为了解决一类问题. ü 函数每次调用,都有一个结果,那么结果和什么相关呢?y = x , y = x2,y = sin( ...
随机推荐
- Python 基础【第七篇】集合
一.集合的概念: 不同元素的集合 二.集合的方法: 方法 用法 范例 set() 过滤掉重复 设置成为集合 >>> subset=set([1,1,2,3,4,4,6]) >& ...
- 你了解C语言中的关键字volatile吗?
我们在学习C语言的32个关键字时,大家都不太注意volatile这个关键字,volatile是一个类型修饰符.volatile的中文意思是“易变的”.那么在程序中我们在什么情况下才使用他呢?我们在分析 ...
- npm更换淘宝镜像
镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set registry https://regist ...
- PHP 简易读取文件目录下的文件,生成css spirte图片
因为个人不是对PS熟悉,不清楚如何在PS中生成一张横向有序的spirte图片,使用了"css sprite V4.3"版本,生成的图片会出现压缩图片大小的情况,本想修改原作者开发的 ...
- java--简单排序算法
1.冒泡排序 排序原理: 过程简单,首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录与第三个记录得关键字.以此类推,直至第n-1个记录和第n个记录的 ...
- python备份脚本
备份制定文件到指定目录下,文件名以当前时间 思路: 1.指定备份的文件或目录 2.指定备份的目标路径 3.压缩备份名是当前日期和时间 4.使用标准的压缩命令 1.最简单的以日期时间为文件名 2.以日期 ...
- this 关键字
导读 本文将列举C#中this关键字的用途 1.this 含义 2.用this 关键字避免参数与字段的混淆 3.用this关键字串联构造器 4.索引器 6.Visitor 模式 this 含义 C# ...
- infopath 之绑定列表 数据源
在psd中启动infopath更新表单模版 注:虽然可能在infopath design中预览的时候会报错说是跨域数据不能加载,别理他 继续发布上站点就不会有这个错误了. 绑定list后效果: 参考u ...
- [java学习笔记]Hello World那些事
我们安装和配置好java后,必须得大展拳脚一番,根据国际惯例,第一个程序必须是Hello World,下面我们就看看Hello World的那些事. 1.Hello World的运行 Hello Wo ...
- 安装eclipse中文汉化包后无法打开eclipse
通过在线安装中文汉化包后一直提示无法启动程序在.log中查看日志 !SESSION 2016-01-15 11:22:57.959 ---------------------------------- ...