เรื่องเล่าจากโลก PHP: Pipe Operator (|>) ตัวจิ๋วพลังแจ๋วในเวอร์ชัน 8.5
PHP 8.5 ที่จะเปิดตัวในเดือนพฤศจิกายนนี้ เตรียมเพิ่มฟีเจอร์ใหม่ที่นักพัฒนาเรียกร้องกันมานาน: “pipe operator” หรือ |> ซึ่งดูเผิน ๆ อาจเหมือนแค่ลูกเล่นเล็ก ๆ แต่จริง ๆ แล้วมันเปลี่ยนวิธีเขียนโค้ดให้สะอาดและเข้าใจง่ายขึ้นอย่างมาก
หลักการของ pipe operator คือการส่งค่าจากด้านซ้ายไปยังฟังก์ชันด้านขวาโดยตรง เช่น:
$result = "Hello World" |> strlen(...);
ซึ่งเทียบเท่ากับ:
$result = strlen("Hello World");
แต่ความเจ๋งจริง ๆ คือเมื่อใช้แบบ “chain” หรือ “pipeline” เช่น:
$result = $arr
|> fn($x) => array_column($x, 'tags')
|> fn($x) => array_merge(...$x)
|> array_unique(...)
|> array_values(...);
แทนที่จะต้องเขียนแบบ nested function ที่อ่านยากและดูรกสายตา หรือใช้ตัวแปรชั่วคราวหลายตัวให้เปลืองสมอง
ฟีเจอร์นี้มีแรงบันดาลใจจากภาษา functional เช่น F#, OCaml และ Elixir รวมถึง Hack/HHVM ที่ Facebook เคยพัฒนาไว้ก่อนหน้านี้ โดยมีการเสนอ RFC มาตั้งแต่ปี 2016 แต่เพิ่งจะได้เห็นผลจริงในปี 2025
นอกจากนี้ pipe operator ยังรองรับ callables หลากหลายรูปแบบ ไม่ว่าจะเป็นฟังก์ชันธรรมดา, lambda, arrow function, method ของ class หรือแม้แต่คลาสที่มี __invoke() ก็ใช้ได้หมด ขอแค่รับ argument เดียว
https://thephp.foundation/blog/2025/07/11/php-85-adds-pipe-operator/
PHP 8.5 ที่จะเปิดตัวในเดือนพฤศจิกายนนี้ เตรียมเพิ่มฟีเจอร์ใหม่ที่นักพัฒนาเรียกร้องกันมานาน: “pipe operator” หรือ |> ซึ่งดูเผิน ๆ อาจเหมือนแค่ลูกเล่นเล็ก ๆ แต่จริง ๆ แล้วมันเปลี่ยนวิธีเขียนโค้ดให้สะอาดและเข้าใจง่ายขึ้นอย่างมาก
หลักการของ pipe operator คือการส่งค่าจากด้านซ้ายไปยังฟังก์ชันด้านขวาโดยตรง เช่น:
$result = "Hello World" |> strlen(...);
ซึ่งเทียบเท่ากับ:
$result = strlen("Hello World");
แต่ความเจ๋งจริง ๆ คือเมื่อใช้แบบ “chain” หรือ “pipeline” เช่น:
$result = $arr
|> fn($x) => array_column($x, 'tags')
|> fn($x) => array_merge(...$x)
|> array_unique(...)
|> array_values(...);
แทนที่จะต้องเขียนแบบ nested function ที่อ่านยากและดูรกสายตา หรือใช้ตัวแปรชั่วคราวหลายตัวให้เปลืองสมอง
ฟีเจอร์นี้มีแรงบันดาลใจจากภาษา functional เช่น F#, OCaml และ Elixir รวมถึง Hack/HHVM ที่ Facebook เคยพัฒนาไว้ก่อนหน้านี้ โดยมีการเสนอ RFC มาตั้งแต่ปี 2016 แต่เพิ่งจะได้เห็นผลจริงในปี 2025
นอกจากนี้ pipe operator ยังรองรับ callables หลากหลายรูปแบบ ไม่ว่าจะเป็นฟังก์ชันธรรมดา, lambda, arrow function, method ของ class หรือแม้แต่คลาสที่มี __invoke() ก็ใช้ได้หมด ขอแค่รับ argument เดียว
https://thephp.foundation/blog/2025/07/11/php-85-adds-pipe-operator/
🔧🧵 เรื่องเล่าจากโลก PHP: Pipe Operator (|>) ตัวจิ๋วพลังแจ๋วในเวอร์ชัน 8.5
PHP 8.5 ที่จะเปิดตัวในเดือนพฤศจิกายนนี้ เตรียมเพิ่มฟีเจอร์ใหม่ที่นักพัฒนาเรียกร้องกันมานาน: “pipe operator” หรือ |> ซึ่งดูเผิน ๆ อาจเหมือนแค่ลูกเล่นเล็ก ๆ แต่จริง ๆ แล้วมันเปลี่ยนวิธีเขียนโค้ดให้สะอาดและเข้าใจง่ายขึ้นอย่างมาก
หลักการของ pipe operator คือการส่งค่าจากด้านซ้ายไปยังฟังก์ชันด้านขวาโดยตรง เช่น:
$result = "Hello World" |> strlen(...);
ซึ่งเทียบเท่ากับ:
$result = strlen("Hello World");
แต่ความเจ๋งจริง ๆ คือเมื่อใช้แบบ “chain” หรือ “pipeline” เช่น:
$result = $arr
|> fn($x) => array_column($x, 'tags')
|> fn($x) => array_merge(...$x)
|> array_unique(...)
|> array_values(...);
แทนที่จะต้องเขียนแบบ nested function ที่อ่านยากและดูรกสายตา หรือใช้ตัวแปรชั่วคราวหลายตัวให้เปลืองสมอง
ฟีเจอร์นี้มีแรงบันดาลใจจากภาษา functional เช่น F#, OCaml และ Elixir รวมถึง Hack/HHVM ที่ Facebook เคยพัฒนาไว้ก่อนหน้านี้ โดยมีการเสนอ RFC มาตั้งแต่ปี 2016 แต่เพิ่งจะได้เห็นผลจริงในปี 2025
นอกจากนี้ pipe operator ยังรองรับ callables หลากหลายรูปแบบ ไม่ว่าจะเป็นฟังก์ชันธรรมดา, lambda, arrow function, method ของ class หรือแม้แต่คลาสที่มี __invoke() ก็ใช้ได้หมด ขอแค่รับ argument เดียว
https://thephp.foundation/blog/2025/07/11/php-85-adds-pipe-operator/
0 ความคิดเห็น
0 การแบ่งปัน
37 มุมมอง
0 รีวิว