php学习之function的用法

1,申明函数
在PHP中,定义函数的方法同其他编程语言几乎一样.下面是PHP申明函数的语法结构:


代码如下:

Function function_name($argument1,$argument2,$argument3,......$argumentn)
{
//函数代码code
Return 返回值;
}

以上语法结构中,关键字的含义如下.
(1)function:用于申明用户自定义函数的关键字.
(2)function_name:要创建的函数名称.该名称将在以后被调用时使用.函数名应该唯一,因为PHP不支持重载.在命名函数的时候,需要遵循和变量命名
相同的原则.但是函数名不能以$开头,而变量可以.
(3)argument:要传递给函数的值.函数可以有多个参数,它们之间用逗号.但是参数项是可选的,可以在调用函数的时候不传递任何参数.
(4)code:是在函数被调用的时候执行的一段代码.如果有两条或者多条语句,则代码必须用大括号"{}"括起来.但是,如果只有一条代码,则不需要大括号.
(5)Return:将调用的代码需要的值返回.任何类型都可以返回,包括列表和对象.这导致函数立即结束它的运行,并且将控制权传递回它被调用的行.
2,无参数函数
代码func_1.php


代码如下:

<?php
require 'a.php';
echo "我不会被执行!";
?>

3,有参数函数
PHP支持按值传递参数(默认),通过引用传递和默认参数值.可变长度参数列表仅在PHP4和后继版本中被支持.
(1)值传递参数.按值进行参数传递是PHP的默认传递方式.使用这个方法,必须在主程序调用时传递一个值(参数).
代码sum.php


代码如下:

<?php
function sum ($a,$b)
{
Echo $a+$b;
}
sum(100,20); //开始调用该函数
?>

(2)引用参数.在按照值传递的时候,只有参数的副本传递给被调用的函数.但是在被调用函数内部对这些值的任何修改,都不会影响调用函数
中的原始值.引用传递其实也就是地址传递,将一个变量的地址作为参数传递.
代码valuechange.php


代码如下:

<?php
$myNum=100;
function Valuechange ($number)
{
$number=$number+1;
Echo $number . "<br>";
}
Valuechange($myNum);
Echo $myNum;
?>

(3)默认值参数.使用默认的参数值传递方法,函数必须在调用的时候有一个参数.如果没有使用的值,就把默认值传递给函数参数.默认值必须是常量表达式,不是变量,
类成员或者函数调用.
提示:当使用默认参数时,任何默认参数必须放在非默认参数的右侧;否则,可能函数不会按照预期的情况工作.
代码func_default.php


代码如下:

<?php
$myNum=100;
function Valuechange ($number)
{
$number=$number+1;
Echo $number . "<br>";
}
Valuechange($myNum);
Echo $myNum;
?>

(0)

相关推荐

  • php学习之function的用法

    1,申明函数 在PHP中,定义函数的方法同其他编程语言几乎一样.下面是PHP申明函数的语法结构: 复制代码 代码如下: Function function_name($argument1,$argument2,$argument3,......$argumentn) { //函数代码code Return 返回值; } 以上语法结构中,关键字的含义如下. (1)function:用于申明用户自定义函数的关键字. (2)function_name:要创建的函数名称.该名称将在以后被调用时使用.函数

  • Symfony2学习笔记之模板用法详解

    本文实例讲述了Symfony2学习笔记之模板用法.分享给大家供大家参考,具体如下: 我们知道,controller负责处理每一个进入Symfony2应用程序的请求.实际上,controller把大部分的繁重工作都委托给了其它地方,以使代码能够被测试和重用.当一个controller需要生成HTML,CSS或者其他内容时,它把这些工作给了一个模板化引擎. 模板: 一个模板仅仅是一个文本文件,它能生成任意的文本格式(HTML,XML,CSV,LaTex...).最著名的模板类型就是PHP模板了,可以

  • jQuery学习笔记之Ajax用法实例详解

    本文实例讲述了jQuery学习笔记之Ajax用法.分享给大家供大家参考,具体如下: 一.Ajax请求 1.jQuery.ajax(options) 通过 HTTP 请求加载远程数据.jQuery 底层 AJAX 实现.简单易用的高层实现见 .get,.post 等. .ajax()返回其创建的XMLHttpRequest对象.大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求..ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选项见下.

  • Node.js学习之内置模块fs用法示例

    本文实例讲述了Node.js学习之内置模块fs用法.分享给大家供大家参考,具体如下: IDE为VSCode .js内置的fs模块就是文件系统模块,负责读写文件 'use strict' var fs = require('fs'); //异步读取文件(文本)编码格式指定为utf-8 fs.readFile('sample.txt','utf-8',function(error,data){ if(error){ console.log('error'); }else{ console.log(d

  • ES6学习教程之Promise用法详解

    前言 promise用了这么多年了,一直也没有系统整理过.今天整理整理promise的相关东西,感兴趣的可以一起看一看.我尽量用更容易理解的语言来剖析一下promise 我准备分两篇文章来说明一下promise 一篇来理解和使用promise(本篇) 另一篇来从promise使用功能的角度来剖析下promise的源码(下一篇) 1.什么是Promise 我的理解是:实现让我们用同步的方式去写异步代码的一种技术.是异步解决方案的一种. 他可以将多个异步操作进行队列化,让它们可以按照我们的想法去顺序

  • Go语言学习笔记之反射用法详解

    本文实例讲述了Go学习笔记之反射用法.分享给大家供大家参考,具体如下: 一.类型(Type) 反射(reflect)让我们能在运行期探知对象的类型信息和内存结构,这从一定程度上弥(mi)补了静态语言在动态行为上的不足.同时,反射还是实现元编程的重要手段. 和 C 数据结构一样,Go 对象头部并没有类型指针,通过其自身是无法在运行期获知任何类型相关信息的.反射操作所需要的全部信息都源自接口变量.接口变量除存储自身类型外,还会保存实际对象的类型数据. func TypeOf(i interface{

  • python3新特性函数注释Function Annotations用法分析

    本文分析了python3新特性函数注释Function Annotations用法.分享给大家供大家参考,具体如下: Python 3.X新增加了一个特性(Feature),叫作函数注释 Function Annotations 它的用途虽然不是语法级别的硬性要求,但是顾名思义,它可做为函数额外的注释来用. Python中普通的函数定义如下: def func(a, b, c): return a + b + c >>> func(1, 2, 3) 6 添加了函数注释的函数会变成如下形式

  • Android编程学习之抽象类AbsListView用法实例分析

    本文实例讲述了Android编程学习之抽象类AbsListView用法.分享给大家供大家参考,具体如下: 一.继承关系 public abstract class AbsListView extends AdapterView <T extendsAdapter> java.lang.Object          android.view.View                android.view.ViewGroup                       android.widg

  • PHP进阶学习之命名空间基本用法分析

    本文实例讲述了PHP进阶学习之命名空间基本用法.分享给大家供大家参考,具体如下: 前言 命名空间(namespace),在编程语言中,是对作用域的一种特殊的抽象.它表示着一个标识符的可见范围.一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的.这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他命名空间中. 在PHP中也存在命名空间的用法,由它控制可见范围的这个标识符一般指的就是类和函数. 一.PHP命名空间基础 从广义上来

  • JAVA8之函数式编程Function接口用法

    从这章开始,会介绍几个常用的函数式接口工具,首先先来看下这个大家族: 首先从Function接口开始介绍 一. 概述 该接口顾名思义,函数的意思,就像是数学,是给定一个参数然后返回结果.该类方法如下: package java.util.function; import java.util.Objects; @FunctionalInterface public interface Function<T, R> { R apply(T t); default <V> Functio

随机推荐