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
20210516 LT資料(PHP echo print)
Search
kuma
May 16, 2021
Programming
0
52
20210516 LT資料(PHP echo print)
研修中の学び
kuma
May 16, 2021
Tweet
Share
More Decks by kuma
See All by kuma
エンジニアの輪スライド
kumainataku
0
240
20220730[PHP]デザインパターン色々学んでみた
kumainataku
0
130
20220227 可読性って大事
kumainataku
0
80
20220319[Laravel]想定外のN+1アラート
kumainataku
0
160
20211027_僕の転職活動の振り返り.pdf
kumainataku
0
110
オブジェクト指向(超基礎)
kumainataku
0
160
20210425 LT会(基本情報技術者)
kumainataku
0
42
202104 読書LT会
kumainataku
0
190
Other Decks in Programming
See All in Programming
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
170
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
560
NPOでのDevinの活用
codeforeveryone
0
490
Select API from Kotlin Coroutine
jmatsu
1
210
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.4k
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
120
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
1k
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
XP, Testing and ninja testing
m_seki
3
220
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
20
3.8k
PicoRuby on Rails
makicamel
2
110
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Code Review Best Practice
trishagee
69
18k
Fireside Chat
paigeccino
37
3.5k
A better future with KSS
kneath
239
17k
Facilitating Awesome Meetings
lara
54
6.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Thoughts on Productivity
jonyablonski
69
4.7k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Practical Orchestrator
shlominoach
188
11k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Transcript
【何が違うの?】PHPの"echo"と"print" クマ(稲熊 琢椰) 2021年 5月16日
自己紹介 1 ・名前 クマ(稲熊 琢椰) ・経歴 20/7 学習開始 20/10 転クエ加入
21/3 都内WEB開発企業に内定頂く 21/5 就職 ・ハマりごと 家トレ、テニスサークル応募(返信率:1/5) ・最近のトピック 同期(大学院中退/25歳)が僕に既にタメ口 →自身のコミュニケーションハードルの低さ
発表概要 1. 自己紹介 2. テーマを選んだ背景 3. “echo”とは?“print”とは? 4. “echo”と“print”の違い 5.
所見 1
テーマを選んだ背景
いたってシンプル。 違いがあることをホントに知らなかった。。。 (研修中で初めて知った) 1 “echo”と”print”も「出力する」って 意味で同じやろ← 1週間前のクマ
“echo”とは?“print”とは?
“echo”も“print”も 「ブラウザに表示(出力)する」こと! 1 Ruby・・・print / put / p …etc ex)
print 'こんにちは' Java・・・printf(“型”、”値”) ex) System.out.printf(“%s”, “こんにちは”) PHP・・・echo / print / printf() ex) echo “こんにちは”; →ex)の出力結果は全て ”こんにちは” 他の言語だと…
“echo”と“print”の違い
先に結論。 1 2. echoは「文」(=返り値を持たない)で printは「式」(=返り値を持つ)だから 文字列の数?、文?、式?…(;´・ω・) 1週間前のクマ 1. 出力できる文字列の数が決まっているから
公式マニュアルによると…(以下抜粋) 1 ・ 1 つ以上の文字列を出力する ・print との主な違いは、 echo がリスト形式の引数を受け付け 返り値を持たないことです。(⇒「文」である)
・ 文字列を出力する ・echo との主な違いは、 print が単一の引数のみ受け付け 常に 1 を返すことです。 (⇒「式」である) echo print
注目すべきは、赤字の箇所 1 ・①1 つ以上の文字列を出力する ・print との主な違いは、 echo がリスト形式の引数を受け付け ②返り値を持たないことです。 (⇒「文」である)
・①(1つの)文字列を出力する ・echo との主な違いは、 print が単一の引数のみ受け付け ②常に 1 を返す(=返り値を持つ)ことです。 (⇒「式」である) echo print
①文字列の数 1 ・上の文も下の文もどちらも文字列は(1), (2)で合計2つ ・上の文:echoは1つ以上の文字列を出力する ・下の文:printは1つの文字列しか出力しない 【実例】 \これはわかる!/ \なるほど!/ ⇒2つ目の文字列を処理できず、エラー😨😨😨
⇒正常に処理される🎉🎉🎉
②返り値の有無-「文」と「式」 1 こっちがちょいと厄介。 (え、僕だけですか。。。?) 「文」って何?「式」って何? 1週間前のクマ なぜならば…
②返り値の有無-「文」と「式」 1 ・文は任意の式を組み合わせられる(下記Qiita) ・文の例:関数/メソッドやクラス定義文/use…etc(下記Qiita) 文 式 ・最も簡単で最も正確な式の定義は、 “値があるもの全て” (公式マニュアル) ・式の例:if文/代入の右辺/算術演算式...etc(下記Qiita)
※https://qiita.com/tadsan/items/bd761ec3d33cc2c65cdf 調べてみると。。。
②返り値の有無-「文」と「式」 1 さらに、こんな記事も。 echo:返り値を持たず、他の式や文の一部として使用不可。 ※ 個人ブログ(https://gotohayato.com/content/47/) (お詫び)1次情報でないことについては申し訳ございません。 文 式 print:返り値を持ち、他の式や文の一部として可能。
②返り値の有無-「文」と「式」 1 要は… print:返り値を持つ echo:返り値を持たない ってことかと推測。 ⇒値を持つ ⇒式である(『目的語』的な意味) ⇒文である(『動詞』的な意味) ⇒値を持たない
②返り値の有無(文か、式か) 1 ・上の文:「print ”こんにちは”」という「式」(目的語)を 「文」として出力する ・下の文:「文」(動詞)を「目的語」で出力する??? 【実例】 \ちょっとわかった!/ \なるほど!/ ⇒エラー😨😨😨
⇒正常に処理🎉🎉🎉
ちなみに。。。 1 【実例】 処理の結果はどうなるか考えてみてください。 (1). echo echo 1; => ???
(2). print print 1; => ??? 5 4 3 2 1
ちなみに。。。 1 【実例】答え (1) 「動詞」+「動詞」では文として正しくない (1). echo echo 1; =>
syntax error, unexpected token "echo" (2). print print 1; => 11 (2) 「動詞or目的語」+「動詞or目的語」は文として正しい 2個目のprintで1を表示、1個目のprintで2個目で返ってきた1を表示 あながち文=「動詞」、式=「目的語」というのも間違ってなさそう??
所見
以下3点 1 3.「文」について公式マニュアルになかったので少々不完全燃焼 2.echo(文)は”動詞”として、print(式)は”動詞or目的語”として使用可 ※あくまでイメージです。 1.とりあえず、出力したいだけならechoでOK。
ご清聴頂きありがとうございました。 内容について、不備等あれば ご指導・ご鞭撻のほどよろしくお願いします。