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
57
20210516 LT資料(PHP echo print)
研修中の学び
kuma
May 16, 2021
Tweet
Share
More Decks by kuma
See All by kuma
エンジニアの輪スライド
kumainataku
0
260
20220730[PHP]デザインパターン色々学んでみた
kumainataku
0
140
20220227 可読性って大事
kumainataku
0
81
20220319[Laravel]想定外のN+1アラート
kumainataku
0
190
20211027_僕の転職活動の振り返り.pdf
kumainataku
0
120
オブジェクト指向(超基礎)
kumainataku
0
160
20210425 LT会(基本情報技術者)
kumainataku
0
47
202104 読書LT会
kumainataku
0
200
Other Decks in Programming
See All in Programming
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.1k
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.4k
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
140
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.2k
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
950
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
310
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.5k
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
120
Understanding Apache Lucene - More than just full-text search
spinscale
0
120
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
150
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
110
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
590
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
480
The Cult of Friendly URLs
andyhume
79
6.8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
970
Designing for Performance
lara
611
70k
Paper Plane (Part 1)
katiecoart
PRO
0
5.6k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
Code Reviewing Like a Champion
maltzj
528
40k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
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。
ご清聴頂きありがとうございました。 内容について、不備等あれば ご指導・ご鞭撻のほどよろしくお願いします。