我的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( ...
随机推荐
- TCP/IP协议原理与应用笔记12:单播、多播和广播地址(目的地址)
根据数据接收者的接收范围,将目的地址分为单播.多播.广播. 这里目的地址的划分主要针对的是 物理地址 和 IP地址,没有涉及到端口地址,因为主要针对标识通信节点的地址(物理地址 和 IP地址)而言,和 ...
- Java8的新特性
Java 8主要新特性包括如下几点: 一.接口的默认方法和静态方法 Java 8版之前,接口只有抽象方法,而在Java 8,为接口新增了两种类型的方法. 第一种是默认方法:在Java 8中,可 ...
- easyui-validatebox验证 radio
添加规则 $.extend($.fn.validatebox.defaults.rules, { requireRadio: { validator: function(value, param){ ...
- 原生JQ实现图片滑动轮播
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- JAXB - XML Schema Types, Defining Types for XML Elements With Content
Content: A Value The content of an XML element may be some value, or one or more subordinate element ...
- js 获取url中的查询字符串
function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)( ...
- SQL-学习使用FOR XML PATH
前言:本人SQL技术很烂,然后工作时间也不久,许多东西都还在学习中,说的不好的地方尽请谅解. 首先跟大家说一下我今天遇到的问题吧. 查出的数据有三列,第一列存放的是32位的GUID,Res_Name存 ...
- asp下实现多条件模糊查询SQL语句
常写一个简单的模糊查询的SQL语句格式可以如下例: sql="select * from 表名 where 字段名 like ’%" & request.form(&quo ...
- 要源码的快来啊,价值500的OA商业源码免费送给大家,望大家年底奖金多多......
功能介绍: 兼容IE6,7,8以上.GooleChrome.360及遨游等浏览器. 系统特色: 1.系统经过抗压测试. 2.语音提示功能. 3.支持office2007在线编辑. 4.强大的图形化工作 ...
- lrzsz on linux
Linux Disibutaion:Ubuntu 16.04.1 LTS lrzsz是一款在linux里可代替ftp上传和下载的程序. 1.下载lrzsz源码包 #下载源码包 wget https:/ ...