Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
本当の FizzBuzz をお見せします
Search
memory
PRO
October 08, 2023
Programming
1
2.2k
本当の FizzBuzz をお見せします
懇親会 LT @ PHP カンファレンス 2023
※このスライドは懇親会 LT 用のネタであり「本当の FizzBuzz」なんてものは実在しません
memory
PRO
October 08, 2023
Tweet
Share
More Decks by memory
See All by memory
事業観点から見る技術的負債の返済
memory1994
PRO
4
870
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
180
PHP でアセンブリっぽく書く技術
memory1994
PRO
1
110
How to implement a RubyVM with PHP?
memory1994
PRO
3
2.4k
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
8
2.5k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
750
令和最新版 PHP メモリ管理術
memory1994
PRO
6
4k
技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える
memory1994
PRO
23
9k
激辛のすゝめ
memory1994
PRO
1
560
Other Decks in Programming
See All in Programming
CSC305 Lecture 25
javiergs
PRO
0
130
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
1.4k
Recoilを剥がしている話
kirik
5
6.6k
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
14 Years of iOS: Lessons and Key Points
seyfoyun
1
770
似たもの同士のPerlとPHP
uzulla
1
130
42 best practices for Symfony, a decade later
tucksaun
1
180
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
300
.NET 9アプリをCGIとして レンタルサーバーで動かす
mayuki
1
770
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
200
急成長期の品質とスピードを両立するフロントエンド技術基盤
soarteclab
0
920
Security_for_introducing_eBPF
kentatada
0
110
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
229
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Statistics for Hackers
jakevdp
796
220k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Side Projects
sachag
452
42k
Transcript
ΊΓʔ ຊͷ FizzBuzz Λ͓ݟͤ͠·͢ ࠙ձ LT @PHP ΧϯϑΝϨϯε 2023
ΊΓʔ m3m0r7 ͖ͬ͞ RubyVM Λ PHP Ͱ࣮͢ΔΛ͠ ·ͨ͠ memory1994
m3m0r7
FizzBuzz ͬͯΔਓʙʁ
૾ͨ͠ਓ ͍ΔΜ͡Όͳ͍Ͱ͠ΐ͏͔
FizzBuzz ͰϧʔϓจΛ ͏ͷ͑
ຊͷ FizzBuzz ΛݟͤͯΓ·͢Α
͜ΕɼͪΌΜͱ 1 ʙ 100 ·Ͱͷ FizzBuzz ͕ग़ྗ͞Ε·͢
Ͳ͏ಈ͍͍ͯΔͱࢥ͍·͔͢ʁ
PHP $$var ͱ࣮ߦ͢Δͱ $var ʹ ೖ͍ͬͯΔΛม໊ͱͯ͠ࢀর͠·͢
ͨͱ͑ $var = 'cat' ͱ͢Δͱ $$var $cat Λ࣮ߦ͠Α͏ͱ͠·͢ɻ
ͭ·Γɼ$$$...$ ͦΕΛ ͻͨ͢Β܁Γฦ͍ͯ͠Δ͜ͱʹͳΓ·͢ɻ
$var = '1' Λ $$var ͱ͢Δͱ $1 Λ ࢀর͠Α͏ͱ͠·͕͢
͝ଘͷ௨Γ PHP Ͱ ม໊Λࣈ͔Β࢝ΊΒΕ·ͤΜ
͔͠͠ $GLOBALS['1'] ͷΑ͏ʹ ࢀর͢Δ͜ͱͰ͖·͢
PHP ϩʔΧϧมͱάϩʔόϧม Ͱ͋Δ $GLOBALS Λࢀর͠Α͏ͱ͠ ·͢
͜ͷΑ͏ʹ͢Δ͜ͱͰ $var = '1' Λ $$var ͱ࣮ߦ͢Δͱ $GLOBALS['1'] ͕
ࢀর͞Ε·͢
͔͠͠ $GLOBALS['1'] ηοτ͞Ε ͍ͯͳ͍ͷͰɼ͜ͷ··Ͱ Unde fi ned variable ʹͳΓ·͢
࣮ $var = '1' Λ $$var ͱ࣮ߦ͢Δͱ͖ Unde fi
ned variable ͕ग़ྗ͞ΕΔલʹ จࣈྻม͕Γ·͢
ͭ·Γ class Ͱఆٛ͞Εͨ __toString ͕ൃՐ͢ΔͷͰ͢
͜ͷੑ࣭Λར༻ͯ͠ɼ__toString ͷ λΠϛϯάͰ $GLOBALS['1'] ʢ1 ҙͷࣈʣΛఆ͍ٛͯ͠·͢
ͦͯ͠ __toString ͷฦΓ ม໊ͱͯ͠ѻΘΕ·͢
ͭ·Γ __toString Λ܁Γฦͨ͢ͼʹ 1, 2, 3 ... ͱ૿͍͖͑ͯ·͢ɻ
ͦͷΛ༻͍ͯ Fizz or Buzz or ࣈ ͱग़͚͠Λߦ͍ग़ྗͤ͞Ε͍͍ͷ Ͱ͢
͔͠͠ɼͦͷ··Ͱग़ྗͰ͖·ͤΜ
ͦͷͨΊ print Λ༻͍ͯ ग़ྗΛߦ͍ͬͯ·͢
ϫϯϥΠφʔϋοΫͰฦΓ͕ͳ͍ echo ΑΓฦΓ͕͋Δ print ͕ॏๅ͠ ·͢ʢͦͷ··ଞͷࣜʹࠞͥΒΕΔʣ
https://gist.githubusercontent.com/m3m0r7/ f8059505046c6ab689aa728c2ca6f76c/raw/ be78189cb305358cd57c5ab31c251dd2dcc656d1/ fi zzbuzz.php
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠