PHP 8.5 加入了 pipe 语法
php.watch/versions/8.5/pipe-operator
$result = "Hello World"
|> strtoupper(...)
|> str_shuffle(...)
|> trim(...);
同样语法 JS 那边卡了很久,PHP 直接上了。
相当于把 str 对象化然后链式调用?
只能算是加了个语法糖吧?
可能因为 JS 有 oop ,oop 链式调用可以达到相同的效果,只不过外部扩展需要有 extension method 之类的特性,extension method 可以覆盖 pipe 的功能。
是语法糖,但不是对象化,a |> x(...) |> y(...) 相当于 y(x(a)),用 pipe 可读性会好一点,编写的时候也会更符合人类思维(先用 x 处理再用 y 处理)
相当于管道吧
#3 嗯。。。感觉是个无关紧要的东西....
py 那种万物皆对象的早就这么做了
相当于 Java 里的 Builders ?
逐渐变成 perl
JS 也有啊
|>
这语法果然只有 php 才想的出来...
看着有点丑陋
java 里的 Stream ?
满屏幕的$,这样写至少少一半的$,也算是 php 特色了
不是哦,很早之前 JS 就说要用|>了,但是现在还没有搞好。 github.com/tc39/proposal-pipeline-operator
这语法在函数式语言里常见的很……
PHP 还活着也属于奇迹
就是把类似 C 语言的面向过程的函数,也能和面向对象的链式调用一样使用。
$pureData |> c_function1() |> c_function2() |> c_function3();
$obj->method1()->method2()->method3();
这语法也太丑了
我最早在 elixir 使用这个语法,现在 php 也增加了,确实是可以👍
这范例里的两个系统函数:strtoupper 和 str_shuffle 是什么命名规则?
elixir 早就有了
hexdocs.pm/elixir/enumerable-and-streams.html#the-pipe-operator
|> 怎么这么奇怪的语法
PHP 是世界上最好的语言。
这就是 PHP 早期混乱、缺乏设计的活化石,没有规则
新特性就叫管道操作符,结合 (...) 语法更为直观。这个符号并不丑陋,启用连字的话还是挺直观的。
没有什么魔法,只是让 PHP 程序员更舒服而已,仅此。
很多语言都用的是这个语法,"|" 也挺适合但被大多数语言定义为了或运算操作符。 |> 在启用了连字字体里,一般显示为 “▷” 。
|> 这个语法来自 Elixir 吧,上面就以为提到 Elixir 的,都这么没见过世面吗
|> 是管道语法的主流设计啊,怎么还有人说什么丑,奇怪,PHP 才想得出。。。
#9
菜就多练 少发帖
猜你想看:
(<$>) :: 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
陈年老梗,每敲一个变量获得 1$收入
php8 之后的更新挺现代的,这管道确实改善 quality of life
还在 php
有没有公司的产品是基于多家公有云的。一家云出了问题,可以平滑切换到其他云计算厂商?感觉现在一家云厂商出故障,都只能干着急。那我如果不差钱,同时买多家的云产品,a 有问题,我可以…
知乎上看到有人说是 csharp, 搜了一下发现 csharp3.0(07 年)才支持这个语法 在编程语言历史中,代表 Lambda 表达式用箭头符号 "->" 或 "=>"…
看了一圈,感觉都很大啊,一部电影 20G 起步,一季权游 100G 200G 属于正常操作。 但是我这 4T 小盘 NAS 遭不住啊,所以看看有没有哪个压制组是专注于小体积高质…