PHP 5.3 之前的数组中的闭包对象

2024-03-13

我知道可以使用 PHP 5.3(匿名函数)执行以下操作,但是在较旧的 PHP 版本(5.3 之前)中是否有类似的替代方法?

  $exampleArray = array(  
    'func' => function() {  
      echo 'this is an example';  
      }

是否可以使用 __call 或首先将函数类型转换为(对象)来做到这一点?另外,我尝试通过给函数命名来使其非匿名,但这似乎不起作用。


如果你想在 PHP create_function功能。还Here http://www.php.net/manual/en/language.pseudo-types.php#language.types.callback是有关回调的有趣信息(可能有用)。

使用示例 create_function

# This (function in other variable is only for cleaner code)
$func = create_function('', "echo 'This is example from anoymus function';");

$exampleArray = array(
  'func' => $func
  );

但是你可以用上面的代码做同样的事情,用另一种方式:

# Create some function
function func()
{
   # Do something
   echo 'This is example';
}
# Save function name
$func = 'func';

上面的代码创建了执行某些操作的函数,然后我们将函数名称存储在变量中(可以作为参数传递等)。

当我们只知道函数名称时调用函数:

第一种方式

$func();

选择

call_user_func($func);

连接上面所有内容的示例:

function primitiveArrayStep(&$array, $function)
{
    # For loop, foreach can also be used here
    for($i = 0; $i < count($array);$i++)
    {
         # Check if $function is callable             
          if( is_callable($function) )
          {
               # Call function
           $function(&$array[$i]);
          }
          else
          {
               # If not, do something here
          }

    }    
}

以及上述函数的使用:

$array = array('a', 'b', 'c');

$myFunction = create_function('&$e', '$e = $e . " and i was here";');

primitiveArrayStep($array, $myFunction);

echo '<pre>';
var_dump($array);

Returns:

array(3) {
  [0]=>
  string(16) "a and i was here"
  [1]=>
  string(16) "b and i was here"
  [2]=>
  string(16) "c and i was here"
}

Links:

  • 回调 http://php.net/manual/en/memcached.callbacks.php
  • create_function() http://php.net/manual/en/function.create-function.php
  • call_user_func() http://php.net/manual/en/function.call-user-func.php
  • is_callable() http://php.net/manual/en/function.is-callable.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 5.3 之前的数组中的闭包对象 的相关文章

  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • 如何将 JSON 数据从 Android 发送到 php url?

    我想将登录信息从我的应用程序发送到 php url 因为这我的应用程序将崩溃 任何人都可以帮助我解决这个问题 这是我的服务器登录方法 我想将数据发送到此登录方法 Method public method login Parameters 3
  • 我应该在 PHP 代码中使用断言吗?

    一位同事添加了assert http php net assert在我们的库中 在我本来会使用 if 语句并引发异常的地方执行几次命令 在此之前我什至从未听说过断言 以下是他如何使用它的示例 assert isset this gt rec
  • jquery ajax加载后丢失CSS

    大家知道如何解决 load Ajax 请求后的 css 问题吗 例如 如果我想从网页加载 DIV 在我的 Ajax 请求之后 container load path to div div id 我丢失了与该 div 关联的所有 css 和脚
  • 如何使用 php 从字符串中提取日期

    我需要从字符串中提取日期 下面是我的代码和字符串 str Updated status to Masters Software Engineering Enrolled Documents to Send on 03 06 2014 14
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • laravel cron 使用错误

    Laravel 错误 cron 使用 usr bin php home sitevk artisan 计划 运行 1 gt gt dev null 2 gt 1 应用 控制台 内核 use Illuminate Console Schedu
  • 使用控制器通过 codeigniter 处理返回的自定义 css 和 javascript 文件

    我正在开发一个 php codeigniter 项目 我正在考虑创建一个专门用于处理返回自定义 css 和 javascript 文件的控制器 在之前的项目中 我在视图文件的标头中包含了外部 CSS 和 JS 文件 但它们本质上必须是静态的
  • 这是依赖注入吗?这是一种不好的做法吗?

    我有一个小框架 我是这样编码的 我不确定这是否称为依赖注入 我不知道它是否像设计模式 我也不知道并且想知道是否通过 this因为 param 是一种不好的做法 看看这个 不是一个有效的示例 只是将这些代码写入浏览器中以供解释 This is
  • 将具有值的产品属性添加到 Woocommerce 中的产品

    我正在使用此代码添加自定义属性 attributes array array name gt Size options gt array S L XL XXL position gt 1 visible gt 1 variation gt
  • 将 PayPal 返回 URL 设置为 localhost

    我正在尝试集成 Paypal 并且在此过程中使用沙箱 我按照以下问题中接受的答案的步骤进行操作 设置 PayPal 返回 URL 并使其自动返回 https stackoverflow com questions 7642895 setti
  • 优化数据可视化 Web 应用程序的性能

    我正在重写 3 年前编写的数据可视化网络工具 从那时起 浏览器的 JavaScript 引擎变得更快 所以我正在考虑将部分工作从服务器转移到客户端 在页面上 数据在表格和地图 或图表 中可视化 它使用相同的数据 但以不同的方式 因此准备显示
  • PHP括号少IF条件不接受多个语句

    我从来都不喜欢控制结构中的括号 直到今天我才意识到它如何只接受括号内的一条语句而不是 if 条件 如果我有多个语句 它会抛出语法错误 这是 PHP 的工作方式还是我的 IDE 有问题 显然错误很明显 但我只是想确保这是正常的 如果您有任何其
  • 为什么 PHPUnit 将一些右大括号显示为未被覆盖?

    我正在使用 PHPUnit 3 6 7 PHP CodeCoverage 1 1 1 和 Xdebug 2 1 2 当我让 PHPUnit 将代码覆盖率统计信息写入 clover 样式的 XML 文件时 它偶尔会显示一个右花括号 表示测试未
  • 如何在之前的 Facebook 身份验证后自动安全地让用户登录?

    用户抱怨他们必须过于频繁地登录 如果身份验证完全基于 Facebook OAuth 那么用户如何在下次访问该页面时自动登录 用户流程示例 用户点击 使用 Facebook 登录 用户通过 Facebook 进行身份验证并被重定向回网站 用户
  • Apache 虚拟主机始终重定向到 /dashboard

    我遇到的问题似乎是一个常见问题 但我找到的任何解决方案似乎都不适合我的情况 我正在尝试设置一个虚拟主机 以便我可以通过 mytestdomain local 访问我的 Laravel 安装的公共文件 但是当我在 google chrome
  • 警告:mysqli_query() 期望参数 1 为 mysqli,在 中给出 null

    我正在尝试构建一个简单的自定义 CMS 但出现错误 警告 mysqli query 期望参数 1 为 MySQLi 在中给出的为 null 为什么我会收到此错误 我的所有代码都已经是 MySQLi 并且我使用两个参数 而不是一个 con m
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • PHP:是否可以从文件内容(字符串)创建 SplFileObject 对象?

    例如 contents file get contents image png 是否可以从 contents 创建 SplFileObject 对象 Thanks php 有一些特殊的流包装器 http www php net manual

随机推荐

  • JpaRepository 与枚举:findAllByOfferState_ACTIVE。没有这样的元素异常

    我想获得所有报价 其中 OfferState 等于 ACTIVE 是否可以仅使用方法名称使用 Spring Data 或者我必须使用 Query Repository public interface OfferRepository ext
  • MySQL - 如何规范化包含分隔符分隔 ID 的列

    我正在尝试规范化一个表 该表是以前的开发人员设计的 其中有一列包含管道分隔的 ID 这些 ID 链接到同一个表中的其他行 客户表 id aliases VARCHAR 1 4 58 76 2 3 4 1 58 76 58 1 4 76 76
  • 在集合中的项目数非常大的 WHERE 子句中使用“IN”

    我遇到一种情况 我需要对一组非常大的行进行更新 我只能通过它们的 ID 来识别这些行 因为目标记录是由用户选择的 除了用户的记录集之外没有任何共同点 想修改 所有这些记录上的相同属性都在更新 因此我想进行一次 UPDATE 调用 这是不好的
  • HOG 人体检测器:背景减除图像的误报检测

    我正在开展一个需要检测场景中的人员的项目 最初在原始帧上运行 HOG 检测器后 所有帧上的特定背景对象都被检测为人 从而产生 3021 个误报检测 因此 我采取了合理的步骤 通过对所有帧应用背景减法器 BackgroundSubtracto
  • Rascal:创建 AST 时 boolcollectBindings 的作用是什么?

    我有一个关于在 rascal 中创建 AST 的问题 我通常会执行以下操作 model createM3FromEclipseProject project testproject decls createAstsFromEclipsePr
  • PHP preg_match 长度限制 3276

    看来 PHP 的preg match在某些情况下 匹配重复字符的字符数限制为 3276 i e s 0 3276 有效 但是 s 0 3277 才不是 它似乎并不总是适用 因为 0 3277 works 我在 PHP 文档或错误跟踪器中找不
  • 在距离 10 的圆内画一个圆

    我最近开始使用 Android 我需要在圆内画一个圆 就像下面的图片一样 距离 10 如果你看到下面的照片 我需要画一个像下面这样的具有两个直径的圆 但我不这样做不需要照片上当前存在的任何图标 只是具有两个直径的圆中的圆 我只想绘制圆圈和两
  • 如何更改Android中全息主题的菜单项文本颜色?

    我在我的应用程序中使用 Theme Holo 我使用以下 Style xml 自定义了我的主题
  • mysqli 或 PDO - 优缺点是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 sudo 执行 bash 函数?

    我尝试导出该函数 然后使用 bash 执行它 但这不起作用 export f my func sudo bash c my func bash my func command not found 如果我尝试在不使用 sudo 的情况下使用
  • 组合 2 个列表的元素

    假设我们有两个列表 val l1 List a b c val l2 List 1 2 3 我想要的是 List a1 b2 c3 即 将 l1 的第 n 个元素与 l2 的第 n 个元素相加 实现它的一种方法是 l1 zip l2 map
  • Runtime.exec().waitFor() 实际上并未等待

    我有一些使用 Runtime exec 运行外部 jar 作为 IzPack 安装程序构建 的代码 如果我从命令行运行这个 external jar 如下所示 java jar external jar 然后 在应用程序完成之前 命令提示符
  • XCode:添加构建阶段被禁用

    我想添加崩溃解决方案 https www crashlytics com我的 iOS 项目需要添加插件Run script阶段 但无论我做什么 为了添加构建阶段所有选项均被禁用 我选择目标 gt 构建阶段 我有合适的方案 我的项目运行良好
  • 操作系统如何在屏幕上绘制窗口?

    经过多年的计算机使用和编程 我意识到实际在屏幕上绘制的软件堆栈对我来说基本上是一个谜 我曾研究过一些嵌入式 LCD GUI 应用程序 我认为这为简化堆栈提供了一些线索 但对于 Windows 操作系统之类的东西的整体情况仍然模糊 据我所知
  • Spring WebClient:SSLEngine 已关闭

    我们使用 Spring boot 版本 2 3 1 也使用 WebClient 我的网络客户端配置 private val client WebClient init val sslCtx SslContextBuilder forClie
  • Octave无法安装图像采集包

    根据相关的维基页面 http wiki octave org Image acquisition package http wiki octave org Image acquisition package 安装您输入的图像采集包 pkg
  • Git 和 GitHub Desktop 是完全独立的应用程序吗?

    几个月前 我在 Windows 7 计算机上安装了适用于 Windows 的 GitHub Desktop 版本 2 8 2 x64 我使用 GitHub Desktop 在本地计算机和 GitHub 云之间管理用 LaTeX 编写的论文版
  • 如何在 networkX 图中弯曲边缘

    I had previous asked this question https stackoverflow com questions 63918432 curved edges in networkx on how to achieve
  • 在 OS X 10.5 上使用 readline 的 rl_insert_text

    因此 我尝试使用 readline 将一些默认文本填充到用户输入中 但无法使其在 OSX 10 5 上工作 rl insert text ex c gcc o rl insert text ex rl insert text ex c lr
  • PHP 5.3 之前的数组中的闭包对象

    我知道可以使用 PHP 5 3 匿名函数 执行以下操作 但是在较旧的 PHP 版本 5 3 之前 中是否有类似的替代方法 exampleArray array func gt function echo this is an example