用于取消引用函数结果的 PHP 语法

2023-11-21

背景

在我经常使用的所有其他编程语言中,对函数的返回值进行操作很简单,而无需声明新变量来保存函数结果。

然而,在 PHP 中,这似乎并不那么简单:

示例1(函数结果是一个数组)

<?php 
function foobar(){
    return preg_split('/\s+/', 'zero one two three four five');
}

// can php say "zero"?

/// print( foobar()[0] ); /// <-- nope
/// print( &foobar()[0] );     /// <-- nope
/// print( &foobar()->[0] );     /// <-- nope
/// print( "${foobar()}[0]" );    /// <-- nope
?>

示例2(函数结果是一个对象)

<?php    
function zoobar(){
  // NOTE: casting (object) Array() has other problems in PHP
  // see e.g., http://stackoverflow.com/questions/1869812
  $vout   = (object) Array('0'=>'zero','fname'=>'homer','lname'=>'simpson',);
  return $vout;
}

//  can php say "zero"?       
//  print zoobar()->0;         //  <- nope (parse error)      
//  print zoobar()->{0};       //  <- nope                    
//  print zoobar()->{'0'};     //  <- nope                    
//  $vtemp = zoobar();         //  does using a variable help?
//  print $vtemp->{0};         //  <- nope     

PHP 无法访问函数的数组结果。有些人称这是一个问题,有些人则认为这是语言的设计方式。所以 PHP 让你创建不必要的变量只是为了提取你需要的数据。

所以你需要做。

$var = foobar();
print($var[0]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于取消引用函数结果的 PHP 语法 的相关文章

  • 仅当用户打印时如何重定向到另一个页面

    我一直在尝试找到一种在用户实际打印时重定向到另一个页面的方法 也就是说 只有当他们从打印时打开的选项卡中单击该打印按钮时 我才想重定向 我不想要这种方法 function myFunction window print window loc
  • 为数据库生成随机 ID

    我对一个项目有一个要求 我需要生成唯一的 ID ID 必须大写 我无法检查数据库以查看 ID 是否已被使用过 我们预计每个月都会有数百万条记录添加到数据库中 我在这里尝试过解决方案 PHP 如何生成随机的 唯一的字母数字字符串 https
  • 从 PHP 使用 linux 'dialog' 命令

    我正在尝试编写一个帮助程序脚本 用于在服务器上执行各种管理任务 这些任务只能从命令行完成 并尝试使用 dialog 命令来显示消息框 输入 密码提示等 但是 需要这项任务要求我用 PHP 处理数据 我在让对话框命令以这种方式工作时遇到问题
  • 在 WordPress 中挂钩 AJAX

    我一直在深入研究 Javascript 和 AJAX 的世界 我非常接近 但由于某种原因 我认为我没有正确地连接到 wordpress ajax 函数 我已经仔细阅读了文档和这个 认为 99 都在那里 这个应用程序的作用是有一个项目列表 每
  • 传递表单变量的安全方式

    我正在为我的 WordPress 主题构建联系表单 我希望能够从后端输入接收者地址 目前我正在传递带有隐藏输入字段的变量
  • shell中如何从数组中随机选择一个项目

    我正在 Shell 脚本中创建一个机器人 Array with expressions expressions Ploink Poink I Need Oil Some Bytes are Missing Poink Poink Piiii
  • parse_str():jwage/purl 中不推荐调用不带结果参数的 parse_str()

    public function postIndex url new Url https www dropbox com 1 oauth2 authorize url gt query gt setData response type gt
  • 将延期交货库存状态添加到 Woocommerce 可变产品下拉列表中

    我想在下拉菜单中显示可变产品的库存状态 包括 缺货 因为我网站上的大多数产品都缺货 而不是 缺货 我已经尝试过答案如何将变体库存状态添加到 Woocommerce 产品变体下拉列表中 https stackoverflow com ques
  • 如何更改数组键从 1 而不是 0 开始[重复]

    这个问题在这里已经有答案了 我在某个数组中有值 我想重新索引整个数组 以便第一个值键应该是 1 而不是零 即 默认情况下 PHP 中的数组键从 0 开始 即0 gt a 1 gt b 我想重新索引整个数组以从 key 1 开始 即1 gt
  • 结构体如何存储在内存中?

    我有一个struct iof header在我的代码中 我确定它的宽度是 24 字节 我执行 sizeof iof header 它返回 32 字节宽 问题1为什么是 32 字节宽而不是 24 字节宽 问题2包括其成员在内 结构体如何存储在
  • 总结二维数组

    鉴于我当前的程序 我希望它在用户输入所有值后计算每列和每行的总和 我当前的代码似乎只是将数组的值加倍 这不是我想要做的 例如 如果用户输入具有以下值 1 2 3 2 3 4 3 4 5 的 3x3 矩阵 则看起来就像我在下面的程序中对其进行
  • JSON 对象数组转 Java POJO

    将此 JSON 对象转换为 java 中的类 您的 POJO 类中的映射将如何 ownerName Robert pets name Kitty name Rex name Jake This kind of question is ver
  • PHP通知和警告的区别

    当编写代码错误时 可能会出现警告和通知 我知道错误背后的想法 我想警告是为了通知您可能导致错误的事情 但通知不是完全相同吗 我认为通知并不是某件事做得正确的消息 这让我有点困惑 任何人都可以区分这两者之间的区别以及应该如何处理这些消息 通知
  • Haskell 点运算符

    我尝试在 Haskell 中开发一个简单的平均函数 这似乎有效 lst 1 3 x fromIntegral sum lst y fromIntegral length lst z x y 但是为什么下面的版本不行呢 lst 1 3 x f
  • 如何只允许从我的 iOS 应用程序访问我的 MySQL 数据库? (使用webapp作为数据库的网关)

    我的 iOS 应用程序需要连接到 mysql 服务器 为了实现这一目标 我想创建一个 Web 应用程序 充当客户端应用程序和服务器端数据库之间的中间人 我担心的是 有人可以简单地找出我的应用程序使用的 URL 并传递他们自己的 URL 参数
  • PHP:如何使用 nl2br() 和 HTML Purifier 保持换行?

    Issue 使用时HTML 净化器 http htmlpurifier org 为了处理用户输入的内容 换行符不会被转换为 br tags 考虑以下用户输入的内容 Lorem ipsum dolor sit amet This is ano
  • MySQL 查询按父级排序然后子级排序

    我的数据库中有一个页面表 每个页面可以有一个父页面 如下所示 id parent id title 1 0 Home 2 0 Sitemap 3 0 Products 4 3 Product 1 5 3 Product 2 6 4 Prod
  • 在 PHP 上发送不带 SMTP 标头的 SMS

    我正在尝试使用以下对我有用的代码通过 PHP 发送短信验证码 但我越来越 email protected cdn cgi l email protecti
  • 谷歌图片搜索API

    我有一个网站 用户可以在其中提交图片 我想用这些图片自动在 Google 上进行搜索 以尽量减少图片被从其他网站盗用的可能性 我知道 Firefox 扩展 但这需要我右键单击每张图片并等待结果出现 我想自动化这个 我一直在寻找 API 但
  • PHP Session Id 在页面之间发生变化

    我有一个问题 我在 2 个页面之间丢失了 PHP 会话 session start 包含在一个名为 session inc php 的文件中 该文件包含在每个需要设置会话的页面中 这适用于网站上除一个特定页面 member profile

随机推荐

  • 如何检查 mysqli_query 是否删除了任何行[重复]

    这个问题在这里已经有答案了 我创建了从数据库中删除一些数据的函数 这是其中的一部分 mysqli query con DELETE FROM appsdata WHERE ownerID 123 但我想检查删除了多少行 mysql quer
  • 通过查找/替换 (Ctrl+F) 删除 Eclipse 代码编辑器中的空行

    我想通过 Eclipse 代码编辑器中的查找 替换方法从代码中删除所有空白行 我使用了正则表达式 n s n找到所有空白行但出现错误 Incompatible line delimiter near index 55110 用任何字符串替换
  • 如何获取特定类型类实例的多态函数的类型?

    例如 输入 t ap在 GHCi 中给出结果 ap Monad m gt m a gt b gt m a gt m b 如果我已经知道我要使用的 Monad 实例是 gt r 如何查询类型ap对于那个特定的例子 As 激光烟说作为评论你可以
  • 使用 Eclipse/Tomcat 自动将第 3 方 jar 添加到 WEB-INF/lib [重复]

    这个问题在这里已经有答案了 我在 Eclipse 上设置了一个动态 Web 项目 并使用 Tomcat 7 作为我的 Web 服务器 它似乎不会自动将我添加到构建路径上的库中的第 3 方 JAR 放入 WEB INF lib 文件夹中 有没
  • 创建 IE 插件

    我正在寻找为 IE 8 或 9 制作插件的教程 你能给我提供资源吗 拜托 为了和平和其他一切 我已经知道我可以制作 FF 或 Chrome 插件 我want制作一个 IE 插件 Thanks 你见过吗这个网站
  • 如何使 C# 枚举与数据库中的表保持同步

    这是一个稍微简化的示例 我对其进行了更改以隐藏实际代码 我有一个数据库驱动的应用程序和一个单独开发的小工具 旨在与该应用程序一起使用 有一个表定义了枚举 但它可能会随着时间的推移而改变 假设某个应用程序 医疗 需要相当精确地跟踪一个人的性别
  • WPF 用户控件上下文菜单可见性绑定

    我的用户控件上下文菜单可见性无法绑定依赖属性 任何想法 这是我的 WPF 代码
  • 如何在C#中多次使用StopWatch?

    我有执行不同操作的简短代码 我想测量执行每个操作所需的时间 我在这里阅读了有关秒表类的信息 并且想要优化我的时间测量 我的函数调用了 5 个其他函数 我想在不声明的情况下测量每个函数 stopwatch sw1 new stopwatch
  • 将 C# 对象发送到 webapi 控制器

    我正在尝试将 C 对象传递给 Web api 控制器 该 API 配置为存储发布到它的 Product 类型的对象 我已经使用 Jquery Ajax 方法成功添加了对象 现在我尝试在 C 中获得相同的结果 我创建了一个简单的控制台应用程序
  • 在appendChild之后添加事件监听器

    我创建一个元素 eltTooltip with document createElement等等并将其添加到 DOM 像这样 idTooltip包含id of eltTooltip document body appendChild elt
  • 如何在 java SSL 客户端应用程序中支持多个 TrustStore

    在我们的 java 应用程序中 我们需要使用 https 协议与 SSL 上的服务器列表进行通信 要通信的服务器列表将在运行时更改 最初我们没有任何服务器的证书 在运行时 我们将获取新的服务器证书并将公钥证书添加到信任库中 并且与服务器的任
  • 在 swift 中按串行顺序同步多个 Web 服务调用

    我点击 Web 服务 URL 10 次并得到响应 我在用Alamofire and SwiftyJSON 这是我的控制器代码 class ViewController UIViewController let dispatchGroup D
  • 从 ssl 迁移到非 ssl 时,会话不保存

    我有一个强制使用 ssl 的登录屏幕 如下所示 https www foobar com login然后他们登录后 就会转到主页 https www foobar com dashbaord 但是 我希望人们在登录后就不再使用 SSL 以节
  • z3python:将字符串转换为表达式

    鉴于x y z Ints x y z 和一个像这样的字符串s x y 2 z 5 有没有快速的方法将 s 转换为 z3 表达式 如果不可能 那么我似乎必须执行大量字符串操作才能进行转换 您可以使用Pythoneval功能 这是一个例子 fr
  • Rails:完全被delayed_job难住了。在任何地方都没有收到参数

    我正在尝试使用collectiveidea 的delayed job 在Rails 3 应用程序中发送邮件 如果我尝试定期发送邮件 deliver 它工作正常 但一旦我切换到延迟工作 事情就会崩溃 我在delayed job mysql表中
  • 如何使用 Json.NET 将 XML 序列化为 JSON 对象

    我可以将 XML 序列化为 JSON 字符串 如下所示 var xml new XmlDocument xml LoadXml
  • Javascript 在操作 DOM 时是同步的吗?

    我有一个带有类型字段输入的表单 我有几个单选按钮 根据我单击的单选按钮 输入类型字段中的值将会更新 之后 我将调用 Javascript 函数来执行某些操作 该函数将使用输入字段中更新的数量 文本 当然 将该数量传递给函数本身更安全 但是我
  • 如何在悬停时为元素设置动画

    我怎样才能让我的 div 当鼠标悬停在元素上时 元素会增长 并且内容会将文本大小更改为更大的大小 我把它们放在一个类中并尝试 size 150 and height 30px width 30px 第一次尝试根本不起作用 第二次代码只是让
  • 如何在Python抽象类中创建抽象属性?

    在下面的代码中 我创建了一个基本抽象类Base 我想要继承自的所有类Base提供name财产 所以我把这个财产 abstractmethod 然后我创建了一个子类Base 称为Base 1 它旨在提供一些功能 但仍然保持抽象 没有name财
  • 用于取消引用函数结果的 PHP 语法

    背景 在我经常使用的所有其他编程语言中 对函数的返回值进行操作很简单 而无需声明新变量来保存函数结果 然而 在 PHP 中 这似乎并不那么简单 示例1 函数结果是一个数组