我的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( ...
随机推荐
- 利用C语言结构体模拟一个简单的JavaBean
利用C语言模拟一个Javabean 仅封装了,“无参构造函数”,“带参构造函数”,"toString方法" #include <stdio.h> struct User ...
- css布局模型之绝对定位与相对定位
1. 绝对定位,absolute 如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left.right.t ...
- C语言进行CGI程序设计
一.CGI概述 CGI(公用网关接口)规定了Web服务器调用其他可执行程序(CGI程序)的接口协议标准.Web服务器通过调用CGI程序实现和Web浏览器的交互, 也就是CGI程序接受Web浏览器发送给 ...
- hdu 1093 A+B for Input-Output Practice (V)
A+B for Input-Output Practice (V) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/3276 ...
- Ehcache - hello world
Key Classes CacheManager The CacheManager class is used to manage caches. Creation of, access to, an ...
- oc语言学习之基础知识点介绍(一):OC介绍
一.第一个OC程序 #import <Foundation/Foundation.h> //导入头文件 int main(int argc, const char * argv[]) ...
- js中的FileSystemObject使用(FSO)
Set fso = Server.CreateObject("Scripting.FileSystemObject") 定义FSO对象 fso.CreateFolder(Serve ...
- Ubuntu Update-rc.d命令详细介绍
http://www.jb51.net/os/Ubuntu/182768.html Ubuntu或者Debian系统中update-rc.d命令,是用来更新系统启动项的脚本.这些脚本的链接位于/etc ...
- 基于node/mongo的App Docker化测试环境搭建
搭建步骤: 1.宿主机环境 ubuntu 14.4宿主机环境(云主机): 安装wget与curl(sudo apt-get install wget curl)2.安装Docker (wget -q ...
- Android笔记之adb命令应用实例1(手机端与PC端socket通讯下)
通过adb和Android通讯需要引用adb相关的组件到项目中,分别为:adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll. 可以在XXX\sdk\platform-tool ...