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.1k
本当の FizzBuzz をお見せします
懇親会 LT @ PHP カンファレンス 2023
※このスライドは懇親会 LT 用のネタであり「本当の FizzBuzz」なんてものは実在しません
memory
PRO
October 08, 2023
Tweet
Share
More Decks by memory
See All by memory
How to implement a RubyVM with PHP?
memory1994
PRO
3
2.1k
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
2.1k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
690
令和最新版 PHP メモリ管理術
memory1994
PRO
6
3.8k
技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える
memory1994
PRO
23
8.6k
激辛のすゝめ
memory1994
PRO
1
540
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
6k
千尋の谷に突き落とされても辛ければ逃げていい
memory1994
PRO
4
1.7k
CTO までのキャリアと転職活動における考え方の変化
memory1994
PRO
11
2.9k
Other Decks in Programming
See All in Programming
Swiftコードバトル必勝法
toshi0383
0
150
Our Websites Need a Lifestyle Change, Not a Diet
ryantownsend
0
140
Kotlin 2.0が与えるAndroid開発の進化
masayukisuda
1
330
Regular Expressions, REXML, Automata Learning
makenowjust
0
220
GraphQLの魅力を引き出すAndroidクライアント実装
morux2
3
410
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
130
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
0
400
ブラウザ互換の重要性 - あらゆるユーザーに価値を届けるために必要なこと
yamanoku
0
110
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
220
今インフラ技術をイチから学び直すなら
yuhta28
1
130
AndroidアプリのUIバリエーションをあの手この手で確認する / Check UI variations of Android apps by various means
tkmnzm
1
130
What we keep in mind when migrating from Serverless Framework to AWS CDK and AWS SAM
kasacchiful
1
140
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
278
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Embracing the Ebb and Flow
colly
83
4.4k
How to train your dragon (web standard)
notwaldorf
85
5.6k
Agile that works and the tools we love
rasmusluckow
327
20k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.2k
The Cult of Friendly URLs
andyhume
76
6k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
230
130k
Done Done
chrislema
180
16k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠