我的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( ...
随机推荐
- Android_listView_Listener
layout.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...
- 关于SpringMVC和Struts2的区别
1. 与struts2不同 1. springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器. 2. springmvc是基于方法开发,传递参数是通 ...
- Oracle报错:ORA-01747: user.table.column, table.column 或列说明无效
1.检查sql书写正确性 2.如果sql书写正确,则是由于数据库列名起的不好引起的,名字用到了数据库的关键字. 如果列很多,又不好确定是哪个列名使用了关键字,以下建议可供参考: 我用以下方法定位 se ...
- Oracle计算连续天数,计算连续时间,Oracle连续天数统计
Oracle计算连续天数,计算连续时间,Oracle连续天数统计 >>>>>>>>>>>>>>>>> ...
- oracle交集,并集,差集
引自:http://www.2cto.com/database/201308/238777.html [sql] create table test1 ( name ), NN ) ); insert ...
- Microsoft Visual Studio 2013 Update 2 离线安装程序
☆ 微软官网地址:☆ http://www.microsoft.com/zh-cn/download/details.aspx?id=42665☆ 离线安装程序 直接下载链接:☆ Microsoft ...
- nopCommerce添加支付插件
之前完成了nopCommerce和汉化以及配置,今天继续对nopCommerce的研究,为了能够完成购物,我们就要将伟大的支付宝添加至其中了.支付宝插件下载 将Nop.Plugin.Payments. ...
- 修改arcgis server默认js和css连接地址
当使用ArcGIS Server 10.1发布了一个地图服务之后,在ArcGIS Server 10.1的机器上使用浏览器进入http://localhost:6080/arcgis/rest/ser ...
- 爬虫遇到取到网页为reload的问题
有的网站防采集,会在页面加上this.window.location.reload(),这时候你就会得到如下代码: <html> <head> <meta ...
- [转]js中几种实用的跨域方法原理详解
转自:js中几种实用的跨域方法原理详解 - 无双 - 博客园 // // 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同 ...