速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
作者:webabcd
介绍
速战速决 之 PHP
- 函数基础
- 函数参数
- 函数返回值
- 可变函数
- 匿名函数
- 闭包函数
- 回调函数
示例
1、函数的相关知识点 1(基础)
function/function1.php
<span style="color: #000000;">php </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 函数的相关知识点 1(基础) </span><span style="color: #008000;">*/</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 可以在相关的 function 声明语句之前调用该函数</span> <span style="color: #000000;">f1(); </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> f1() { </span><span style="color: #0000ff;">echo</span> "f1"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; } </span><span style="color: #008000;">//</span><span style="color: #008000;"> 这里调用 f2() 就错误了 // f2();</span> <span style="color: #800080;">$b</span> = <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$b</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">function</span> f2() <span style="color: #008000;">//</span><span style="color: #008000;"> 条件成立才会声明此函数</span> <span style="color: #000000;"> { </span><span style="color: #0000ff;">echo</span> "f2"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; } } f2(); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 这里调用 f4() 就错误了(因为 f4 的声明是在 f3 的内部,所以要先调用 f3 才能再调用 f4) // f4();</span> <span style="color: #000000;">f3(); f4(); </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> f3() { </span><span style="color: #0000ff;">echo</span> "f3"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> f4() { </span><span style="color: #0000ff;">echo</span> "f4"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; } }</span>
2、函数的相关知识点 2(函数参数)
function/function2.php
<span style="color: #000000;">php </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 函数的相关知识点 2(函数参数) </span><span style="color: #008000;">*/</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 带参数的函数</span> f1("webabcd"<span style="color: #000000;">); </span><span style="color: #0000ff;">function</span> f1(<span style="color: #800080;">$name</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">echo</span> "hello " . <span style="color: #800080;">$name</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: hello webabcd</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; } </span><span style="color: #008000;">//</span><span style="color: #008000;"> 带参数的函数(参数是引用类型)</span> <span style="color: #800080;">$name</span> = "webabcd"<span style="color: #000000;">; f2(</span><span style="color: #800080;">$name</span><span style="color: #000000;">); </span><span style="color: #0000ff;">function</span> f2(&<span style="color: #800080;">$n</span>) <span style="color: #008000;">//</span><span style="color: #008000;"> 参数是引用类型</span> <span style="color: #000000;">{ </span><span style="color: #0000ff;">echo</span> "hello " . <span style="color: #800080;">$n</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: hello webabcd</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; </span><span style="color: #800080;">$n</span> = "wanglei"; <span style="color: #008000;">//</span><span style="color: #008000;"> $n 是引用类型,其与全局变量 $name 指向的内容是一样的</span> <span style="color: #000000;">} </span><span style="color: #0000ff;">echo</span> "hello " . <span style="color: #800080;">$name</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: hello wanglei</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;"> 带参数的函数(参数可以指定默认值)</span> f3("hello "); <span style="color: #008000;">//</span><span style="color: #008000;"> output: hello webabcd</span> f3("hello ", "wanglei"); <span style="color: #008000;">//</span><span style="color: #008000;"> output: hello wanglei</span> <span style="color: #0000ff;">function</span> f3(<span style="color: #800080;">$p1</span>, <span style="color: #800080;">$p2</span> = "webabcd") <span style="color: #008000;">//</span><span style="color: #008000;"> 参数的默认值只能是常量,不能是表达式</span> <span style="color: #000000;">{ </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$p1</span> . <span style="color: #800080;">$p2</span><span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; }</span>
3、函数的相关知识点 3(函数返回值)
function/function3.php
<span style="color: #000000;">php </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 函数的相关知识点 3(函数返回值) </span><span style="color: #008000;">*/</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 带返回值的函数</span> <span style="color: #800080;">$result1</span> = f1("webabcd"<span style="color: #000000;">); </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$result1</span><span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; </span><span style="color: #0000ff;">function</span> f1(<span style="color: #800080;">$name</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">return</span> "hello " . <span style="color: #800080;">$name</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: hello webabcd</span> <span style="color: #000000;">} </span><span style="color: #008000;">//</span><span style="color: #008000;"> 从函数返回以一个引用(函数的声明和调用都要加 &)</span> <span style="color: #800080;">$result2</span> = &<span style="color: #000000;">f2(); </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$result2</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: 1</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; </span><span style="color: #800080;">$result2</span> = 100; <span style="color: #008000;">//</span><span style="color: #008000;"> $result2 是个引用,指向 $i 所指向的内容,所以此句之后 $i 的值为 100</span> <span style="color: #800080;">$result3</span> = &<span style="color: #000000;">f2(); </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$result3</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: 101</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; </span><span style="color: #0000ff;">function</span> &f2() <span style="color: #008000;">//</span><span style="color: #008000;"> 此函数会返回一个引用(函数的声明和调用都要加 &)</span> <span style="color: #000000;">{ </span><span style="color: #0000ff;">static</span> <span style="color: #800080;">$i</span> = 0<span style="color: #000000;">; </span><span style="color: #800080;">$i</span> ++<span style="color: #000000;">; </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$i</span><span style="color: #000000;">; }</span>
4、函数的相关知识点 4(可变函数,匿名函数,闭包函数)
function/function4.php
<span style="color: #000000;">php </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 函数的相关知识点 4(可变函数,匿名函数,闭包函数) </span><span style="color: #008000;">*/</span> <span style="color: #008000;">//</span><span style="color: #008000;"> variable function(可变函数),将变量的值作为函数名</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> f1() { </span><span style="color: #0000ff;">echo</span> "f1"; <span style="color: #008000;">//</span><span style="color: #008000;"> output: f1</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; } </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> f2() { </span><span style="color: #0000ff;">echo</span> "f2"; <span style="color: #008000;">//</span><span style="color: #008000;"> output: f2</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; } </span><span style="color: #800080;">$func</span> = 'f1'<span style="color: #000000;">; </span><span style="color: #800080;">$func</span><span style="color: #000000;">(); </span><span style="color: #800080;">$func</span> = 'f2'<span style="color: #000000;">; </span><span style="color: #800080;">$func</span><span style="color: #000000;">(); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 匿名函数</span> <span style="color: #0000ff;">echo</span> <span style="color: #008080;">preg_replace_callback</span> <span style="color: #008000;">//</span><span style="color: #008000;"> output: userName</span> <span style="color: #000000;">( </span>'~-([a-z])~', <span style="color: #0000ff;">function</span> (<span style="color: #800080;">$match</span>) <span style="color: #008000;">//</span><span style="color: #008000;"> 匿名函数</span> <span style="color: #000000;"> { </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">strtoupper</span>(<span style="color: #800080;">$match</span>[1<span style="color: #000000;">]); }</span>, 'user-name'<span style="color: #000000;"> ); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 闭包函数 // $f3("webabcd"); // 这是错误的,对于闭包函数来说,调用时要在声明语句的后面</span> <span style="color: #800080;">$f3</span> = <span style="color: #0000ff;">function</span>(<span style="color: #800080;">$name</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">echo</span> "hello " . <span style="color: #800080;">$name</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: hello webabcd</span> <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">; }; </span><span style="color: #008000;">//</span><span style="color: #008000;"> 别忘了闭包函数的“;”</span> <span style="color: #800080;">$f3</span>("webabcd");
5、函数的相关知识点 5(回调函数)
function/function5.php
<span style="color: #000000;">php </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 函数的相关知识点 5(回调函数) </span><span style="color: #008000;">*/</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 用于演示如何回调(callback)函数</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> myCallbackFunction() { </span><span style="color: #0000ff;">return</span> 'myCallbackFunction'<span style="color: #000000;">; } </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> MyClass1 { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 用于演示如何回调(callback)实例方法</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> myMethod1() { </span><span style="color: #0000ff;">echo</span> 'MyClass1 myMethod1'<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> '<br>'<span style="color: #000000;">; } </span><span style="color: #008000;">//</span><span style="color: #008000;"> 用于演示如何回调(callback)类方法</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> myMethod2() { </span><span style="color: #0000ff;">echo</span> 'MyClass1 myMethod2'<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> '<br>'<span style="color: #000000;">; } } </span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 call_user_func 调用指定的函数</span> <span style="color: #0000ff;">echo</span> <span style="color: #008080;">call_user_func</span>('myCallbackFunction'<span style="color: #000000;">); </span><span style="color: #0000ff;">echo</span> '<br>'<span style="color: #000000;">; </span><span style="color: #800080;">$obj1</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MyClass1(); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 call_user_func 调用指定对象的指定方法</span> <span style="color: #008080;">call_user_func</span>(<span style="color: #0000ff;">array</span>(<span style="color: #800080;">$obj1</span>, 'myMethod1'<span style="color: #000000;">)); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 call_user_func 调用指类的类方法</span> <span style="color: #008080;">call_user_func</span>(<span style="color: #0000ff;">array</span>('MyClass1', 'myMethod2'<span style="color: #000000;">)); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 call_user_func 调用指类的类方法(PHP 5.2.3 或以上)</span> <span style="color: #008080;">call_user_func</span>('MyClass1::myMethod2');
OK
[源码下载]
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
3 몇 주 전ByDDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
2 몇 주 전ByDDD
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
