PHP 8.5 加入了 pipe 语法

2 天前
 cj323

https://php.watch/versions/8.5/pipe-operator

$result = "Hello World"
    |> strtoupper(...)
    |> str_shuffle(...)
    |> trim(...);

同样语法 JS 那边卡了很久,PHP 直接上了。

4421 次点击
所在节点    PHP
59 条回复
Tokin
2 天前
|> 怎么这么奇怪的语法
Ashore
2 天前
PHP 是世界上最好的语言。
panlatent
2 天前
@liuliuliuliu 这就是 PHP 早期混乱、缺乏设计的活化石,没有规则

新特性就叫管道操作符,结合 (...) 语法更为直观。这个符号并不丑陋,启用连字的话还是挺直观的。

没有什么魔法,只是让 PHP 程序员更舒服而已,仅此。
panlatent
2 天前
@Tokin 很多语言都用的是这个语法,"|" 也挺适合但被大多数语言定义为了或运算操作符。 |> 在启用了连字字体里,一般显示为 “▷” 。
lululau
2 天前
|> 这个语法来自 Elixir 吧,上面就以为提到 Elixir 的,都这么没见过世面吗
mx1700
2 天前
|> 是管道语法的主流设计啊,怎么还有人说什么丑,奇怪,PHP 才想得出。。。
Smileh
2 天前
@dongisking #9
菜就多练 少发帖
FalconD
2 天前
@dongisking 猜你想看:
````haskell
(<$>) :: Functor f => (a -> b) -> f a -> f b
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
(<|>) :: Alternative f => f a -> f a -> f a
(>>=) :: Monad m => m a -> (a -> m b) -> m b
(>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
(^>>) :: Arrow a => (b -> c) -> a c d -> a b d
(<+>) :: ArrowPlus a => a b c -> a b c -> a b c
````
jmtung
2 天前
@xiangyuecn 陈年老梗,每敲一个变量获得 1$收入
oxygenkun101
2 天前
php8 之后的更新挺现代的,这管道确实改善 quality of life
eratpfus7
2 天前
还在 php
tt67wq
2 天前
Elixir 也是这样的
ben1024
2 天前
oh
DOLLOR
2 天前
真希望 JS 也能早点用上,实在受够了 a(b(c(d)))这样的套娃代码了🐶
dajj
2 天前
稀奇古怪的玩意
kxg3030
2 天前
php 的社区是最听劝的社区 php 非常不错~
keer
2 天前
这语法还不直观吗?

将上一步的结果通过管道(|)的方式,重定向(>)到下一步处理函数进行计算。
akiyamamio
2 天前
@mx1700 #26
为了黑而黑,每次提到 PHP 都要把“$”这个还要再拿出来黑一次
典型的 JAVA 思维.jpg
fkdtz
2 天前
至少能够实现开发效率和可读性这两方面的提升,还是不错的
guiyumin
2 天前
@DOLLOR 这不是函数式的精髓吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1155173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX