PHP:定义具有可变参数计数的函数? [复制]

2024-03-13

有没有一种方法可以在 PHP 中定义一个函数,让您定义可变数量的参数?

用我更熟悉的语言来说是这样的:

function myFunction(...rest){ /* rest == array of params */ return rest.length; }

myFunction("foo","bar"); // returns 2;

Thanks!


是的。使用func_num_args() and func_get_arg()获取参数:

<?php
  function dynamic_args() {
      echo "Number of arguments: " . func_num_args() . "<br />";
      for($i = 0 ; $i < func_num_args(); $i++) {
          echo "Argument $i = " . func_get_arg($i) . "<br />";
      }
  }

  dynamic_args("a", "b", "c", "d", "e");
?>

在 PHP 5.6+ 中,您现在可以使用可变参数函数 http://docs.php.net/manual/en/migration56.new-features.php#migration56.new-features.variadics:

<?php
  function dynamic_args(...$args) {
      echo "Number of arguments: " . count($args) . "<br />";
      foreach ($args as $arg) {
          echo $arg . "<br />";
      }
  }

  dynamic_args("a", "b", "c", "d", "e");
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:定义具有可变参数计数的函数? [复制] 的相关文章

  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • Zend Framework Zend_Form 装饰器: 位于按钮元素内部?

    我有一个像这样创建的按钮元素 submit new Zend Form Element Button submit submit gt setLabel My Button submit gt setDecorators array Vie
  • 为什么 PHP 中不允许“传统”类型提示?

    刚刚发现类型提示 http php net manual en language oop5 typehinting phpPHP 中允许 但不适用于整数 字符串 布尔值或浮点数 为什么 PHP 不允许对整数 字符串等类型进行类型提示 从 P
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

    我注意到在示例测试中 这两个类是内置的 功能测试 gt use Tests TestCase 单元测试 gt PHPUnit Framework TestCase 两者有什么区别 在什么情况下您会使用其中一种 PHPUnit Framewo
  • C 中函数参数中的固定数组或指针之间的区别?

    之间有区别吗 void draw line float p0 2 float p1 2 float color 4 和这个 void draw line float p0 float p1 float color in C 项目清单 C 和
  • Laravel 5.4 升级 - 违反完整性约束 - 列不能为空

    奇怪的是 所有这些都在 5 2 中工作 但我不知道可以改变什么来实现这一点 下面是错误和正在插入的数组 SQLSTATE 23000 Integrity constraint violation 1048 Column gender can
  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • 如何处理 AJAX 请求中的会话超时

    我相信你们都熟悉使用 AJAX 的投票系统 嗯 看那边 我有类似的东西 当你投票赞成或反对时 它使用 AJAX 从 votes php 请求新值 问题是我正在使用会话来获取用户 ID 因此一个人只能投票一次 如果他们在页面上坐了一个小时然后
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • wordpress - 像 stackoverflow 中那样内嵌 ajax 注释

    我有一个 WordPress 博客 希望为人们提供与 stackoverflow 中添加评论相同的用户体验 有很多评论 ajax 插件 但我找不到一个可以使用的插件 它允许您在主页上内联 进入并添加评论 而无需先深入到单独的单个帖子页面 任
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • 如何确保在 PHP 的“foreach”循环中重置该值?

    我正在写一个简单的 PHP 页面和一些foreach使用了循环 以下是脚本 arrs array a b c foreach arrs as arr if substr arr 0 1 b echo This is b End of fir
  • HTML 代码中的 PHP [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我用 HTML 代码编写了 PHP div div 但这出现在输出页面中 else print 我怎样才能让PHP执行 你的文件有一个 p
  • 接口中的构造方法

    接口中的构造方法不好吗 为什么人们认为有人想要实例化接口 我们想要做的是强制实现者实现构造函数 就像其他接口方法一样 接口就像一个合同 假设我有一个接口 Queue 并且我想确保实现者创建一个带有一个参数的构造函数 该构造函数创建一个单例队
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28

随机推荐

  • 如何更新 vueJs 数组列表的特定行?

    有没有一种正确的方法可以刷新 vueJS 数组列表中的某一特定行而不重新加载所有数据 在本例中 它是一个电话列表
  • 为什么 AngularJS $http success/error 方法被弃用?从 v1.6 中删除?

    AngularJS 文档有一个弃用通知 http success and error方法 这个抽象被从库中删除有什么具体原因吗 问题是 success and error方法是不可链接因为他们忽略返回值 这给熟悉的人带来了问题chainin
  • 表单以 windows-1252 编码提交

    I am getting the following warning in the JS tab of the Firefox web console Ctrl Shift K 表单以 windows 1252 编码提交 无法编码 所有 U
  • 带选项的 Python 装饰器

    我有一个模块 它的函数原型与线程类的原型类似 def do fn argtuple kwargdict priority 0 block False timeout 0 callback None daemon False do stuff
  • 如何正确编写异步方法?

    所以我试图学习在 C 中使用 async 和 await 的基础知识 但我不确定我在这里做错了什么 我期待以下输出 Calling DoDownload DoDownload done output here 但我没有得到下载的输出 我也期
  • 使用 Ionic 框架生成 PDF 文件

    Ionic 框架是否有任何插件可以使用 html 内容生成 pdf 文件 基本上 我需要使用从 Ionic 移动应用程序传递的值和一些 css 样式创建一个 html 然后将其转换为 pdf 文件 该文件可以保存在设备 Android 设备
  • 多人游戏同步

    我实现了服务器 客户端架构 其中所有状态更改都发送到函数 经过验证并广播到所有连接的客户端 这工作得相当好 但系统目前无法维持游戏客户端实例之间的同步 如果服务器和特定客户端之间恰好有 5 秒的延迟 那么他将在其他客户端之后 5 秒收到状态
  • 在 MATLAB 中从一维数组生成二维数组

    有谁知道是否有一种方法可以从 1D 数组生成 2D 数组 其中 2D 中的行是通过重复 1D 数组中的相应元素生成的 I e 1D array 2D array 1 1 1 1 1 1 2 2 2 2 2 2 3 gt 3 3 3 3 3
  • 是否可以对分块数据使用 DictVectorizer?

    我正在尝试使用 python pandas csv reader 导入分块数据 以克服内存错误 并使用 DicVectorizer 将字符串转换为浮点数据类型 但我可以看到两个不同的字符串在转换后具有相同的代码 我们是否有替代 选项来对分块
  • 如果父节点值匹配,则将相应父节点的所有子节点合并到第一个父节点下

    嗨 我的输入是这样的
  • 如何在 Linq To SQL 中为连接设置 ARITHABORT ON

    默认情况下 对于 OLEDB 连接 SQL 连接选项 ARITHABORT 为 OFF 我假设 Linq To SQL 正在使用该连接 不过我需要它处于开启状态 原因是我的数据库包含一些索引视图 如果连接没有启用 ARITHABORT 则对
  • 从一个原始整数列表生成打乱整数列表的算法

    有一个 ArrayList 为x unique Integers 我需要将它们随机分配y数组列表z尺寸 请记住 x y z是变量值 结果数组中的数字不能重复 结果列表不能包含相同的数字 订购它们必须不同 如果计算结果数组中的出现次数 则原始
  • 来自字符串的 PHP 变量值

    如何从字符串变量中获取值 Member Student 3600 selectedItem Member Student price selectedItem print r price prints Member Student inst
  • Python Sympy 求解返回列表与字典

    我正在使用 sympy 及其求解函数 但我注意到它有时返回列表中的字典 但在其他情况下仅返回字典 没有列表 from sympy import x y symbols x y q 16 x 0 5 y 0 5 solve diff q x
  • 如何使 Autodesk Forge Viewer 支持 .rcp 文件

    我有一个 Web 项目 React 使用 Autodesk Forge Viewer 显示我们的企业 BIM360 帐户中的 3D 和 2D 模型 自去年以来 在 BIM360 中运行的同一查看器现在支持 rcp文件 我们也希望允许它 但到
  • 下载文件时文件名中出现空格问题

    以下 java 代码用于通过 Web 应用程序下载请求日志文件 protected HttpServletResponse response response setContentType application octet stream
  • W3C HTML 验证器中的 Angular2 语法

    Angular 1 x 允许将元素放入 HTML 中 而这在当时并不为人所知W3C HTML 验证器 https validator w3 org nu 解决方法是添加data 前缀并写入例如data ng repeat代替ng repea
  • 从 Java 中的 JSON 数组对象获取字符串值

    编辑 我实际上找到了答案 我无法关闭问题 因为我是新人 我能够使用 Array getString i 返回所需的字符串值 感谢您的所有帮助 我有这样的 JSON List example1 example2 example3 exampl
  • 如何使 xtick 与 Python matplotlib 中的 xlim 不同?

    我想用 Python 制作一年中每天的动态图 X轴的axes将是12个月 这个过程在Matplotlib中将是一个barh 代码如下 import random import datetime import matplotlib pyplo
  • PHP:定义具有可变参数计数的函数? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以在 PHP 中定义一个函数 让您定义可变数量的参数 用我更熟悉的语言来说是这样的 function myFunction rest rest array of params return res