首页 > 编程语言 >PHP自定义函数官方文档

PHP自定义函数官方文档

时间:2022-12-11 20:33:53浏览次数:38  
标签:function foo bar 函数 自定义 文档 PHP 定义


一个函数可由以下的语法来定义:


Example #1 展示函数用途的伪代码



​​<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>​​


任何有效的 PHP 代码都有可能出现在函数内部,甚至包括其它函数和​​类​​定义。

函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母或下划线打头,后面跟字母,数字或下划线。可以用正则表达式表示为:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*


Tip



函数无需在调用之前被定义,除非是下面两个例子中函数是有条件被定义时。

当一个函数是有条件被定义时,必须在调用函数之前定义。


Example #2 有条件的函数



​​<?php

$makefoo = true;

/* 不能在此处调用foo()函数,
因为它还不存在,但可以调用bar()函数。*/

bar();

if ($makefoo) {
function foo()
{
echo "I don't exist until program execution reaches me.\n";
}
}

/* 现在可以安全调用函数 foo()了,
因为 $makefoo 值为真 */

if ($makefoo) foo();

function bar()
{
echo "I exist immediately upon program start.\n";
}

?>​​

Example #3 函数中的函数



​​<?php
function foo()
{
function bar()
{
echo "I don't exist until foo() is called.\n";
}
}

/* 现在还不能调用bar()函数,因为它还不存在 */

foo();

/* 现在可以调用bar()函数了,因为foo()函数
的执行使得bar()函数变为已定义的函数 */

bar();

?>​​

PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。

PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。

Note: 函数名是大小写无关的,不过在调用函数的时候,使用其在定义时相同的形式是个好习惯。


在 PHP 中可以调用递归函数。


Example #4 递归函数



​​<?php
function recursion($a)
{
if ($a < 20) {
echo "$a\n";
recursion($a + 1);
}
}
?>​​

Note: 但是要避免递归函数/方法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。 无限递归可视为编程错误。

标签:function,foo,bar,函数,自定义,文档,PHP,定义
From: https://blog.51cto.com/u_15890522/5928638

相关文章

  • php的垃圾回收机制
    在平时php-fpm的时候,可能很少人注意php的变量回收,但是到swoole常驻内存开发后,就不得不重视这个了,因为在常驻内存下,如果不了解变量回收机制,可能就会出现内存泄露的问题......
  • 开发人员必备 PHP强大的网络功能介绍
    本人的文,原文发表在​​​http://publish.itpub.net/a2010/1220/1140/000001140171.shtml​​​上PHP已经是十分强大的脚本语言了,这个已不容置......
  • php里ezpdo orm框架初探
      java里有hibernate,php里有啥,这一直困绕着大家.最近发现了一个还可以的php的orm框架ezpdo,网站是​​​http://www.ezpdo.net​​​,有手册......
  • 攻防世界-easyphp(前导数字字符串、数字字符串、数字弱类型比较)
    一道php代码审计题,利用了字符与数字弱类型比较的漏洞。 一、基础知识数字字符串形如数字形式的字符串叫做数字字符串,例如:'123456','1e56112'(科学计数法),'1......
  • Vue3忽略自定义模板组件提示
    为了在Vue应用程序中使用自定义元素库,必须修改应用程序以定义自定义元素和通知Vue编译器在编译过程中忽略哪些元素。根据同一页面,这可以通过修改Vue实例的配置来实......
  • 小程序自定义组件和 npm包的使用
    自定义组件创建自定义组件在根目录下创建components文件夹下创建自定义的组件引用自定义组件//在页面的.json文件中,引入组件{  "usingComponents":{ ......
  • 自动生成接口文档
    自动生成接口文档目录自动生成接口文档1、安装依赖2、设置接口文档访问路径3、文档描述说明的定义位置restframework可以自动帮助生成接口文档接口文档以网页的方式呈......
  • 使用swagger生成接口文档
    1、安装goget-ugithub.com/swaggo/swag/cmd/swaggoget-ugithub.com/swaggo/gin-swaggergoget-ugithub.com/swaggo/filesgoget-ugithub.com/alecthomas/t......
  • 什么是CGI、FastCGI、PHP-CGI、PHP…
    什么是CGICGI全称是“公共网关接口”(CommonGatewayInterface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI......
  • 【ASP.NET Core】MVC控制器的各种自定义:IActionHttpMethodProvider 接口
    IActionHttpMethodProvider接口的结构很简单,实现该接口只要实现一个属性即可——HttpMethods。该属性是一个字符串序列。这啥意思呢?这个字符串序列代表的就是受支持的HT......