Slide 1

Slide 1 text

元 J A V A エ ン ジ ニ ア が 怖 い と 思 う P H P の 仕 様 ~ ~ L E T ’ S Q U I Z ! ! ~ ~

Slide 2

Slide 2 text

この発表について • Java経験者がPHPを学習して「この仕様、まじか(ヒヤリハットッ)」と 感じた言語仕様をクイズ形式で紹介 • 主な対象者 – 非スクリプト言語経験者でPHP学び始めの人

Slide 3

Slide 3 text

そーく soachr 新卒入社 4年目 開発エンジニア • 今までの経歴 – • 開発・運用保守(3.5年間) / Java, PostgreSQL, js, jQueryなど – • 開発(半年) / PHP, PostgresSQL, js, jQueryなど 自己紹介

Slide 4

Slide 4 text

LET’S QUIZ!!

Slide 5

Slide 5 text

PHP QUIZ!! (1/3) Question 以下のコードの結果は? $hoge = 0; if ($hoge = 12) { print $hoge; }

Slide 6

Slide 6 text

PHP QUIZ!! (1/3) Question 以下のコードの結果は? $hoge = 0; If ($hoge = 12) { print $hoge; } Answer 12 PHPの仕様 条件式の評価結果が - 0であればFALSE - 0以外であればTRUE

Slide 7

Slide 7 text

PHP QUIZ!! (2/3) Question 以下のコードの結果は? $str = ‘’; If ($str) { print ‘hello!!PHP’; }

Slide 8

Slide 8 text

PHP QUIZ!! (2/3) Question 以下のコードの結果は? $str = ‘’; If ($str) { print ‘hello!!PHP’; } Answer なにも出力されない。 エラーにもならない。 PHPの仕様 条件式の評価結果が - 空orNULLであればFALSE - 空orNULL以外であればTRUE

Slide 9

Slide 9 text

PHP QUIZ!! (3/3) Question 以下のコードの結果は? function argumentOne($msg) { print " argumentOne : {$msg}"; } argumentOne(‘msg’, ‘hoge’);

Slide 10

Slide 10 text

PHP QUIZ!! (3/3) Question 以下のコードの結果は? function argumentOne($msg) { print " argumentOne : {$msg}"; } argumentOne(‘msg’, ‘hoge’); Answer エラーなし。 ・(余談)第2引数に指定した’hoge’という文字列は以下の関 数で取得できる $msg2 = func_get_arg(1); //$msg2 = ’hoge’ ・PHPはオーバーロード機能がないため、 実現するには↑のfunc_get_arg()を駆使するとかになる …(探したらライブラリがありそうだが)

Slide 11

Slide 11 text

まとめ •PHPはJavaよりゆるふわ!!! – 条件式を書くときはPHP本家サイトを必ず確認す ること –Javaとは勝手が違うという認識を持つこと

Slide 12

Slide 12 text

ご 清 聴 あ り が と う ご ざ い ま し た