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
2k
本当の FizzBuzz をお見せします
懇親会 LT @ PHP カンファレンス 2023
※このスライドは懇親会 LT 用のネタであり「本当の FizzBuzz」なんてものは実在しません
memory
PRO
October 08, 2023
Tweet
Share
More Decks by memory
See All by memory
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.8k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
560
令和最新版 PHP メモリ管理術
memory1994
PRO
5
3.3k
技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える
memory1994
PRO
23
8k
激辛のすゝめ
memory1994
PRO
1
530
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
5.7k
千尋の谷に突き落とされても辛ければ逃げていい
memory1994
PRO
3
1.5k
CTO までのキャリアと転職活動における考え方の変化
memory1994
PRO
10
2.7k
エンジニアリングを推進する必要性
memory1994
PRO
20
6.6k
Other Decks in Programming
See All in Programming
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
470
PHPはいつから死んでいるかの調査
chiroruxx
2
420
Open standards for building event-driven applications in the cloud
meteatamel
0
190
Webアプリをできるだけコードを手書きしないで作ってみる
tomokusaba
2
190
Documentation for users with AsciiDoc and Antora
ahus1
0
370
Introducing Kotlin Multiplatform in an existing mobile app - Workshop Edition | AndroidMakers Paris
prof18
0
160
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
540
パフォーマンスを求めてDBに機能を寄せる戦略
aoyagikouhei
0
110
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
190
Site Reliability Engineering for GMO
pyama86
9
1.1k
Git Rebase
bkuhlmann
11
1.6k
Elm Form Validation
bkuhlmann
0
520
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
Fantastic passwords and where to find them - at NoRuKo
philnash
39
2.5k
Documentation Writing (for coders)
carmenintech
60
4k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
It's Worth the Effort
3n
180
27k
Why Our Code Smells
bkeepers
PRO
331
56k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
A Tale of Four Properties
chriscoyier
153
22k
Writing Fast Ruby
sferik
622
60k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠