Java経験者がPHPを学習して「この仕様、まじか(ヒヤリハットッ)」と感じた言語仕様をクイズ形式で紹介
元 J A V A エ ン ジ ニ ア が 怖 い と 思 うP H P の 仕 様~ ~ L E T ’ S Q U I Z ! ! ~ ~
View Slide
この発表について• Java経験者がPHPを学習して「この仕様、まじか(ヒヤリハットッ)」と感じた言語仕様をクイズ形式で紹介• 主な対象者– 非スクリプト言語経験者でPHP学び始めの人
そーく soachr新卒入社 4年目 開発エンジニア• 今までの経歴–• 開発・運用保守(3.5年間) / Java, PostgreSQL, js, jQueryなど–• 開発(半年) / PHP, PostgresSQL, js, jQueryなど自己紹介
LET’S QUIZ!!
PHP QUIZ!! (1/3)Question以下のコードの結果は?$hoge = 0;if ($hoge = 12) {print $hoge;}
PHP QUIZ!! (1/3)Question以下のコードの結果は?$hoge = 0;If ($hoge = 12) {print $hoge;}Answer12PHPの仕様条件式の評価結果が- 0であればFALSE- 0以外であればTRUE
PHP QUIZ!! (2/3)Question以下のコードの結果は?$str = ‘’;If ($str) {print ‘hello!!PHP’;}
PHP QUIZ!! (2/3)Question以下のコードの結果は?$str = ‘’;If ($str) {print ‘hello!!PHP’;}Answerなにも出力されない。エラーにもならない。PHPの仕様条件式の評価結果が- 空orNULLであればFALSE- 空orNULL以外であればTRUE
PHP QUIZ!! (3/3)Question以下のコードの結果は?function argumentOne($msg) {print " argumentOne : {$msg}";}argumentOne(‘msg’, ‘hoge’);
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()を駆使するとかになる…(探したらライブラリがありそうだが)
まとめ•PHPはJavaよりゆるふわ!!!– 条件式を書くときはPHP本家サイトを必ず確認すること–Javaとは勝手が違うという認識を持つこと
ご 清 聴 あ り が と う ご ざ い ま し た