できるPHP7アップグレード / php7 upgrade

022fe97731555344992c588527848cb7?s=47 hypermkt
October 08, 2017

できるPHP7アップグレード / php7 upgrade

バーチー / GMO PEPABO inc.
2017.10.08 / PHPカンファレンス2017
http://phpcon.php.gr.jp/2017/#home

PHPを利用したウェブサイトの約66%(※1)は、セキュリティサポートの切れたPHP5.5以下のバージョンを利用しています。
アップグレードの必要性は理解していても、後方互換性のない変更点の修正が課題となり後回しにする現場も少なくないでしょう。

先日ホームページ作成サービス「グーペ」をPHP5.2から7.1へアップグレードし、そこから得られた知見をブログ(※2)にて公開しました。
本セッションではブログでお伝えきれなかった内容を加えて、安全かつ短期間でアップグレードする方法をご紹介します。

※1 https://w3techs.com/technologies/details/pl-php/all/all
※2 http://tech.pepabo.com/2017/06/21/goope-php71-upgrade/

022fe97731555344992c588527848cb7?s=128

hypermkt

October 08, 2017
Tweet

Transcript

  1. όʔνʔ(.01&1"#0JOD 1)1ΧϯϑΝϨϯε Ͱ͖Δ1)1ΞοϓάϨʔυ

  2. IUUQCMPHIZQFSNLUKQ ιϑτ΢ΣΞΤϯδχΞ όʔνʔ!IZQFSNLU 4)ࣄۀ෦άʔϖνʔϜ݉Ξχϝ෦෦௕

  3. None
  4. 1)1͔Β1)1ʹΞοϓάϨʔυʂ 

  5. w1)1͔Β΁ΞοϓάϨʔυ͢Δࠔ೉ w1)1ΞοϓάϨʔυΛ
 ҆શ͔ͭ୹ظؒͰ਱ߦ͢ΔͨΊͷܭըͱઓུ w1)1ΞοϓάϨʔυͷͦͷޙ ࠓ೔͓࿩͢Δ͜ͱ 

  6. wಛఆόʔδϣϯʹ͓͚Δ՝୊ͷղܾํ๏ ࿩͞ͳ͍͜ͱ 

  7. w1)1ΞοϓάϨʔυͷྲྀΕΛཧղͯ͠Πϝʔδ͕ ༙͘ w1)1ΞοϓάϨʔυݕ౼தͷํͷޙԡ͠Λ͢Δ ΰʔϧ 

  8. 1)1͔Β΁
 ΞοϓάϨʔυ͢Δࠔ೉

  9. w αʔϏε։͔࢝Β೥໨ w 1)1 w $PNQPTFS͕࢖͑ͳ͍ w 1&"3Λར༻ͨ͠ಠࣗϑϨʔϜϫʔΫ w ϢχοτςετΧόϨοδ཰ະຬ

    ײ֮஋ 1)1ΞϓϦέʔγϣϯ  ೥݄౰࣌
  10. ΞοϓάϨʔυର৅͸ϩʔϧ  UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδ࡞੒
 ܖ໿ ϗʔϜϖʔδӾཡ όονॲཧ


    ϝʔϧ഑৴ 1)1όʔδϣϯ     1)1ίʔυߦ਺ ສ ສ ສ ̐ສ BENJO TIPQ TUBUT
  11. ᶃ1)1.Z42-ؔ਺࡟আ ΞϓϦέʔγϣϯશମͰ.Z42-ؔ਺Λ࢖༻
 ໿Օॴͷ1%0੾Γସ͑ ᶄ1)1ϚδοΫΫΥʔτ࡟আ 42-Λจࣈྻ݁߹͍ͯ͠Δɻ42-ΠϯδΣΫγϣϯରࡦͷ ͨΊɺ໿ՕॴͷϓϨʔεϗϧμʔԽ ౰ॳ͔Β෼͔͍ͬͯͨ՝୊͸̏ͭ 

  12. ᶅ1)1͔Βؒͷ࢓༷มߋɺ
 ԼҐޓ׵ੑͷͳ͍มߋ఺ͷશ༰
 Λ஌Βͳ͍ ౰ॳ͔Β෼͔͍ͬͯͨ՝୊͸̏ͭ 

  13. ΋͏Ұͭࠔ೉͕͋Γ·͢ 

  14. ࡞ۀڐՄΛ΋Β͏͜ͱ 

  15. wݱঢ়Ͱ΋ʮ։ൃ͸ʯग़དྷΔ w։ൃϦιʔε͕଍Γͳ͍ w,1*վળ΍ػೳ։ൃ༏ઌ ཧղ͞Εʹ͍͘ΞοϓάϨʔυۀ຿ 

  16. wϢʔβʔϝϦοτ wλΠϛϯά આಘͷϙΠϯτ 

  17. ϢʔβʔϝϦοτ  IUUQQIQOFUSFMFBTFT@@QIQ w1)1Ͱ̎ഒߴ଎Խʂ w։ൃޮ཰վળͰ։ൃεϐʔυ޲্ʂ w҆ఆαʔϏεఏڙ

  18. w೥લظʹ͓ਃ͠ࠐΈ਺ ̎ഒʹʂ wߋͳΔ੒௕ͷͨΊΤϯδχΞ਺ ഒʹʂ λΠϛϯάɿ͍͍೾͕དྷͨ  IUUQTTQFBLFSEFDLDPNIZQFSNLUUJNVRVBOZVBOEFPTIFOTJJQNJTIVXPCFJOJTJUBIVB

  19. αʔϏεͷߋͳΔൃలɺ
 ҆ఆɾ҆શɾߴ଎ͳαʔϏεఏڙɺ
 ͦͯ͠։ൃεϐʔυվળͷͨΊɺ 1)1ͷΞοϓάϨʔυΛ͍ͤͯͩ͘͞͞ʂ ͍͍Αʂ

  20. 1)1Խ͕ܾఆ 

  21. wΞοϓάϨʔυର৅ͷ ϩʔϧΛ
 1)1 ͔Β1)1 ʹ͢Δ ΰʔϧ 

  22. εέδϡʔϧΛཱͯΑ͏

  23. wεέδϡʔϧ w୲౰ऀ wݟੵ΋Γ wணखॱং wϦϦʔε໨҆ ܾΊΔ͜ͱ 

  24. ։ൃ!IZQFSNLU (PPQF։ൃܦݧ̎೥Ҏ্ͷΤϯδχΞ໊̎  Πϯϑϥ!IGN

  25. ΞοϓάϨʔυର৅͸ϩʔϧ  UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδ࡞੒
 ܖ໿ ϗʔϜϖʔδӾཡ όονॲཧ


    ϝʔϧ഑৴ 1)1όʔδϣϯ     1)1ίʔυߦ਺ ສ ສ ສ ̐ສ BENJO TIPQ TUBUT
  26. Ͳ͔͜Βணख͢΂͖͔ʁ 

  27. ؆୯͔ͭ୹ظؒͰ
 ׬ྃग़དྷΔ΋ͷ͔Βணख͠Α͏ʂ  ݁࿦

  28. w զʑ͸1)1ΞοϓάϨʔυະܦݧऀ w ಛఆόʔδϣϯͷ՝୊ղܾ๏΍ޮ཰తͳ࡞ۀखॱΛ஌Βͳ͍
 w ·ͣ͸ճ1)1ΞοϓάϨʔυΛܦݧ͢Δ͜ͱͰɺ
 Ұ௨Γͷ՝୊ղܾํ๏Λֶͼɺඇޮ཰ͳํ๏΋ܦݧ͢Δ
 w ͔࣍Β͸࡞ۀͷޮ཰Խͱ࡞ۀ࣌ؒܰݮ΋ग़དྷΔʂ ͳ͔ͥ

    
  29. ͽʔ͍͑ͪͽʔ .Z42-ؔ਺ͷ࡟আͳΒ
 ͓೚͍ͤͩ͘͞ʂ FSFHܥؔ਺͸Ұൃஔ׵Ͱ
 ࢓ཹΊΔͥ

  30. Ͳ͏΍ͬͯ೉қ౓ΛଌΔ͔ʁ 

  31. w ϢʔβʔӨڹ౓ ϦεΫʣ͕খ͍͞΋ͷ w 1)1ίʔυߦ਺͕গͳ͍ w ݕূָ͕ͳ΋ͷʢόονॲཧ͸खؒʣ ೉қ౓ͷܾΊํ 

  32. ೉қ౓ UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδӾཡ ϗʔϜϖʔδ࡞੒
 ܾࡁ Ϣʔβʔ؅ཧ
 όονॲཧ


    ϝʔϧ഑৴ 1)1ίʔυߦ਺ ສ ສ ສ ̐ສ ϢʔβʔӨڹ౓ খ த େ େ ݕূ ָ ָ ී௨ ೉ ೉қ౓ ָ ී௨ ೉ ೉ BENJO TIPQ TUBUT
  33. w ࡞ۀʹೖͬͯΈͳ͍ͱ෼͔Βͳ͍ͷͰͬ͘͟Γͱɻ w ໨҆ఔ౓ w ໨҆ͱ͸͍͑਺஋ͱͯ͠ఏࣔ͢Δ͜ͱ͕େ੾ ݟੵ΋Γ 

  34. ࡞ۀݟੵ΋Γ UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδӾཡ ϗʔϜϖʔδ࡞੒
 ܾࡁ Ϣʔβʔ؅ཧ
 όονॲཧ


    ϝʔϧ഑৴ 1)1ίʔυߦ਺ ສ ສ ສ ̐ສ ϢʔβʔӨڹ౓ খ த େ େ ݕূ ָ ָ ී௨ ೉ ೉қ౓ ָ ී௨ ೉ ೉ ࡞ۀݟੵ΋Γ ϲ݄ ϲ݄ ϲ݄ ϲ݄ BENJO TIPQ TUBUT
  35. ࡞ۀॱংͱϦϦʔε໨҆  UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδӾཡ ϗʔϜϖʔδ࡞੒
 ܾࡁ Ϣʔβʔ؅ཧ


    όονॲཧ
 ϝʔϧ഑৴ 1)1ίʔυߦ਺ ສ ສ ສ ̐ສ ϢʔβʔӨڹ౓ খ த େ େ ݕূ ָ ָ ී௨ ೉ ೉қ౓ ָ ී௨ ೉ ೉ ࡞ۀݟੵ΋Γ ϲ݄ ϲ݄ ϲ݄ ϲ݄ ࡞ۀॱং ᶃ ᶄ ᶅ ᶆ ϦϦʔε໨҆ ຤ ຤ ຤ ຤ BENJO TIPQ TUBUT
  36. ࣌ܥྻ        UPQ1)1Խ׬ྃ 1)1ԽϓϩδΣΫτελʔτʂ

    TIPQ1)1Խ׬ྃ TUBUT1)1Խ׬ྃ BENJO1)1Խ׬ྃ
  37. ࣌ܥྻ        UPQ1)1Խ׬ྃ 1)1ԽϓϩδΣΫτελʔτʂ

    TUBUT1)1Խ׬ྃ BENJO1)1Խ׬ྃ UPQ1)1Խ׬ྃ ৽ཱྀࠗߦ ✈ TIPQ1)1Խ׬ྃ
  38. ΞοϓάϨʔυجຊํ਑

  39. w௕ظؒͷ࡞ۀʹͳΔ wૣ͘ऴΘΒ͍ͨ͠ wطଘϓϩδΣΫτͱฒߦͯ͠࡞ۀΛਐΊ͍ͨ w҆શʹਐΊ͍ͨ લఏ 

  40. w1)1ͱͷޙํޓ׵ੑΛҡ࣋͢Δ w1)1྆ํͰಈ͘ΞϓϦέʔγϣϯʹ͢Δ wEFQSFDBUFEܯࠂͷରԠ͸༏ઌ౓௿Ί ΞοϓάϨʔυجຊํ਑ 

  41. w՝୊ w 1)1γεςϜϫΠυͳ1&"3ϥΠϒϥϦΛଟ਺ར༻ w 1)1BVUPMPBEܦ༝ͰಡΈࠐΈ͍ͨ wݒ೦ w 1)1 ͷ྆ํͰ1&"3ϥΠϒϥϦΛಡΈࠐΉʹ͸
 Ͳ͏͢Ε͹ʁ

    ͳͥ1)1ͱͷޙํޓ׵ੑΛҡ࣋͢Δͷ͔  // γεςϜϫΠυͳPEAR::DB require_once(‘DB.php’);
  42. 1)1@7&34*0/@*%  $ php -v | head -n 1 PHP

    7.1.5 (cli) (built: May 15 2017 11:18:10) ( NTS )
 
 $ cat php_version_id.php <?php var_dump(PHP_VERSION_ID); $ php php_version_id.php int(70105)
  43. wղܾࡦ w 1)1@7&34*0/@*%Ͱ෼ذ w 1)1ͱͷޙํޓ׵ੑΛҡ࣋ͯ͠ࡉ͔͘ϦϦʔε wޮՌ w طଘϓϩδΣΫτͱฒߦ࡞ۀ w $PNQPTFS༗Γແ͠؀ڥͱͷฒߦӡ༻

    1)1@7&34*0/@*%Ͱ෼ذ  if (PHP_VERSION_ID >= 70000) { require_once __DIR__ . '/../../vendor/composer/autoload.php'; } else { require_once ‘DB.php’; // γεςϜϫΠυͳPEAR::DB }
  44. EFQSFDBUFEܯࠂͷରԠ͸
 ༏ઌ౓௿Ί 

  45. wকདྷతʹαϙʔτ͞Εͳ͍ؔ਺΍࢓༷ͷܯࠂ wಈ࡞্͸໰୊ͳ͍ w࣍ճόʔδϣϯΞοϓ࣌ʹഇࢭʹͳΔՄೳੑ͸ߴ͍ EFQSFDBUFEܯࠂͱ͸ 

  46. w༨༟͕͋Ε͹ରԠ͢Δɾͳ͚Ε͹ରԠ͠ͳ͍ w1)1Խ͕׬͔ྃͯ͠Βॱ࣍EFQSFDBUFEܯࠂΛରԠ w1)1ԽΛͳΔ͸΍ͰऴΘΒͤΔ͜ͱΛ༏ઌ EFQSFDBUFEܯࠂͷରԠ͸༏ઌ౓௿Ί 

  47. ͍͟1)1ΞοϓάϨʔυ࡞ۀ΁

  48. w ԼҐޓ׵ੑͷͳ͍มߋ఺ͷमਖ਼ w .Z42-ؔ਺ͷ࡟আ w FSFHܥؔ਺ͷ࡟আ w ϚδοΫΫΥʔτഇࢭ w ؔ਺ɾจ๏ͷ࢓༷มߋͷमਖ਼

    w QIQJOJͷௐ੔ w ͳͲͳͲ 1)1ΞοϓάϨʔυ࡞ۀ 
  49. w Өڹൣғ͸ΞϓϦέʔγϣϯશମ w ୯ௐ࡞ۀ w ಉ͡मਖ਼Λଟ਺ϑΝΠϧͰߦ͏ w ಉ͡ϑΝΠϧΛԿ౓΋मਖ਼͢Δ 1)1ΞοϓάϨʔυ࡞ۀͷಛ௃ 

  50. w έΞϨεϛε΍σάϨ͠΍͍͢ w Ͳ͜ʹ஍ཕ͕͋Δ͔෼͔Βͳ͍ ஫ҙ఺ 

  51. w҆શ w ϦΞϧλΠϜ1)1Τϥʔݕ஌ w ৽چ྆όʔδϣϯͰܧଓతςετ w࡞ۀ࣌ؒ୹ॖ w ະ࢖༻ϑΝΠϧͷ࡟আ w QIQDDʹΑΔޓ׵ੑͷࣗಈݕ஌

    w &&ςετ ௕ظʹ౉Δ1)1ΞοϓάϨʔυ࡞ۀͷϙΠϯτ 
  52. ϦΞϧλΠϜ1)1Τϥʔݕ஌ w 'MVFOUE /PSJLSBΛར༻ͨ͠ϩάͷूੵɾղੳج൫Λߏங w ΞϓϦέʔγϣϯͷ1)1ΤϥʔϩάΛ4MBDLʹϦΞϧλΠϜ௨஌

  53. ϝϦοτ  w طଘόάͷૣظൃݟʹͭͳ͕Δ w ಈ࡞ݕূ࣌ɺΞοϓάϨʔυ࣌ͷো֐ʹ͙͢ؾ͚ͮΔ

  54. ৽چ྆όʔδϣϯͰܧଓతςετ  w $*্Ͱ1)1 ͷ྆ํͰϢχοτςετ w طଘγεςϜʹӨڹΛ༩͍͑ͯͳ͍͜ͱΛ֬ೝͭͭ͠ɺ
 ৽όʔδϣϯͰͷಈ࡞୲อΛ֬อ

  55. ະ࢖༻ϑΝΠϧͷ࡟আ 

  56. wଞαʔϏε͔Βίϐϖ͞ΕͨϑΝΠϧ wഇࢭʹͳͬͨػೳ wϦχϡʔΞϧ࣌ʹ࢒͞Εͨچػೳ wΩϟϯϖʔϯ༻Ұ࣌ίʔυ ະ࢖༻ϑΝΠϧ͸ࢥ͍ͬͯΔҎ্ʹ͋Δ 

  57. w1)1ΞοϓάϨʔυର৅ͷൣғॖখ wݕূ࣌ؒܰݮ wґଘؔ܎ͷܰݮ ະ࢖༻ϑΝΠϧΛ࡟আ͢ΔϝϦοτ 

  58. wϧʔϧ wௐࠪظؒΛܾΊΔ w༏ઌ౓ ϥΠϒϥϦ ϧʔςΟϯάɺίϯτϩʔϥʔ wํ๏ wର৅ϑΝΠϧ໊ɺΫϥε໊ͰHJUHSFQ wಉ྅ʹฉ͘࡟আ͔͕ͨͬͨ͠ޙճ͠ʹͯͨ͠ͷΛ۷Γग़͢ ະ࢖༻ϑΝΠϧͷ࡟আͷ࢓ํ 

  59. None
  60. QIQDDʹΑΔޓ׵ੑͷࣗಈݕ஌  w ඞਢϥΠϒϥϦ w IUUQTHJUIVCDPNTTUBMMFQIQDD w 1)1͔Β1)1ͷޓ׵ੑνΣοΧʔ w $*Ͱ౎౓࣮ߦ͠ɺࢦఠ͞ΕͨՕॴΛยͬ୺͔Βमਖ਼

    w ϑΝΠϧͣͭख࡞ۀͰௐࠪ͢Δඞཁ͕ແ͍ > Line 123: PHP 4 constructors are now deprecated function Hoge() { } > Line 123: Removed function "mysql_query" called mysql_query($query);
  61. ΑΓ޿ൣғΛΧόʔͰ͖Δ &&ςετΛॏࢹ 

  62. w ಉ͡ՕॴΛಉ͡खॱͰݕূ͢Δͷ͸࣌ؒͷແବ w ࠓޙ΋ܧଓతʹΞοϓάϨʔυͰ͖Δ؀ڥߏங &&ςετΛॏࢹͨ͠ཧ༝ 

  63. wΞϓϦέʔγϣϯͷಛ௃ wશମͰ$36%ॲཧ w1)1ΞοϓάϨʔυ w1)18BSOJOH'BUBMΤϥʔ͕ൃੜ͢Δݒ೦͋Γ લఏ 

  64. w ؆қతͳ$36%ॲཧνΣοΫ w )551εςʔλεɺ1)1ΤϥʔͷνΣοΫ w શը໘Ͱ࣮૷ w 1)1྆ํͰ࣮ߦΛ֬ೝ ࣮૷ํ਑ 

  65. &&ςετ؀ڥ  3VCZ੡ςετϑϨʔϜϫʔΫ 8FCΞϓϦέʔγϣϯͷ ςετϑϨʔϜϫʔΫ $BQZCBSB༻1IBOUPN+4υϥΠόʔ )FBEMFTT8FCLJUϕʔεϒϥ΢β

  66. શମਤ QIQBQBDIFίϯςφ؀ڥ ࣾ಺1)1؀ڥ 1VTI %FQMPZ &&ςετ &&ςετ 1)1 1)1

  67. શϖʔδͷ)551εςʔλενΣοΫɺ1)1ΤϥʔΛνΣοΫ SFRVJSFTQFD@IFMQFS
 
 TIBSFE@FYBNQMFT@GPSDPSSFDUSFTQPOTFEPcVSJc
 CFGPSF\WJTJUVSJ^
 
 JU\VSJ^͕0,Ͱਖ਼ৗʹӾཡͰ͖ΔEP
 FYQFDU QBHFTUBUVT@DPEF UPCF

     
 FOE
 
 JU\VSJ^ʹ1)1ͷܯࠂ͕ແ͍EP
 FYQFDU QBHF UPIBWF@OP@DPOUFOU 8BSOJOH 
 FOE
 
 JU\VSJ^ʹ1)1ͷΤϥʔ͕ແ͍EP
 FYQFDU QBHF UPIBWF@OP@DPOUFOU 'BUBMFSSPS 
 FOE
 FOE SFRVJSFTQFD@IFMQFS
 
 EFTDSJCFਖ਼ৗӾཡςετEP
 X 
 JOGPJOGPSNBUJPO
 JOGPNBJOUFOBODF
 JOGPPCTUBDMF
  FBDIEPcQBHFc
 JU@CFIBWFT@MJLFDPSSFDUSFTQPOTF QBHF
 FOE
 FOE )551εςʔλενΣοΫ GFBUVSFTJOGP@TQFDSC
  68. ؆қతͳ$36%ॲཧνΣοΫ EFTDSJCF͓஌Β͕ͤ౤ߘͰ͖Δ KTUSVFEP
 CFGPSFEP
 WJTJUJOGP
 
 pMM@JOUJUMF XJUI໊݅ςετ
 pMM@JOCPEZ XJUIbຊจςετ


    
 DMJDL@CVUUPOొ࿥
 FOE
 
 JU\FYQFDU QBHF UPIBWF@DPOUFOU͓஌ΒͤΛ౤ߘ͠·ͨ͠^
 FOE
  69. ಈ࡞ݕূ 

  70. ࣗݾςετ νʔϜϝϯόʔશһݕূ ಈ࡞ݕূ͸̎ஈ֊ 

  71. w*TTVFͰςετ߲໨ॻΛ༻ҙ ४උ  ## ͓ਃ͠ࠐΈ - [ ] ͓ਃ͠ࠐΈ͕ग़དྷΔ -

    [ ] ͓ਃࠐͨ͠಺༰͕DBʹొ࿥͞ΕΔ
  72. w༻ҙͨ͠ςετ߲໨ॻϕʔεʹՄೳͳݶΓશػ ೳɾϖʔδΛ֬ೝ wςετ߲໨ॻͷ࿙Ε΍ؒҧ͍͸ਵ࣌Ճචमਖ਼ wݕূˠόάमਖ਼ˠݕূΛ܁Γฦ͢ ࣗݾςετ 

  73. wϧʔϧ w νʔϜϝϯόʔશһͰߦ͏ w ேձͰࠂ஌ɺεέδϡʔϧΛ֬อ w શһಉ࣌ʹߦ͏ w ࣌ؒ͸࣌ؒ w

    ճ਺͸ճʙճ w ࣗ෼͸ݕূ͠ͳ͍ɺνʔϜϝϯόʔͷݕূͷαϙʔτ νʔϜϝϯόʔશһݕূ 
  74. w৬छผͰࢹ఺͕มΘΔͷͰݕূൣғ͕޿͕Δ wࢥ͍΋ΑΒ͵όά͕ݟ͔ͭΔ wςελʔ2"͕͍ͳ͍νʔϜʹΦεεϝ νʔϜϝϯόʔશһݕূͷϝϦοτ 

  75. ஍ຯʹେมͳόονॲཧͷݕূ 

  76. w ຊ w ຖ෼ɺຖ೔ɺຖ݄ɺ݄຤݄ॳ w ػೳ w Ұ੪ϝʔϧ഑৴ w ܖ໿ͷࣗಈߋ৽

    %# "1*ݺͼग़͠ ϝʔϧૹ৴  w 44-ূ໌ॻͷࣗಈߋ৽ w ͳͲͳͲ όονॲཧঢ়گ  ಈ࡞ݕূ͕େมʂ
  77. w 1)1ϩʔΧϧ։ൃ؀ڥͰશͯखಈ࣮ߦ w 1)1εςʔδϯά؀ڥͰϢʔβʔɾ%#ʹӨڹ͕ͳ͍ ൣғͰखಈ࣮ߦ ݕূͷ࢓ํ 

  78. w Ұϲ݄͸༷ࢠݟ w େ఍ͷόονॲཧ͸Ұϲ݄Ͱશͯ׬૸͢Δ ͱࢥ͍·͢ʣ w ݄຤݄ॳͷόονॲཧ΋͋Γ·͢ΑͶʁ ຊ൪ϦϦʔεޙͷॏཁͳϙΠϯτ 

  79. 1)1ΞοϓάϨʔυͷͦͷޙ

  80. w ຊ൪ͱಉ͡εϖοΫͷΠϯϑϥ؀ڥʹର࣮ͯ͠ࢪ w αʔϏεͷϐʔΫλΠϜ͸୆͋ͨΓඵؒ໿ϦΫΤετ w (BUMJOHʹΑΔϕϯνϚʔΫͰಉ༷ͷύϑΥʔϚϯεଌఆ ΞϓϦέʔγϣϯԠ౴଎౓ͷ޲্ʂ 

  81. w $16αΠζΛ൒෼ʹͨ͠Πϯελϯεʹ੾Γସ͑ɺ
 Πϯϑϥίετݮʹɻ $16ෛՙ͕൒෼ʹʂ 

  82. w7BHSBOU͔Β%PDLFS։ൃ؀ڥ΁ w ىಈ͕ߴ଎ w ։ൃ؀ڥͷߏஙௐ੔͕؆୯ w$PNQPTFS͕࢖͑ΔΑ͏ʹͳͬͨ ։ൃ؀ڥ 

  83. w 1)1ϦϦʔεͷ344Λ֬ೝ w ύονόʔδϣϯ Y ͸਺೔Ҏ಺ʹΞοϓάϨʔυ w $IBOHF-PHΛ֬ೝ w $*্ͰϢχοτςετɺ&&ςετ͕௨Δ

    ࠷৽όʔδϣϯΛ௥ै  $ php -v PHP 7.1.9 (cli) (built: Aug 30 2017 20:06:08) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
  84. ·ͱΊ 

  85. w1)1͔Β΁ΞοϓάϨʔυ͢Δࠔ೉ wεέδϡʔϧͷཱͯํɺෳ਺ϩʔϧ࣌ͷணखॱং wΞοϓάϨʔυجຊํ਑ w҆શ͔ͭ࡞ۀ࣌ؒ୹ॖ͢ΔͨΊͷࢪࡦ wόά΍࡞ۀ࿙ΕΛಀ͞ͳ͍ಈ࡞ݕূ wࠓޙͷΞοϓάϨʔυํ਑ ࠓ೔࿩ͨ͜͠ͱ 

  86. w ࠓޙ΋ܧଓతʹΞοϓάϨʔυ͍ͯ͘͜͠ͱ͕େ੾ w Ͱ͖Δ͚ͩ࠷৽ͷόʔδϣϯΛར༻͠ɺϢʔβʔɾ։ൃऀ ૒ํʹԸܙ͕ड͚ΒΕΔΑ͏ʹ͍͖͍ͯͨ͠ ຊ౰ͷ1)1ΞοϓάϨʔυ͸͜Ε͔Β 

  87. ͥͻ1)1ΞοϓάϨʔυͷ
 $IBMMFOHFΛʂ 

  88. ܅΋ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU