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
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
PHP でアセンブリっぽく書く技術
memory1994
PRO
1
110
How to implement a RubyVM with PHP?
memory1994
PRO
3
2.3k
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
8
2.2k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
740
令和最新版 PHP メモリ管理術
memory1994
PRO
6
4k
技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える
memory1994
PRO
23
8.9k
激辛のすゝめ
memory1994
PRO
1
550
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
6.3k
Other Decks in Programming
See All in Programming
現場で役立つモデリング 超入門
masuda220
PRO
15
3.2k
C++でシェーダを書く
fadis
6
4.1k
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.1k
初めてDefinitelyTypedにPRを出した話
syumai
0
400
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
330
役立つログに取り組もう
irof
28
9.6k
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
Arm移行タイムアタック
qnighy
0
310
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
330
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
2
1.1k
RubyLSPのマルチバイト文字対応
notfounds
0
120
EventSourcingの理想と現実
wenas
6
2.3k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
GraphQLとの向き合い方2022年版
quramy
43
13k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
A Tale of Four Properties
chriscoyier
156
23k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Bash Introduction
62gerente
608
210k
Rails Girls Zürich Keynote
gr2m
94
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Agile that works and the tools we love
rasmusluckow
327
21k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠