{"id":3746,"date":"2025-04-22T18:23:23","date_gmt":"2025-04-22T09:23:23","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=3746"},"modified":"2025-04-22T18:23:26","modified_gmt":"2025-04-22T09:23:26","slug":"php-%e5%ae%9a%e6%95%b0%e3%81%ae%e6%b1%ba%e5%ae%9a%e7%89%88%e3%82%ac%e3%82%a4%e3%83%89%ef%bc%9a%e5%8a%b9%e7%8e%87%e7%9a%84%e3%81%aa%e3%82%b3%e3%83%bc%e3%83%89%e3%81%ae%e3%81%9f%e3%82%81%e3%81%ae10","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=3746","title":{"rendered":"PHP \u5b9a\u6570\u306e\u6c7a\u5b9a\u7248\u30ac\u30a4\u30c9\uff1a\u52b9\u7387\u7684\u306a\u30b3\u30fc\u30c9\u306e\u305f\u3081\u306e10\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9"},"content":{"rendered":"\n<p>PHP\u3067\u958b\u767a\u3092\u3057\u3066\u3044\u308b\u3068\u3001\u300c\u3053\u306e\u5024\u306f\u7d76\u5bfe\u306b\u5909\u308f\u3089\u306a\u3044\u304b\u3089\u5b9a\u6570\u306b\u3057\u3066\u304a\u3053\u3046\u300d\u3068\u8003\u3048\u308b\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u305d\u306e\u4e00\u898b\u30b7\u30f3\u30d7\u30eb\u306a\u6c7a\u65ad\u306e\u80cc\u5f8c\u306b\u306f\u3001\u591a\u304f\u306e\u691c\u8a0e\u4e8b\u9805\u304c\u96a0\u308c\u3066\u3044\u307e\u3059\u3002\u5b9a\u6570\u3092\u3069\u3046\u547d\u540d\u3059\u3079\u304d\u304b\uff1f <code>define()<\/code> \u3068 <code>const<\/code> \u306e\u3069\u3061\u3089\u3092\u4f7f\u3046\u3079\u304d\u304b\uff1f \u30af\u30e9\u30b9\u5185\u3067\u5b9a\u7fa9\u3059\u3079\u304d\u304b\u3001\u305d\u308c\u3068\u3082\u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7\u3067\u826f\u3044\u306e\u304b\uff1f<\/p>\n\n\n\n<p>\u591a\u304f\u306ePHP\u958b\u767a\u8005\u306f\u3001\u5b9a\u6570\u3092\u5358\u306a\u308b\u300c\u5909\u66f4\u3067\u304d\u306a\u3044\u5909\u6570\u300d\u3068\u3057\u3066\u6349\u3048\u304c\u3061\u3067\u3059\u304c\u3001\u5b9f\u306f\u305d\u308c\u4ee5\u4e0a\u306e\u53ef\u80fd\u6027\u3092\u79d8\u3081\u3066\u3044\u307e\u3059\u3002\u9069\u5207\u306b\u8a2d\u8a08\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u3001\u4fdd\u5b88\u6027\u3001\u305d\u3057\u3066\u6642\u306b\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u307e\u3067\u3082\u5411\u4e0a\u3055\u305b\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3068\u306a\u308a\u5f97\u308b\u306e\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001PHP\u521d\u5fc3\u8005\u304b\u3089\u4e2d\u7d1a\u8005\u306e\u958b\u767a\u8005\u306b\u5411\u3051\u3066\u3001\u5b9a\u6570\u306e\u57fa\u672c\u304b\u3089\u5fdc\u7528\u307e\u3067\u3001\u5b9f\u8df5\u7684\u306a\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u309210\u306e\u30dd\u30a4\u30f3\u30c8\u306b\u307e\u3068\u3081\u3066\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002PHP 5\u306e\u6642\u4ee3\u304b\u3089\u6700\u65b0\u306ePHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305freadonly properties\u3068\u306e\u6bd4\u8f03\u307e\u3067\u3001\u5e45\u5e83\u304f\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5177\u4f53\u7684\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5185\u5bb9\u306b\u3064\u3044\u3066\u6df1\u6398\u308a\u3057\u3066\u3044\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u6570\u3068\u5909\u6570\u306e\u6839\u672c\u7684\u306a\u9055\u3044\u3068\u3001\u305d\u308c\u304c\u30b3\u30fc\u30c9\u306b\u3082\u305f\u3089\u3059\u5f71\u97ff<\/li>\n\n\n\n<li>\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b2\u3064\u306e\u65b9\u6cd5\u3068\u305d\u306e\u4f7f\u3044\u5206\u3051<\/li>\n\n\n\n<li>\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u5168\u4f53\u3067\u306e\u4e00\u8cab\u6027\u3092\u4fdd\u3064\u305f\u3081\u306e\u547d\u540d\u898f\u5247<\/li>\n\n\n\n<li>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u30b9\u30b3\u30fc\u30d7\u8a2d\u8a08<\/li>\n\n\n\n<li>PHP 7\/8\u3067\u5f37\u5316\u3055\u308c\u305f\u914d\u5217\u5b9a\u6570\u6a5f\u80fd\u306e\u6d3b\u7528\u6cd5<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u5b9a\u6570\u8a2d\u8a08<\/li>\n\n\n\n<li>\u30c7\u30d0\u30c3\u30b0\u3084\u958b\u767a\u52b9\u7387\u5316\u306b\u5f79\u7acb\u3064\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306e\u5b9a\u6570\u306e\u4f7f\u308f\u308c\u65b9<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u306e\u8a18\u4e8b\u3092\u8aad\u307f\u7d42\u3048\u308b\u9803\u306b\u306f\u3001\u5b9a\u6570\u306b\u5bfe\u3059\u308b\u7406\u89e3\u304c\u6df1\u307e\u308a\u3001\u3088\u308a\u6d17\u7df4\u3055\u308c\u305fPHP\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u77e5\u8b58\u304c\u8eab\u306b\u3064\u3044\u3066\u3044\u308b\u3067\u3057\u3087\u3046\u3002\u3055\u3089\u306b\u3001\u30c1\u30fc\u30e0\u958b\u767a\u306b\u304a\u3044\u3066\u4e00\u8cab\u6027\u306e\u3042\u308b\u5b9a\u6570\u8a2d\u8a08\u3092\u63d0\u6848\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u5411\u4e0a\u306b\u8ca2\u732e\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u305d\u308c\u3067\u306f\u3001PHP\u5b9a\u6570\u306e\u4e16\u754c\u3092\u4f53\u7cfb\u7684\u306b\u63a2\u3063\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">PHP \u5b9a\u6570\u3068\u306f\uff1f\u57fa\u672c\u6982\u5ff5\u3068\u91cd\u8981\u6027\u3092\u7406\u89e3\u3059\u308b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">\u5909\u6570\u3068\u306e\u9055\u3044\uff1a\u306a\u305c\u5b9a\u6570\u304c\u91cd\u8981\u306a\u306e\u304b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">PHP\u306b\u304a\u3051\u308b\u5b9a\u6570\u306e\u7a2e\u985e\u3068\u7279\u5fb4<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-8\">PHP \u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b2\u3064\u306e\u65b9\u6cd5\u3068\u305d\u306e\u4f7f\u3044\u5206\u3051<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-9\">define()\u95a2\u6570\u306e\u7279\u5fb4\u3068\u6b63\u3057\u3044\u4f7f\u3044\u65b9<\/a>      <\/li>      <li>        <a href=\"#i-13\">const\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u3063\u305f\u73fe\u4ee3\u7684\u306a\u5b9a\u7fa9\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-17\">define()\u3068const\u306e\u4f7f\u3044\u5206\u3051<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-18\">PHP \u5b9a\u6570\u306e\u547d\u540d\u898f\u5247\uff1a\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u3092\u9ad8\u3081\u308b\u305f\u3081\u306b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-19\">\u696d\u754c\u6a19\u6e96\u306b\u6cbf\u3063\u305f\u5b9a\u6570\u540d\u306e\u4ed8\u3051\u65b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-24\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u3067\u306e\u4e00\u8cab\u6027\u3092\u4fdd\u3064\u305f\u3081\u306e\u30eb\u30fc\u30eb<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-28\">\u30b9\u30b3\u30fc\u30d7\u3092\u8003\u616e\u3057\u305fPHP \u5b9a\u6570\u306e\u8a2d\u8a08<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-29\">\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-34\">\u540d\u524d\u7a7a\u9593\u3092\u6d3b\u7528\u3057\u305f\u5b9a\u6570\u306e\u7ba1\u7406\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-36\">\u914d\u5217\u5b9a\u6570\u3068\u305d\u306e\u52b9\u679c\u7684\u306a\u6d3b\u7528\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-37\">PHP\u306e\u914d\u5217\u5b9a\u6570\u5b9f\u88c5\u306e\u5909\u9077\u3068\u6700\u65b0\u624b\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-45\">\u8a2d\u5b9a\u5024\u3084\u30de\u30b9\u30bf\u30fc\u30c7\u30fc\u30bf\u3092\u5b9a\u6570\u3067\u7ba1\u7406\u3059\u308b\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-52\">PHP \u5b9a\u6570\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-53\">\u5b9a\u6570\u4f7f\u7528\u306b\u3088\u308b\u30e1\u30e2\u30ea\u3068\u51e6\u7406\u901f\u5ea6\u3078\u306e\u5f71\u97ff<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-58\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u306e\u305f\u3081\u306e\u5b9a\u6570\u6d3b\u7528\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-63\">\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u7406\u89e3\u3068\u6d3b\u7528<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-64\">PHP\u306e\u7d44\u307f\u8fbc\u307f\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u5b8c\u5168\u30ea\u30b9\u30c8<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-76\">\u30c7\u30d0\u30c3\u30b0\u3068\u958b\u767a\u52b9\u7387\u5316\u306e\u305f\u3081\u306e\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u6d3b\u7528\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-83\">\u30af\u30e9\u30b9\u8a2d\u8a08\u306b\u304a\u3051\u308bconst\u3068readonly property\u306e\u9078\u629e<\/a>    <ul class=\"menu_level_1\">      <li class=\"first last\">        <a href=\"#i-84\">PHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305freadonly property\u3068\u306e\u4f7f\u3044\u5206\u3051<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-87\">\u5b9a\u6570\u3092\u4f7f\u3063\u305f\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-88\">\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u30d5\u30e9\u30b0\u3092\u5b9a\u6570\u3067\u8868\u73fe\u3059\u308b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-95\">\u62e1\u5f35\u6027\u3092\u8003\u616e\u3057\u305f\u5b9a\u6570\u30d9\u30fc\u30b9\u306e\u30b7\u30b9\u30c6\u30e0\u8a2d\u8a08<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-99\">\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u304a\u3051\u308b\u5b9a\u6570\u306e\u6271\u3044<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-100\">Laravel\u3084Symfony\u3067\u306e\u5b9a\u6570\u6d3b\u7528\u30d1\u30bf\u30fc\u30f3<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-105\">\u30e9\u30a4\u30d6\u30e9\u30ea\u958b\u767a\u6642\u306e\u5b9a\u6570\u8a2d\u8a08\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-107\">PHP \u5b9a\u6570\u306e\u30c6\u30b9\u30c8\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-108\">\u5b9a\u6570\u306e\u5024\u3068\u4f7f\u7528\u6cd5\u3092\u78ba\u5b9f\u306b\u30c6\u30b9\u30c8\u3059\u308b\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-115\">API\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u5b9a\u6570\u3092\u9069\u5207\u306b\u8a18\u8ff0\u3059\u308b\u305f\u3081\u306e\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-119\">PHP \u5b9a\u6570\u3092\u6d3b\u7528\u3057\u305f\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u5411\u4e0a\u3078\u306e\u30b9\u30c6\u30c3\u30d7<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-120\">\u660e\u65e5\u304b\u3089\u5b9f\u8df5\u3067\u304d\u308b\u5b9a\u6570\u6d3b\u7528\u306e3\u3064\u306e\u30a2\u30af\u30b7\u30e7\u30f3<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-125\">\u5b9a\u6570\u3092\u6b63\u3057\u304f\u4f7f\u3044\u3053\u306a\u3059\u4e0a\u7d1a\u8005\u3078\u306e\u6210\u9577\u30ed\u30fc\u30c9\u30de\u30c3\u30d7<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-129\">\u307e\u3068\u3081<\/a>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">PHP \u5b9a\u6570\u3068\u306f\uff1f\u57fa\u672c\u6982\u5ff5\u3068\u91cd\u8981\u6027\u3092\u7406\u89e3\u3059\u308b<\/h2>\n\n\n\n<p>PHP\u306b\u304a\u3051\u308b\u5b9a\u6570\u3068\u306f\u3001\u4e00\u5ea6\u5b9a\u7fa9\u3059\u308b\u3068\u5909\u66f4\u3067\u304d\u306a\u3044\u56fa\u5b9a\u5024\u3092\u6301\u3064\u8b58\u5225\u5b50\u3067\u3059\u3002\u5b9a\u6570\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u5168\u4f53\u3067\u4e00\u8cab\u3057\u305f\u5024\u3092\u7dad\u6301\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306b\u4f7f\u7528\u3055\u308c\u3001\u5909\u6570\u3068\u306f\u7570\u306a\u308b\u7279\u6027\u3068\u5229\u70b9\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">\u5909\u6570\u3068\u306e\u9055\u3044\uff1a\u306a\u305c\u5b9a\u6570\u304c\u91cd\u8981\u306a\u306e\u304b<\/h3>\n\n\n\n<p>\u5909\u6570\u3068\u5b9a\u6570\u306e\u6839\u672c\u7684\u306a\u9055\u3044\u306f\u3001\u5909\u66f4\u53ef\u80fd\u6027\u306b\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u9055\u3044\u304c\u3001\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u3068\u5b89\u5168\u6027\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5909\u6570\u306e\u4f8b\n$apiUrl = 'https:\/\/api.example.com\/v1';\n$apiUrl = 'https:\/\/api.example.com\/v2'; \/\/ \u554f\u984c\u306a\u304f\u5909\u66f4\u3067\u304d\u308b\n\n\/\/ \u5b9a\u6570\u306e\u4f8b\ndefine('API_URL', 'https:\/\/api.example.com\/v1');\ndefine('API_URL', 'https:\/\/api.example.com\/v2'); \/\/ \u30a8\u30e9\u30fc: \u5b9a\u6570\u306f\u518d\u5b9a\u7fa9\u3067\u304d\u306a\u3044\n<\/pre>\n\n\n\n<p>\u5909\u6570\u3068\u5b9a\u6570\u306e\u4e3b\u306a\u9055\u3044\u3092\u8868\u306b\u307e\u3068\u3081\u308b\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-d562c57e-e13d-4003-8356-ab6836af0f26\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u7279\u6027<\/th><th>\u5909\u6570<\/th><th>\u5b9a\u6570<\/th><\/tr><\/thead><tbody><tr><td>\u5ba3\u8a00\u8a18\u53f7<\/td><td>$\u8a18\u53f7\u3067\u59cb\u307e\u308b<\/td><td>\u8a18\u53f7\u306a\u3057\uff08\u5927\u6587\u5b57\u304c\u6163\u7fd2\uff09<\/td><\/tr><tr><td>\u5909\u66f4\u53ef\u80fd\u6027<\/td><td>\u3044\u3064\u3067\u3082\u5909\u66f4\u53ef\u80fd<\/td><td>\u4e00\u5ea6\u5b9a\u7fa9\u3059\u308b\u3068\u5909\u66f4\u4e0d\u53ef<\/td><\/tr><tr><td>\u5b9a\u7fa9\u65b9\u6cd5<\/td><td>\u4ee3\u5165\u6f14\u7b97\u5b50(=)<\/td><td>define()\u95a2\u6570\u307e\u305f\u306fconst\u30ad\u30fc\u30ef\u30fc\u30c9<\/td><\/tr><tr><td>\u30b9\u30b3\u30fc\u30d7<\/td><td>\u95a2\u6570\u5185\/\u30af\u30e9\u30b9\u5185\/\u30b0\u30ed\u30fc\u30d0\u30eb<\/td><td>\u57fa\u672c\u7684\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\uff08PHP 7.0\u4ee5\u964d\u306fnamespace\u5185\u3082\u53ef\uff09<\/td><\/tr><tr><td>\u547d\u540d\u898f\u5247<\/td><td>\u4e00\u822c\u7684\u306b\u30ad\u30e3\u30e1\u30eb\u30b1\u30fc\u30b9<\/td><td>\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2<\/td><\/tr><tr><td>\u8a55\u4fa1\u30bf\u30a4\u30df\u30f3\u30b0<\/td><td>\u5b9f\u884c\u6642<\/td><td>\u901a\u5e38\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\uff08define()\u306f\u5b9f\u884c\u6642\u3082\u53ef\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u5b9a\u6570\u304c\u91cd\u8981\u3067\u3042\u308b\u7406\u7531\u306f\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30b3\u30fc\u30c9\u306e\u5b89\u5168\u6027\u5411\u4e0a<\/strong>\uff1a \u5b9a\u6570\u306f\u4e00\u5ea6\u5b9a\u7fa9\u3059\u308b\u3068\u5909\u66f4\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u91cd\u8981\u306a\u5024\u304c\u4e0d\u7528\u610f\u306b\u4e0a\u66f8\u304d\u3055\u308c\u308b\u30ea\u30b9\u30af\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u4f8b\u3048\u3070\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u60c5\u5831\u306a\u3069\u306e\u91cd\u8981\u306a\u8a2d\u5b9a\u5024\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u3001\u8aa4\u3063\u3066\u5909\u66f4\u3055\u308c\u308b\u306e\u3092\u9632\u304e\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u3088\u304f\u306a\u3044\u4f8b\uff08\u5909\u6570\u3092\u4f7f\u7528\uff09\n$dbHost = 'localhost';\n\/\/ \u5f8c\u3067\u8aa4\u3063\u3066\u4e0a\u66f8\u304d\n$dbHost = '127.0.0.1'; \/\/ \u30d0\u30b0\u306e\u539f\u56e0\u306b\u306a\u308b\u53ef\u80fd\u6027\n\n\/\/ \u826f\u3044\u4f8b\uff08\u5b9a\u6570\u3092\u4f7f\u7528\uff09\ndefine('DB_HOST', 'localhost');\n\/\/ DB_HOST = '127.0.0.1'; \/\/ \u30a8\u30e9\u30fc\u3068\u306a\u308a\u3001\u8aa4\u3063\u305f\u5909\u66f4\u3092\u9632\u6b62<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u5411\u4e0a<\/strong>\uff1a \u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\uff08\u30b3\u30fc\u30c9\u4e2d\u306b\u76f4\u63a5\u66f8\u304b\u308c\u305f\u6570\u5024\u3084\u6587\u5b57\u5217\uff09\u3092\u5b9a\u6570\u306b\u7f6e\u304d\u63db\u3048\u308b\u3053\u3068\u3067\u3001\u305d\u306e\u5024\u304c\u4f55\u3092\u610f\u5473\u3059\u308b\u306e\u304b\u304c\u660e\u78ba\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u53ef\u8aad\u6027\u304c\u4f4e\u3044\u4f8b\nif ($userRole === 1) { \/* \u7ba1\u7406\u8005\u6a29\u9650\u306e\u51e6\u7406 *\/ }\n\n\/\/ \u53ef\u8aad\u6027\u304c\u9ad8\u3044\u4f8b\ndefine('ROLE_ADMIN', 1);\nif ($userRole === ROLE_ADMIN) { \/* \u7ba1\u7406\u8005\u6a29\u9650\u306e\u51e6\u7406 *\/ }<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4fdd\u5b88\u6027\u306e\u5411\u4e0a<\/strong>\uff1a \u5024\u3092\u4e00\u304b\u6240\uff08\u5b9a\u6570\u5b9a\u7fa9\u90e8\u5206\uff09\u306b\u307e\u3068\u3081\u308b\u3053\u3068\u3067\u3001\u5909\u66f4\u304c\u5fc5\u8981\u306a\u5834\u5408\u306b\u4fee\u6b63\u7b87\u6240\u304c\u4e00\u304b\u6240\u3067\u6e08\u307f\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001API\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u5909\u66f4\u3059\u308b\u5834\u5408\u3001\u5b9a\u6570\u5b9a\u7fa9\u30921\u304b\u6240\u5909\u66f4\u3059\u308b\u3060\u3051\u3067\u3001\u5168\u3066\u306e\u53c2\u7167\u7b87\u6240\u306b\u53cd\u6620\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30d0\u30b0\u9632\u6b62<\/strong>\uff1a \u30bf\u30a4\u30d7\u30df\u30b9\u3084\u610f\u56f3\u3057\u306a\u3044\u5909\u66f4\u306b\u3088\u308b\u554f\u984c\u3092\u9632\u304e\u307e\u3059\u3002\u5b9a\u6570\u306b\u5bfe\u3059\u308b\u5909\u66f4\u3092\u8a66\u307f\u308b\u3068PHP\u304c\u30a8\u30e9\u30fc\u3092\u767a\u751f\u3055\u305b\u308b\u305f\u3081\u3001\u65e9\u671f\u306b\u554f\u984c\u3092\u767a\u898b\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u5909\u6570\u3068\u5b9a\u6570\u306f\u305d\u308c\u305e\u308c\u9069\u5207\u306a\u4f7f\u7528\u5834\u9762\u304c\u3042\u308a\u307e\u3059\u3002\u5024\u304c\u5909\u5316\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\uff08\u30eb\u30fc\u30d7\u30ab\u30a6\u30f3\u30bf\u30fc\u3001\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u5024\u3001\u8a08\u7b97\u7d50\u679c\u306a\u3069\uff09\u306f\u5909\u6570\u3092\u4f7f\u7528\u3057\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u5b9f\u884c\u4e2d\u306b\u4e00\u5b9a\u306e\u5024\u3092\u4fdd\u6301\u3059\u3079\u304d\u5834\u5408\uff08\u8a2d\u5b9a\u5024\u3001\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3001\u7269\u7406\u7684\/\u6570\u5b66\u7684\u5b9a\u6570\u306a\u3069\uff09\u306f\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u306e\u304c\u9069\u5207\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">PHP\u306b\u304a\u3051\u308b\u5b9a\u6570\u306e\u7a2e\u985e\u3068\u7279\u5fb4<\/h3>\n\n\n\n<p>PHP\u3067\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u7a2e\u985e\u306e\u5b9a\u6570\u304c\u5b58\u5728\u3057\u3001\u305d\u308c\u305e\u308c\u7279\u5fb4\u3068\u7528\u9014\u304c\u7570\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-3\">1. \u901a\u5e38\u306e\u5b9a\u6570<\/h4>\n\n\n\n<p>\u6700\u3082\u4e00\u822c\u7684\u306a\u5b9a\u6570\u3067\u3001<code>define()<\/code>\u95a2\u6570\u307e\u305f\u306f<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ define()\u3092\u4f7f\u7528\ndefine('MAX_LOGIN_ATTEMPTS', 5);\n\n\/\/ const\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\uff08PHP 5.3\u4ee5\u964d\uff09\nconst MIN_PASSWORD_LENGTH = 8;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-4\">2. \u30af\u30e9\u30b9\u5b9a\u6570<\/h4>\n\n\n\n<p>\u30af\u30e9\u30b9\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u3001\u305d\u306e\u30af\u30e9\u30b9\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u5185\u3067\u4f7f\u7528\u3055\u308c\u308b\u5b9a\u6570\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class User {\n    \/\/ \u30af\u30e9\u30b9\u5b9a\u6570\n    const STATUS_ACTIVE = 1;\n    const STATUS_INACTIVE = 0;\n    \n    public function isActive($status) {\n        return $status === self::STATUS_ACTIVE;\n    }\n}\n\n\/\/ \u30af\u30e9\u30b9\u5916\u304b\u3089\u30a2\u30af\u30bb\u30b9\necho User::STATUS_ACTIVE; \/\/ \u51fa\u529b: 1\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-5\">3. \u30de\u30b8\u30c3\u30af\u5b9a\u6570<\/h4>\n\n\n\n<p>PHP\u304c\u81ea\u52d5\u7684\u306b\u5b9a\u7fa9\u3059\u308b\u7279\u6b8a\u306a\u5b9a\u6570\u3067\u3001\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u5fdc\u3058\u3066\u5024\u304c\u5909\u308f\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo __LINE__; \/\/ \u73fe\u5728\u306e\u884c\u756a\u53f7\necho __FILE__; \/\/ \u73fe\u5728\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30d5\u30eb\u30d1\u30b9\necho __DIR__; \/\/ \u73fe\u5728\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30d1\u30b9\necho __FUNCTION__; \/\/ \u73fe\u5728\u306e\u95a2\u6570\u540d\necho __CLASS__; \/\/ \u73fe\u5728\u306e\u30af\u30e9\u30b9\u540d\necho __METHOD__; \/\/ \u73fe\u5728\u306e\u30e1\u30bd\u30c3\u30c9\u540d\necho __NAMESPACE__; \/\/ \u73fe\u5728\u306e\u540d\u524d\u7a7a\u9593\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-6\">4. \u914d\u5217\u5b9a\u6570<\/h4>\n\n\n\n<p>PHP 5.6\u4ee5\u964d\u3067\u306f\u3001\u914d\u5217\u3082\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 5.6\u4ee5\u964d\ndefine('ALLOWED_HOSTS', ['localhost', '127.0.0.1', 'example.com']);\n\n\/\/ PHP 7.0\u4ee5\u964d\u3067\u306fconst\u3067\u3082\u914d\u5217\u5b9a\u6570\u304c\u5b9a\u7fa9\u53ef\u80fd\nconst DATABASE_CONFIG = [\n    'host' =&gt; 'localhost',\n    'user' =&gt; 'root',\n    'pass' =&gt; 'secret',\n    'name' =&gt; 'mydb'\n];\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-7\">5. \u578b\u4ed8\u304d\u5b9a\u6570<\/h4>\n\n\n\n<p>PHP 7.0\u4ee5\u964d\u3067\u306f\u3001\u578b\u5ba3\u8a00\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u6570\u306e\u578b\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff08\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u307f\uff09\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Configuration {\n    \/\/ \u578b\u4ed8\u304d\u30af\u30e9\u30b9\u5b9a\u6570\uff08PHP 7.0\u4ee5\u964d\uff09\n    private const int MAX_CONNECTIONS = 100;\n    protected const string DEFAULT_CHARSET = 'UTF-8';\n}\n<\/pre>\n\n\n\n<p>PHP 7\u4ee5\u964d\u3067\u306f\u3001\u5b9a\u6570\u6a5f\u80fd\u304c\u5927\u5e45\u306b\u62e1\u5f35\u3055\u308c\u3001\u3088\u308a\u67d4\u8edf\u3067\u5805\u7262\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u7279\u306b\u3001\u914d\u5217\u5b9a\u6570\u3084\u578b\u4ed8\u304d\u5b9a\u6570\u306e\u5c0e\u5165\u306b\u3088\u308a\u3001\u8a2d\u5b9a\u5024\u3084\u5217\u6319\u578b\u306e\u3088\u3046\u306a\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u3082\u5b9a\u6570\u3068\u3057\u3066\u7ba1\u7406\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3053\u3068\u306f\u3001\u5927\u304d\u306a\u9032\u5316\u3068\u8a00\u3048\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001PHP\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b2\u3064\u306e\u4e3b\u8981\u306a\u65b9\u6cd5\u3067\u3042\u308b<code>define()<\/code>\u95a2\u6570\u3068<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u3064\u3044\u3066\u3001\u305d\u308c\u305e\u308c\u306e\u7279\u5fb4\u3068\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051\u3092\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-8\">PHP \u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b2\u3064\u306e\u65b9\u6cd5\u3068\u305d\u306e\u4f7f\u3044\u5206\u3051<\/h2>\n\n\n\n<p>PHP\u3067\u306f\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u3001\u4e3b\u306b2\u3064\u306e\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\uff1a<code>define()<\/code>\u95a2\u6570\u3068<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3067\u3059\u3002\u305d\u308c\u305e\u308c\u306b\u7279\u5fb4\u304c\u3042\u308a\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">define()\u95a2\u6570\u306e\u7279\u5fb4\u3068\u6b63\u3057\u3044\u4f7f\u3044\u65b9<\/h3>\n\n\n\n<p><code>define()<\/code>\u95a2\u6570\u306f\u3001PHP\u306e\u53e4\u304f\u304b\u3089\u3042\u308b\u5b9a\u6570\u5b9a\u7fa9\u65b9\u6cd5\u3067\u3001\u52d5\u7684\u306a\u7279\u6027\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002\u57fa\u672c\u7684\u306a\u69cb\u6587\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">define(string $name, mixed $value, bool $case_insensitive = false): bool\n<\/pre>\n\n\n\n<p>\u3053\u306e\u95a2\u6570\u306f\u6b21\u306e\u5f15\u6570\u3092\u53d6\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>$name<\/code>\uff1a\u5b9a\u6570\u306e\u540d\u524d\uff08\u6587\u5b57\u5217\uff09<\/li>\n\n\n\n<li><code>$value<\/code>\uff1a\u5b9a\u6570\u306e\u5024\uff08PHP 7.0\u4ee5\u964d\u306f\u914d\u5217\u3082\u53ef\uff09<\/li>\n\n\n\n<li><code>$case_insensitive<\/code>\uff1a\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b\u304b\u3069\u3046\u304b\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u306ffalse\uff1d\u533a\u5225\u3059\u308b\uff09 \u203bPHP 7.3\u4ee5\u964d\u3001\u3053\u306e\u5f15\u6570\u306f\u975e\u63a8\u5968\u3068\u306a\u308a\u3001\u5e38\u306b\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u304c\u533a\u5225\u3055\u308c\u307e\u3059<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\ndefine('MAX_USERS', 100);\necho MAX_USERS; \/\/ \u51fa\u529b: 100\n\n\/\/ PHP 7.0\u4ee5\u964d\u306f\u914d\u5217\u3082\u5b9a\u7fa9\u53ef\u80fd\ndefine('DATABASE_CONFIG', [\n    'host' =&gt; 'localhost',\n    'user' =&gt; 'root',\n    'password' =&gt; 'secret'\n]);\necho DATABASE_CONFIG['host']; \/\/ \u51fa\u529b: localhost\n\n\/\/ \u8fd4\u308a\u5024\u306fboolean\u578b\u3067\u3001\u5b9a\u7fa9\u306b\u6210\u529f\u3059\u308c\u3070true\nif (define('API_KEY', 'abcd1234')) {\n    echo \"\u5b9a\u6570\u306e\u5b9a\u7fa9\u306b\u6210\u529f\u3057\u307e\u3057\u305f\";\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-10\">define()\u95a2\u6570\u306e\u4e3b\u306a\u7279\u5fb4<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b<\/strong> <code>define()<\/code>\u306f\u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u3001\u6761\u4ef6\u5206\u5c90\u5185\u3067\u7570\u306a\u308b\u5024\u3092\u8a2d\u5b9a\u3057\u305f\u308a\u3001\u52d5\u7684\u306a\u5024\u3092\u4f7f\u7528\u3057\u305f\u308a\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u74b0\u5883\u306b\u5fdc\u3058\u3066\u7570\u306a\u308b\u5024\u3092\u8a2d\u5b9a\nif (getenv('ENVIRONMENT') === 'production') {\n    define('DEBUG_MODE', false);\n} else {\n    define('DEBUG_MODE', true);\n}\n\n\/\/ \u52d5\u7684\u306a\u5b9a\u6570\u540d\n$prefix = 'APP_';\ndefine($prefix . 'VERSION', '1.0.0');\necho APP_VERSION; \/\/ \u51fa\u529b: 1.0.0<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7<\/strong> <code>define()<\/code>\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5b9a\u6570\u306f\u57fa\u672c\u7684\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7\u3068\u306a\u308a\u3001\u540d\u524d\u7a7a\u9593\u306e\u5f71\u97ff\u3092\u53d7\u3051\u307e\u305b\u3093\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App\\Config;\n\ndefine('SITE_URL', 'https:\/\/example.com');\n\nnamespace App\\Controller;\n\n\/\/ \u540d\u524d\u7a7a\u9593\u304c\u7570\u306a\u3063\u3066\u3082\u76f4\u63a5\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\necho SITE_URL; \/\/ \u51fa\u529b: https:\/\/example.com<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u540d\u524d\u7a7a\u9593\u5185\u3067\u306e\u5b9a\u7fa9\uff08PHP 5.3\u4ee5\u964d\uff09<\/strong> PHP 5.3\u4ee5\u964d\u3067\u306f\u3001\u540d\u524d\u7a7a\u9593\u4ed8\u304d\u306e\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App;\n\n\/\/ \u540d\u524d\u7a7a\u9593\u4ed8\u304d\u306e\u5b9a\u6570\u3092\u5b9a\u7fa9\ndefine('App\\DATABASE_NAME', 'my_database');\n\n\/\/ \u540c\u3058\u540d\u524d\u7a7a\u9593\u5185\u304b\u3089\u30a2\u30af\u30bb\u30b9\necho DATABASE_NAME; \/\/ \u51fa\u529b: my_database\n\n\/\/ \u5225\u306e\u540d\u524d\u7a7a\u9593\u304b\u3089\u30a2\u30af\u30bb\u30b9\nnamespace Another;\necho \\App\\DATABASE_NAME; \/\/ \u51fa\u529b: my_database<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-11\">define()\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u3079\u304d\u5834\u9762<\/h4>\n\n\n\n<p><code>define()<\/code>\u95a2\u6570\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5834\u9762\u3067\u7279\u306b\u6709\u7528\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u52d5\u7684\u306a\u5b9a\u6570\u540d\u304c\u5fc5\u8981\u306a\u5834\u5408<\/strong> \u5909\u6570\u3092\u4f7f\u3063\u3066\u5b9a\u6570\u540d\u3092\u69cb\u7bc9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306f\u3001<code>define()<\/code>\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u6761\u4ef6\u4ed8\u304d\u3067\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u5834\u5408<\/strong> \u74b0\u5883\u3084\u305d\u306e\u4ed6\u306e\u6761\u4ef6\u306b\u57fa\u3065\u3044\u3066\u5b9a\u6570\u306e\u5024\u3092\u5909\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u3002<\/li>\n\n\n\n<li><strong>\u540d\u524d\u7a7a\u9593\u306e\u5f71\u97ff\u3092\u53d7\u3051\u305f\u304f\u306a\u3044\u5834\u5408<\/strong> \u7570\u306a\u308b\u540d\u524d\u7a7a\u9593\u304b\u3089\u7c21\u5358\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u304c\u5fc5\u8981\u306a\u5834\u5408\u3002<\/li>\n\n\n\n<li><strong>\u5b9f\u884c\u6642\u306b\u5024\u304c\u6c7a\u307e\u308b\u5834\u5408<\/strong> \u74b0\u5883\u5909\u6570\u3001\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306a\u3069\u304b\u3089\u5024\u3092\u53d6\u5f97\u3057\u3066\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u5834\u5408\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-12\">define()\u95a2\u6570\u4f7f\u7528\u6642\u306e\u6ce8\u610f\u70b9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30af\u30e9\u30b9\u5185\u3067\u306f\u4f7f\u7528\u3067\u304d\u306a\u3044<\/strong> <code>define()<\/code>\u306f\u30af\u30e9\u30b9\u5185\u3067\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u30af\u30e9\u30b9\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u5834\u5408\u306f<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3078\u306e\u8003\u616e<\/strong> <code>define()<\/code>\u306f\u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u3001<code>const<\/code>\u306b\u6bd4\u3079\u3066\u308f\u305a\u304b\u306b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u52a3\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u547d\u540d\u898f\u5247\u306e\u4e00\u8cab\u6027<\/strong> \u6163\u7fd2\u7684\u306b\u3001<code>define()<\/code>\u3067\u5b9a\u7fa9\u3059\u308b\u5b9a\u6570\u540d\u306f\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-13\">const\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u3063\u305f\u73fe\u4ee3\u7684\u306a\u5b9a\u7fa9\u65b9\u6cd5<\/h3>\n\n\n\n<p><code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u306fPHP 5.3\u4ee5\u964d\u3067\u8ffd\u52a0\u3055\u308c\u305f\u3001\u3088\u308a\u73fe\u4ee3\u7684\u306a\u5b9a\u6570\u5b9a\u7fa9\u65b9\u6cd5\u3067\u3059\u3002\u4e3b\u306b\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u5b9a\u7fa9\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u304c\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7\u3067\u3082\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7\u3067\u306e\u5b9a\u7fa9\nconst MAX_UPLOAD_SIZE = 10485760; \/\/ 10MB\n\n\/\/ \u30af\u30e9\u30b9\u5185\u3067\u306e\u5b9a\u7fa9\nclass User {\n    const STATUS_ACTIVE = 1;\n    const STATUS_INACTIVE = 0;\n    \n    \/\/ PHP 7.1\u4ee5\u964d\u3067\u306f\u30a2\u30af\u30bb\u30b9\u4fee\u98fe\u5b50\u304c\u4f7f\u7528\u53ef\u80fd\n    private const API_SECRET = 'private_key';\n    protected const DEFAULT_ROLE = 'user';\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-14\">const\u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u4e3b\u306a\u7279\u5fb4<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b<\/strong> <code>const<\/code>\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u3001\u9759\u7684\u306a\u5024\u3057\u304b\u8a2d\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u3053\u308c\u306f\u52d5\u4f5c\u3059\u308b\nconst API_VERSION = '1.0';\n\n\/\/ \u3053\u308c\u306f\u30a8\u30e9\u30fc\u306b\u306a\u308b\nconst CURRENT_TIME = time(); \/\/ \u81f4\u547d\u7684\u306a\u30a8\u30e9\u30fc: \u5b9a\u6570\u5f0f\u306b\u52d5\u7684\u306a\u5024\u306f\u4f7f\u7528\u3067\u304d\u306a\u3044<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u540d\u524d\u7a7a\u9593\u306e\u5f71\u97ff\u3092\u53d7\u3051\u308b<\/strong> <code>const<\/code>\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001\u540d\u524d\u7a7a\u9593\u306e\u5f71\u97ff\u3092\u53d7\u3051\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App;\n\nconst DB_NAME = 'app_database';\n\n\/\/ \u540c\u3058\u540d\u524d\u7a7a\u9593\u5185\u304b\u3089\u30a2\u30af\u30bb\u30b9\necho DB_NAME; \/\/ \u51fa\u529b: app_database\n\n\/\/ \u5225\u306e\u540d\u524d\u7a7a\u9593\u304b\u3089\u30a2\u30af\u30bb\u30b9\nnamespace Another;\necho \\App\\DB_NAME; \/\/ \u51fa\u529b: app_database<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30af\u30e9\u30b9\u5185\u3067\u4f7f\u7528\u53ef\u80fd<\/strong> <code>const<\/code>\u306f\u30af\u30e9\u30b9\u5185\u3067\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306e\u6a19\u6e96\u7684\u306a\u65b9\u6cd5\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Payment {\n    const TYPE_CREDIT = 'credit';\n    const TYPE_DEBIT = 'debit';\n    const TYPE_CASH = 'cash';\n\n    public function isValidType($type) {\n        return in_array($type, [\n            self::TYPE_CREDIT,\n            self::TYPE_DEBIT,\n            self::TYPE_CASH\n        ]);\n    }\n}\n\n\/\/ \u30af\u30e9\u30b9\u5916\u304b\u3089\u30a2\u30af\u30bb\u30b9\necho Payment::TYPE_CREDIT; \/\/ \u51fa\u529b: credit<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u53ef\u8996\u6027\u306e\u6307\u5b9a\uff08PHP 7.1\u4ee5\u964d\uff09<\/strong> PHP 7.1\u4ee5\u964d\u3067\u306f\u3001\u30af\u30e9\u30b9\u5b9a\u6570\u306b\u30a2\u30af\u30bb\u30b9\u4fee\u98fe\u5b50\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Configuration {\n    \/\/ \u5916\u90e8\u304b\u3089\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\n    public const VERSION = '2.0.0';\n\n    \/\/ \u540c\u3058\u30af\u30e9\u30b9\u3068\u305d\u306e\u5b50\u30af\u30e9\u30b9\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\n    protected const SALT = 'xyz123';\n\n    \/\/ \u540c\u3058\u30af\u30e9\u30b9\u5185\u304b\u3089\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\n    private const API_SECRET = 'private_key';\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u578b\u4ed8\u304d\u5b9a\u6570\uff08PHP 8.0\u4ee5\u964d\uff09<\/strong> PHP 8.0\u4ee5\u964d\u3067\u306f\u3001\u578b\u5ba3\u8a00\u3092\u4f7f\u7528\u3057\u3066\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u578b\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Limits {\n    public const int MAX_ATTEMPTS = 5;\n    protected const string DEFAULT_LOCALE = 'en_US';\n    private const array SUPPORTED_FORMATS = ['json', 'xml', 'yaml'];\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-15\">const\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3059\u308b\u3079\u304d\u5834\u9762<\/h4>\n\n\n\n<p><code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5834\u9762\u3067\u7279\u306b\u6709\u7528\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30af\u30e9\u30b9\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u5834\u5408<\/strong> \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u306f\u3001\u30af\u30e9\u30b9\u306b\u95a2\u9023\u3059\u308b\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b<code>const<\/code>\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u9759\u7684\u306b\u5024\u304c\u6c7a\u307e\u3063\u3066\u3044\u308b\u5834\u5408<\/strong> \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u5024\u304c\u6c7a\u5b9a\u3055\u308c\u308b\u9759\u7684\u306a\u5b9a\u6570\u306b\u306f<code>const<\/code>\u304c\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u91cd\u8996\u3059\u308b\u5834\u5408<\/strong> <code>const<\/code>\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u3001\u308f\u305a\u304b\u306b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u578b\u5b89\u5168\u6027\u3092\u78ba\u4fdd\u3057\u305f\u3044\u5834\u5408\uff08PHP 8.0\u4ee5\u964d\uff09<\/strong> \u578b\u5ba3\u8a00\u3092\u4f7f\u7528\u3057\u3066\u3001\u5b9a\u6570\u306e\u578b\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\u3057\u305f\u3044\u5834\u5408\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-16\">const\u30ad\u30fc\u30ef\u30fc\u30c9\u4f7f\u7528\u6642\u306e\u6ce8\u610f\u70b9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u52d5\u7684\u306a\u5024\u306f\u4f7f\u7528\u3067\u304d\u306a\u3044<\/strong> \u95a2\u6570\u306e\u623b\u308a\u5024\u3084\u5909\u6570\u306a\u3069\u3001\u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u5f0f\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002<\/li>\n\n\n\n<li><strong>\u6761\u4ef6\u4ed8\u304d\u5b9a\u7fa9\u304c\u3067\u304d\u306a\u3044<\/strong> \u6761\u4ef6\u5206\u5c90\u5185\u3067\u7570\u306a\u308b\u5024\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002<\/li>\n\n\n\n<li><strong>\u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7\u3067\u306e\u53ef\u8996\u6027\u6307\u5b9a\u306f\u3067\u304d\u306a\u3044<\/strong> \u53ef\u8996\u6027\u4fee\u98fe\u5b50\uff08public, protected, private\uff09\u306f\u30af\u30e9\u30b9\u5b9a\u6570\u3067\u306e\u307f\u4f7f\u7528\u53ef\u80fd\u3067\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">define()\u3068const\u306e\u4f7f\u3044\u5206\u3051<\/h3>\n\n\n\n<p>\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u4ee5\u4e0b\u306f\u9078\u629e\u306e\u76ee\u5b89\u3067\u3059\uff1a<\/p>\n\n\n<div id=\"id-a0238655-bf1f-4b3d-9143-41b918086ed0\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u8981\u4ef6<\/th><th>\u63a8\u5968\u3055\u308c\u308b\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>\u30af\u30e9\u30b9\u5185\u5b9a\u6570<\/td><td>const<\/td><\/tr><tr><td>\u52d5\u7684\u306a\u5b9a\u6570\u540d<\/td><td>define()<\/td><\/tr><tr><td>\u6761\u4ef6\u4ed8\u304d\u5b9a\u7fa9<\/td><td>define()<\/td><\/tr><tr><td>\u540d\u524d\u7a7a\u9593\u306e\u5f71\u97ff\u3092\u53d7\u3051\u306a\u3044\u5b9a\u6570<\/td><td>define()<\/td><\/tr><tr><td>\u9759\u7684\u306a\u5024\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570<\/td><td>const\uff08\u8aad\u307f\u3084\u3059\u3055\uff09\u307e\u305f\u306fdefine()<\/td><\/tr><tr><td>\u5b9f\u884c\u6642\u306b\u5024\u304c\u6c7a\u307e\u308b\u5b9a\u6570<\/td><td>define()<\/td><\/tr><tr><td>\u578b\u4ed8\u304d\u5b9a\u6570\uff08PHP 8.0\u4ee5\u964d\uff09<\/td><td>const<\/td><\/tr><tr><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u91cd\u8996<\/td><td>const<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u73fe\u4ee3\u7684\u306aPHP\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3067\u306f\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u4e21\u65b9\u306e\u65b9\u6cd5\u3092\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u304c\u3001\u53ef\u8aad\u6027\u304c\u9ad8\u304f\u4fdd\u5b88\u3057\u3084\u3059\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u305f\u3081\u306e\u9375\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-18\">PHP \u5b9a\u6570\u306e\u547d\u540d\u898f\u5247\uff1a\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u3092\u9ad8\u3081\u308b\u305f\u3081\u306b<\/h2>\n\n\n\n<p>\u9069\u5207\u306a\u547d\u540d\u898f\u5247\u306b\u5f93\u3063\u305f\u5b9a\u6570\u306f\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u307e\u3059\u3002\u5b9a\u6570\u540d\u3092\u898b\u305f\u3060\u3051\u3067\u3001\u305d\u306e\u76ee\u7684\u3084\u5024\u306e\u610f\u5473\u304c\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-19\">\u696d\u754c\u6a19\u6e96\u306b\u6cbf\u3063\u305f\u5b9a\u6570\u540d\u306e\u4ed8\u3051\u65b9<\/h3>\n\n\n\n<p>PHP\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u306f\u3001\u5b9a\u6570\u306e\u547d\u540d\u306b\u3064\u3044\u3066\u5e83\u304f\u53d7\u3051\u5165\u308c\u3089\u308c\u3066\u3044\u308b\u6163\u7fd2\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u6163\u7fd2\u306b\u5f93\u3046\u3053\u3068\u3067\u3001\u4ed6\u306e\u958b\u767a\u8005\u304c\u30b3\u30fc\u30c9\u3092\u7406\u89e3\u3057\u3084\u3059\u304f\u306a\u308a\u3001\u30c1\u30fc\u30e0\u958b\u767a\u304c\u30b9\u30e0\u30fc\u30ba\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-20\">\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u306e\u4f7f\u7528<\/h4>\n\n\n\n<p>\u5b9a\u6570\u540d\u306f\u4f1d\u7d71\u7684\u306b<strong>\u5927\u6587\u5b57<\/strong>\u3067\u8a18\u8ff0\u3057\u3001\u8907\u6570\u306e\u5358\u8a9e\u3092\u542b\u3080\u5834\u5408\u306f<strong>\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2<\/strong>\uff08_\uff09\u3067\u533a\u5207\u308a\u307e\u3059\u3002\u3053\u308c\u306fPSR-12\u306a\u3069\u306ePHP\u6a19\u6e96\u52e7\u544a\u3067\u3082\u63a8\u5968\u3055\u308c\u3066\u3044\u308b\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u826f\u3044\u4f8b\uff08\u63a8\u5968\u3055\u308c\u308b\u547d\u540d\u898f\u5247\uff09\ndefine('MAX_UPLOAD_SIZE', 10485760);\nconst DATABASE_HOST = 'localhost';\nconst API_VERSION = '1.0';\n\n\/\/ \u907f\u3051\u308b\u3079\u304d\u4f8b\ndefine('maxUploadSize', 10485760); \/\/ \u30ad\u30e3\u30e1\u30eb\u30b1\u30fc\u30b9\uff08\u5909\u6570\u98a8\uff09\nconst databaseHost = 'localhost';  \/\/ \u5c0f\u6587\u5b57\uff08\u5909\u6570\u98a8\uff09\nconst ApiVersion = '1.0';         \/\/ \u30d1\u30b9\u30ab\u30eb\u30b1\u30fc\u30b9\uff08\u30af\u30e9\u30b9\u98a8\uff09\n<\/pre>\n\n\n\n<p>\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3092\u4f7f\u7528\u3059\u308b\u7406\u7531\u306f\u4e3b\u306b2\u3064\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u8996\u899a\u7684\u306a\u533a\u5225<\/strong>: \u5909\u6570\uff08$variable\uff09\u3084\u30af\u30e9\u30b9\u540d\uff08ClassName\uff09\u3068\u660e\u78ba\u306b\u533a\u5225\u3067\u304d\u308b<\/li>\n\n\n\n<li><strong>\u610f\u56f3\u306e\u660e\u78ba\u5316<\/strong>: \u30b3\u30fc\u30c9\u5185\u3067\u300c\u3053\u308c\u306f\u5909\u66f4\u3055\u308c\u306a\u3044\u5024\u300d\u3068\u3044\u3046\u610f\u56f3\u304c\u4f1d\u308f\u308a\u3084\u3059\u3044<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-21\">\u610f\u5473\u304c\u660e\u78ba\u306a\u5b9a\u6570\u540d\u3092\u4f5c\u308b\u305f\u3081\u306e\u539f\u5247<\/h4>\n\n\n\n<p>\u5b9a\u6570\u540d\u306f\u3001\u305d\u306e\u5024\u304c\u4f55\u3092\u8868\u3059\u306e\u304b\u3092\u660e\u78ba\u306b\u793a\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u539f\u5247\u306b\u5f93\u3063\u3066\u547d\u540d\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u610f\u5473\u306e\u3042\u308b\u5b9a\u6570\u540d\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5177\u4f53\u7684\u304b\u3064\u8a18\u8ff0\u7684\u306a\u540d\u524d\u3092\u4f7f\u7528\u3059\u308b<\/strong> \u5024\u306e\u76ee\u7684\u3084\u610f\u56f3\u3092\u660e\u78ba\u306b\u8868\u3059\u540d\u524d\u3092\u9078\u3073\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u826f\u3044\u4f8b\nconst MAX_LOGIN_ATTEMPTS = 5;\nconst DEFAULT_TIMEZONE = 'UTC';\n\n\/\/ \u826f\u304f\u306a\u3044\u4f8b\nconst MAX = 5;            \/\/ \u4f55\u306e\u6700\u5927\u5024\uff1f\nconst SETTING = 'UTC';    \/\/ \u3069\u3093\u306a\u8a2d\u5b9a\uff1f<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u63a5\u982d\u8f9e\u3067\u30b0\u30eb\u30fc\u30d7\u5316\u3059\u308b<\/strong> \u95a2\u9023\u3059\u308b\u5b9a\u6570\u306b\u306f\u5171\u901a\u306e\u63a5\u982d\u8f9e\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u95a2\u9023\u6027\u304c\u660e\u78ba\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30e6\u30fc\u30b6\u30fc\u30ed\u30fc\u30eb\u95a2\u9023\u306e\u5b9a\u6570\nconst ROLE_ADMIN = 'admin';\nconst ROLE_EDITOR = 'editor';\nconst ROLE_USER = 'user';\n\n\/\/ \u30ed\u30b0\u30ec\u30d9\u30eb\u95a2\u9023\u306e\u5b9a\u6570\nconst LOG_LEVEL_INFO = 1;\nconst LOG_LEVEL_WARNING = 2;\nconst LOG_LEVEL_ERROR = 3;<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u547d\u540d\u30d1\u30bf\u30fc\u30f3\u3092\u4e00\u8cab\u3055\u305b\u308b<\/strong> \u7279\u5b9a\u306e\u30ab\u30c6\u30b4\u30ea\u306e\u5b9a\u6570\u306b\u306f\u3001\u4e00\u8cab\u3057\u305f\u547d\u540d\u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n<div id=\"id-55db2d65-49d7-481b-b12d-86781a3576e5\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>\u30ab\u30c6\u30b4\u30ea<\/td><td>\u547d\u540d\u30d1\u30bf\u30fc\u30f3<\/td><td>\u4f8b<\/td><\/tr><tr><td>\u30d5\u30e9\u30b0<\/td><td>IS_, HAS_<\/td><td>IS_ACTIVE, HAS_CHILDREN<\/td><\/tr><tr><td>\u8a2d\u5b9a\u5024<\/td><td>CONFIG_, SETTING_<\/td><td>CONFIG_PATH, SETTING_THEME<\/td><\/tr><tr><td>\u6700\u5927\/\u6700\u5c0f\u5024<\/td><td>MAX_, MIN_<\/td><td>MAX_USERS, MIN_PASSWORD_LENGTH<\/td><\/tr><tr><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u5024<\/td><td>DEFAULT_*<\/td><td>DEFAULT_LANGUAGE, DEFAULT_TIMEOUT<\/td><\/tr><tr><td>\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9<\/td><td>ERROR_, E_<\/td><td>ERROR_NOT_FOUND, E_DATABASE_CONNECTION<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u7565\u8a9e\u306f\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b<\/strong> \u5e83\u304f\u77e5\u3089\u308c\u3066\u3044\u308b\u7565\u8a9e\uff08URL, ID, XML\u306a\u3069\uff09\u306f\u4f7f\u7528\u3057\u3066\u554f\u984c\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u72ec\u81ea\u306e\u7565\u8a9e\u306f\u907f\u3051\u308b\u3079\u304d\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u826f\u3044\u4f8b\nconst API_URL = 'https:\/\/api.example.com';\nconst USER_ID_FIELD = 'user_id';\n\n\/\/ \u907f\u3051\u308b\u3079\u304d\u4f8b\nconst USRINF = 'user_info';        \/\/ \u7565\u8a9e\u304c\u4e0d\u660e\u78ba\nconst DBCONN = 'db_connection';    \/\/ \u7565\u8a9e\u304c\u4e0d\u660e\u78ba<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Boolean\u5024\u306e\u5b9a\u6570\u306f\u8cea\u554f\u5f62\u5f0f\u3067<\/strong> \u771f\u507d\u5024\u3092\u8868\u3059\u5b9a\u6570\u306f\u3001\u300c\u301c\u304b\u3069\u3046\u304b\u300d\u3092\u8868\u3059\u547d\u540d\u306b\u3059\u308b\u3068\u610f\u56f3\u304c\u660e\u78ba\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">const IS_PRODUCTION = true;\nconst HAS_PREMIUM_FEATURES = false;\nconst SHOULD_LOG_ERRORS = true;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-22\">\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u547d\u540d\u898f\u5247<\/h4>\n\n\n\n<p>\u30af\u30e9\u30b9\u5b9a\u6570\u3082\u57fa\u672c\u7684\u306b\u306f\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3092\u4f7f\u7528\u3057\u307e\u3059\u304c\u3001\u30af\u30e9\u30b9\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u5185\u306b\u9650\u5b9a\u3055\u308c\u308b\u305f\u3081\u3001\u63a5\u982d\u8f9e\u3092\u7c21\u7565\u5316\u3067\u304d\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class User {\n    \/\/ \u30af\u30e9\u30b9\u540d\u304c\u3059\u3067\u306b\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u3001USER_\u63a5\u982d\u8f9e\u306f\u4e0d\u8981\n    const STATUS_ACTIVE = 1;\n    const STATUS_INACTIVE = 0;\n    const STATUS_BANNED = -1;\n    \n    \/\/ \u30af\u30e9\u30b9\u5185\u3067\u95a2\u9023\u3059\u308b\u5b9a\u6570\u306e\u30b0\u30eb\u30fc\u30d7\n    const PERMISSION_READ = 1;\n    const PERMISSION_WRITE = 2;\n    const PERMISSION_DELETE = 4;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nif ($user-&gt;status === User::STATUS_ACTIVE) {\n    \/\/ \u30a2\u30af\u30c6\u30a3\u30d6\u30e6\u30fc\u30b6\u30fc\u306e\u51e6\u7406\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-23\">\u540d\u524d\u7a7a\u9593\u3092\u8003\u616e\u3057\u305f\u547d\u540d<\/h4>\n\n\n\n<p>\u540d\u524d\u7a7a\u9593\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u5b9a\u6570\u540d\u306e\u91cd\u8907\u3092\u907f\u3051\u308b\u305f\u3081\u306b\u4f7f\u7528\u3057\u3066\u3044\u305f\u9577\u3044\u63a5\u982d\u8f9e\u3092\u7701\u7565\u3067\u304d\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App\\Payment;\n\n\/\/ Payment\u540d\u524d\u7a7a\u9593\u5185\u306a\u306e\u3067\u3001PAYMENT_\u63a5\u982d\u8f9e\u306f\u4e0d\u8981\nconst METHOD_CREDIT = 'credit';\nconst METHOD_PAYPAL = 'paypal';\nconst METHOD_BANK = 'bank';\n\n\/\/ \u4f7f\u7528\u4f8b\nuse App\\Payment;\n$method = Payment\\METHOD_CREDIT;\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-24\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u3067\u306e\u4e00\u8cab\u6027\u3092\u4fdd\u3064\u305f\u3081\u306e\u30eb\u30fc\u30eb<\/h3>\n\n\n\n<p>\u30c1\u30fc\u30e0\u958b\u767a\u306b\u304a\u3044\u3066\u306f\u3001\u5b9a\u6570\u306e\u547d\u540d\u898f\u5247\u3092\u660e\u78ba\u306b\u5b9a\u7fa9\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u3067\u4e00\u8cab\u6027\u3092\u4fdd\u3064\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u547d\u540d\u898f\u5247\u306f\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u898f\u7d04\u306e\u4e00\u90e8\u3068\u3057\u3066\u6587\u66f8\u5316\u3057\u3066\u304a\u304f\u3079\u304d\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-25\">\u5171\u901a\u306e\u63a5\u982d\u8f9e\u3092\u4f7f\u7528\u3059\u308b<\/h4>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4e00\u610f\u306e\u5b9a\u6570\u540d\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306b\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u540d\u3084\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\u3092\u63a5\u982d\u8f9e\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u6709\u52b9\u306a\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u8a2d\u5b9a\nconst APP_NAME = 'My Awesome App';\nconst APP_VERSION = '1.2.3';\n\n\/\/ \u652f\u6255\u3044\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u5b9a\u6570\nconst PAYMENT_GATEWAY_URL = 'https:\/\/payment.example.com';\nconst PAYMENT_API_KEY = 'xyz123';\n\n\/\/ \u30e6\u30fc\u30b6\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u5b9a\u6570\nconst USER_SESSION_TIMEOUT = 3600;\nconst USER_PASSWORD_MIN_LENGTH = 8;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-26\">\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3068\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u306e\u52b9\u679c\u7684\u306a\u4f7f\u7528<\/h4>\n\n\n\n<p>\u5b9a\u6570\u306e\u7a2e\u985e\u3084\u76ee\u7684\u3092\u660e\u78ba\u306b\u3059\u308b\u305f\u3081\u306b\u3001\u4e00\u8cab\u3057\u305f\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3068\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u8a2d\u5b9a\u5024\u306e\u63a5\u982d\u8f9e\nconst CONFIG_DATABASE_HOST = 'localhost';\nconst CONFIG_MAIL_SERVER = 'smtp.example.com';\n\n\/\/ \u30d1\u30b9\u306e\u63a5\u5c3e\u8f9e\nconst UPLOAD_PATH = '\/var\/www\/uploads\/';\nconst CACHE_PATH = '\/var\/www\/cache\/';\n\n\/\/ \u6642\u9593\u95a2\u9023\u306e\u63a5\u5c3e\u8f9e\uff08\u5358\u4f4d\u3092\u542b\u3081\u308b\uff09\nconst LOGIN_TIMEOUT_SECONDS = 1800;\nconst CACHE_EXPIRY_MINUTES = 60;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-27\">\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc\u3067\u78ba\u8a8d\u3059\u3079\u304d\u30dd\u30a4\u30f3\u30c8<\/h4>\n\n\n\n<p>\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc\u306e\u969b\u306f\u3001\u5b9a\u6570\u306e\u547d\u540d\u306b\u3064\u3044\u3066\u4ee5\u4e0b\u306e\u70b9\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u547d\u540d\u898f\u5247\u304c\u4e00\u8cab\u3057\u3066\u3044\u308b\u304b<\/li>\n\n\n\n<li>\u5b9a\u6570\u540d\u304c\u5024\u306e\u76ee\u7684\u3092\u660e\u78ba\u306b\u793a\u3057\u3066\u3044\u308b\u304b<\/li>\n\n\n\n<li>\u4e0d\u5fc5\u8981\u306a\u7565\u8a9e\u3084\u66d6\u6627\u306a\u540d\u524d\u3092\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u304b<\/li>\n\n\n\n<li>\u540c\u3058\u7a2e\u985e\u306e\u5b9a\u6570\u306b\u5bfe\u3057\u3066\u4e00\u8cab\u3057\u305f\u547d\u540d\u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b<\/li>\n\n\n\n<li>\u540d\u524d\u7a7a\u9593\u3084\u30af\u30e9\u30b9\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u8003\u616e\u3057\u3066\u3001\u4e0d\u8981\u306a\u5197\u9577\u6027\u304c\u306a\u3044\u304b<\/li>\n<\/ol>\n\n\n\n<p>\u9069\u5207\u306a\u547d\u540d\u898f\u5247\u306b\u5f93\u3063\u305f\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306f\u81ea\u5df1\u6587\u66f8\u5316\u3055\u308c\u3001\u4fdd\u5b88\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002\u65b0\u3057\u3044\u30c1\u30fc\u30e0\u30e1\u30f3\u30d0\u30fc\u304c\u30b3\u30fc\u30c9\u3092\u7406\u89e3\u3057\u3084\u3059\u304f\u306a\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u6570\u30f6\u6708\u5f8c\u306b\u81ea\u5206\u81ea\u8eab\u304c\u30b3\u30fc\u30c9\u3092\u898b\u76f4\u3059\u969b\u306b\u3082\u3001\u305d\u306e\u610f\u56f3\u304c\u660e\u78ba\u306b\u4f1d\u308f\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-28\">\u30b9\u30b3\u30fc\u30d7\u3092\u8003\u616e\u3057\u305fPHP \u5b9a\u6570\u306e\u8a2d\u8a08<\/h2>\n\n\n\n<p>\u5b9a\u6570\u3092\u52b9\u679c\u7684\u306b\u6d3b\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u9069\u5207\u306a\u30b9\u30b3\u30fc\u30d7\u8a2d\u8a08\u304c\u4e0d\u53ef\u6b20\u3067\u3059\u3002PHP\u3067\u306f\u4e3b\u306b\u300c\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u300d\u3068\u300c\u30af\u30e9\u30b9\u5b9a\u6570\u300d\u306e2\u7a2e\u985e\u306e\u30b9\u30b3\u30fc\u30d7\u304c\u5b58\u5728\u3057\u3001\u305d\u308c\u305e\u308c\u7570\u306a\u308b\u7279\u6027\u3068\u7528\u9014\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-29\">\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051<\/h3>\n\n\n\n<p>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u306f\u3001\u305d\u308c\u305e\u308c\u306e\u7279\u6027\u3092\u7406\u89e3\u3057\u3001\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-30\">\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u306e\u7279\u5fb4\u3068\u5229\u70b9<\/h4>\n\n\n\n<p>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u304b\u3089\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a\u5b9a\u6570\u3067\u3059\u3002<code>define()<\/code>\u95a2\u6570\u307e\u305f\u306f\u540d\u524d\u7a7a\u9593\u5185\u3067\u306e<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ define()\u306b\u3088\u308b\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u306e\u5b9a\u7fa9\ndefine('APP_NAME', 'My PHP Application');\ndefine('APP_VERSION', '1.0.0');\n\n\/\/ const\u306b\u3088\u308b\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u306e\u5b9a\u7fa9\uff08\u540d\u524d\u7a7a\u9593\u5185\uff09\nnamespace App\\Config;\n\nconst DEBUG_MODE = true;\nconst BASE_PATH = '\/var\/www\/html';\n<\/pre>\n\n\n\n<p>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u306e\u4e3b\u306a\u5229\u70b9:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b7\u30f3\u30d7\u30eb\u3067\u76f4\u63a5\u7684\u306a\u30a2\u30af\u30bb\u30b9<\/strong> \u30b3\u30fc\u30c9\u5185\u306e\u3069\u3053\u304b\u3089\u3067\u3082\u76f4\u63a5\u53c2\u7167\u3067\u304d\u308b\u305f\u3081\u3001\u5171\u901a\u8a2d\u5b9a\u5024\u306b\u6700\u9069\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30af\u30e9\u30b9\u306b\u4f9d\u5b58\u3057\u306a\u3044<\/strong> \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08\u306e\u5916\u5074\u3067\u3082\u4f7f\u7528\u3067\u304d\u308b\u305f\u3081\u3001\u57fa\u672c\u8a2d\u5b9a\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u540d\u524d\u7a7a\u9593\u306b\u3088\u308b\u7d44\u7e54\u5316<\/strong> PHP 5.3\u4ee5\u964d\u306f\u540d\u524d\u7a7a\u9593\u3092\u4f7f\u7528\u3057\u3066\u95a2\u9023\u3059\u308b\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App\\Database;\nconst HOST = 'localhost';\nconst USER = 'root';\n\nnamespace App\\Mail;\nconst HOST = 'smtp.example.com'; \/\/ \u540c\u3058HOST\u540d\u3067\u3082\u540d\u524d\u7a7a\u9593\u304c\u7570\u306a\u308b\u305f\u3081\u885d\u7a81\u3057\u306a\u3044<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-31\">\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u7279\u5fb4\u3068\u5229\u70b9<\/h4>\n\n\n\n<p>\u30af\u30e9\u30b9\u5b9a\u6570\u306f\u7279\u5b9a\u306e\u30af\u30e9\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u5b9a\u6570\u3067\u3001<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30af\u30e9\u30b9\u5185\u3067\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class User {\n    const STATUS_ACTIVE = 1;\n    const STATUS_INACTIVE = 0;\n    const STATUS_BANNED = -1;\n    \n    \/\/ PHP 7.1\u4ee5\u964d\u306f\u53ef\u8996\u6027\u4fee\u98fe\u5b50\u304c\u4f7f\u7528\u53ef\u80fd\n    public const ROLE_ADMIN = 'admin';\n    protected const DEFAULT_SETTINGS = ['notifications' =&gt; true];\n    private const API_SECRET = 'xyz123';\n}\n<\/pre>\n\n\n\n<p>\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u4e3b\u306a\u5229\u70b9:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30ab\u30d7\u30bb\u30eb\u5316<\/strong> \u30af\u30e9\u30b9\u306b\u95a2\u9023\u3059\u308b\u5024\u3092\u8ad6\u7406\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3001\u95a2\u9023\u3059\u308b\u30b3\u30fc\u30c9\u3068\u4e00\u7dd2\u306b\u914d\u7f6e\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u540d\u524d\u306e\u885d\u7a81\u30ea\u30b9\u30af\u4f4e\u6e1b<\/strong> \u30af\u30e9\u30b9\u540d\u3067\u4fee\u98fe\u3055\u308c\u308b\u305f\u3081\u3001\u540c\u3058\u540d\u524d\u306e\u5b9a\u6570\u3067\u3082\u885d\u7a81\u3057\u307e\u305b\u3093\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class User {\n    const TYPE = 'user';\n}\n\nclass Content {\n    const TYPE = 'content'; \/\/ User::TYPE\u3068\u306f\u885d\u7a81\u3057\u306a\u3044\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u53ef\u8996\u6027\u306e\u5236\u5fa1\uff08PHP 7.1\u4ee5\u964d\uff09<\/strong> <code>public<\/code>, <code>protected<\/code>, <code>private<\/code>\u4fee\u98fe\u5b50\u3092\u4f7f\u7528\u3057\u3066\u3001\u5b9a\u6570\u3078\u306e\u30a2\u30af\u30bb\u30b9\u7bc4\u56f2\u3092\u5236\u9650\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Configuration {\n    \/\/ \u3069\u3053\u304b\u3089\u3067\u3082\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\n    public const VERSION = '1.0.0';\n\n    \/\/ \u540c\u3058\u30af\u30e9\u30b9\u3068\u305d\u306e\u5b50\u30af\u30e9\u30b9\u304b\u3089\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\n    protected const CONFIG_PATH = '\/etc\/app\/config.php';\n\n    \/\/ \u3053\u306e\u30af\u30e9\u30b9\u5185\u304b\u3089\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\n    private const API_SECRET = 'private_key';\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u7d99\u627f\u3068\u30dd\u30ea\u30e2\u30fc\u30d5\u30a3\u30ba\u30e0<\/strong> \u30af\u30e9\u30b9\u5b9a\u6570\u306f\u7d99\u627f\u3092\u901a\u3058\u3066\u5171\u6709\u307e\u305f\u306f\u518d\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Payment {\n    const TAX_RATE = 0.1; \/\/ \u57fa\u672c\u7a0e\u7387\n}\n\nclass InternationalPayment extends Payment {\n    const TAX_RATE = 0.0; \/\/ \u56fd\u969b\u53d6\u5f15\u7528\u306b\u7a0e\u7387\u3092\u4e0a\u66f8\u304d\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-32\">\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051\u306e\u6307\u91dd<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u6307\u91dd\u306b\u5f93\u3063\u3066\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u3092\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-41fa4c9d-6c9a-40d6-bf6b-98f8a84cafd7\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u4f7f\u7528\u30b7\u30ca\u30ea\u30aa<\/th><th>\u63a8\u5968\u3055\u308c\u308b\u30bf\u30a4\u30d7<\/th><th>\u7406\u7531<\/th><\/tr><\/thead><tbody><tr><td>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u8a2d\u5b9a<\/td><td>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570<\/td><td>\u3069\u3053\u304b\u3089\u3067\u3082\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308b<\/td><\/tr><tr><td>\u74b0\u5883\u8a2d\u5b9a\uff08\u958b\u767a\/\u672c\u756a\u306a\u3069\uff09<\/td><td>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570<\/td><td>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8d77\u52d5\u6642\u306b\u5fc5\u8981<\/td><\/tr><tr><td>\u30d1\u30b9\u5b9a\u7fa9<\/td><td>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570<\/td><td>\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u306a\u3069\u5e83\u304f\u4f7f\u308f\u308c\u308b<\/td><\/tr><tr><td>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u60c5\u5831<\/td><td>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570<\/td><td>\u8907\u6570\u306e\u30af\u30e9\u30b9\u3067\u5171\u6709\u3055\u308c\u308b\u57fa\u672c\u8a2d\u5b9a<\/td><\/tr><tr><td>\u30af\u30e9\u30b9\u56fa\u6709\u306e\u72b6\u614b\u3084\u30bf\u30a4\u30d7<\/td><td>\u30af\u30e9\u30b9\u5b9a\u6570<\/td><td>\u7279\u5b9a\u306e\u30af\u30e9\u30b9\u306b\u8ad6\u7406\u7684\u306b\u95a2\u9023\u3057\u3066\u3044\u308b<\/td><\/tr><tr><td>\u5185\u90e8\u5b9f\u88c5\u306b\u95a2\u9023\u3059\u308b\u5024<\/td><td>\u30af\u30e9\u30b9\u5b9a\u6570\uff08protected\/private\uff09<\/td><td>\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u3066\u5b9f\u88c5\u8a73\u7d30\u3092\u96a0\u853d<\/td><\/tr><tr><td>\u5916\u90e8\u306b\u516c\u958b\u3059\u308bAPI\u5b9a\u6570<\/td><td>\u30af\u30e9\u30b9\u5b9a\u6570\uff08public\uff09<\/td><td>\u30af\u30e9\u30b9\u306e\u516c\u958b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u4e00\u90e8<\/td><\/tr><tr><td>\u5217\u6319\u578b\u306e\u4ee3\u66ff<\/td><td>\u30af\u30e9\u30b9\u5b9a\u6570<\/td><td>\u95a2\u9023\u3059\u308b\u9078\u629e\u80a2\u3092\u30b0\u30eb\u30fc\u30d7\u5316<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-33\">\u5b9f\u969b\u306e\u4f7f\u7528\u4f8b<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u3092\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u305f\u5b9f\u969b\u306e\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ config.php - \u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\ndefine('APP_ENV', 'production'); \/\/ \u74b0\u5883\u8a2d\u5b9a\ndefine('DEBUG', false); \/\/ \u30c7\u30d0\u30c3\u30b0\u30d5\u30e9\u30b0\ndefine('BASE_URL', 'https:\/\/example.com'); \/\/ \u30b5\u30a4\u30c8URL\ndefine('UPLOAD_DIR', '\/var\/www\/uploads'); \/\/ \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n\n\/\/ User.php - \u30af\u30e9\u30b9\u5b9a\u6570\nclass User {\n    \/\/ \u72b6\u614b\u3092\u8868\u3059\u516c\u958b\u5b9a\u6570\n    public const STATUS_ACTIVE = 'active';\n    public const STATUS_INACTIVE = 'inactive';\n    \n    \/\/ \u30c7\u30d5\u30a9\u30eb\u30c8\u8a2d\u5b9a\uff08\u5b50\u30af\u30e9\u30b9\u3067\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u53ef\u80fd\uff09\n    protected const DEFAULT_SETTINGS = [\n        'notifications' =&gt; true,\n        'two_factor_auth' =&gt; false\n    ];\n    \n    \/\/ \u30af\u30e9\u30b9\u5185\u90e8\u3067\u306e\u307f\u4f7f\u7528\u3059\u308b\u5b9a\u6570\n    private const PASSWORD_SALT = 'unique_salt_string';\n    \n    \/\/ \u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u30e1\u30bd\u30c3\u30c9\n    public function activate() {\n        $this-&gt;status = self::STATUS_ACTIVE;\n        \/\/ ...\n    }\n}\n<\/pre>\n\n\n\n<p>\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u306f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u307e\u3068\u3081\u3001\u30af\u30e9\u30b9\u5b9a\u6570\u306f\u305d\u308c\u305e\u308c\u306e\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u5185\u3067\u5b9a\u7fa9\u3059\u308b\u306e\u304c\u4e00\u822c\u7684\u306a\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-34\">\u540d\u524d\u7a7a\u9593\u3092\u6d3b\u7528\u3057\u305f\u5b9a\u6570\u306e\u7ba1\u7406\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u540d\u524d\u7a7a\u9593\u306fPHP 5.3\u4ee5\u964d\u3067\u5c0e\u5165\u3055\u308c\u305f\u6a5f\u80fd\u3067\u3001\u5b9a\u6570\u306e\u7ba1\u7406\u306b\u3082\u5927\u304d\u306a\u30e1\u30ea\u30c3\u30c8\u3092\u3082\u305f\u3089\u3057\u307e\u3059\u3002\u7279\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3092\u6574\u7406\u3059\u308b\u4e0a\u3067\u975e\u5e38\u306b\u6709\u52b9\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u540d\u524d\u7a7a\u9593\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u540c\u3058\u540d\u524d\u306e\u5b9a\u6570\u3067\u3082\u7570\u306a\u308b\u540d\u524d\u7a7a\u9593\u5185\u3067\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u885d\u7a81\u3092\u907f\u3051\u3089\u308c\u307e\u3059\u3002\u307e\u305f\u3001\u95a2\u9023\u3059\u308b\u5b9a\u6570\u3092\u8ad6\u7406\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Database\u95a2\u9023\u306e\u5b9a\u6570\nnamespace App\\Database;\n\nconst HOST = 'localhost';\nconst USER = 'dbuser';\nconst PASSWORD = 'secret';\nconst NAME = 'myapp';\n\n\/\/ Mail\u95a2\u9023\u306e\u5b9a\u6570\nnamespace App\\Mail;\n\nconst HOST = 'smtp.example.com'; \/\/ Database\u540d\u524d\u7a7a\u9593\u3068\u885d\u7a81\u3057\u306a\u3044\nconst PORT = 587;\nconst USERNAME = 'mailer';\nconst PASSWORD = 'mailpass';\n<\/pre>\n\n\n\n<p>\u540d\u524d\u7a7a\u9593\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5b9a\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001\u5b8c\u5168\u4fee\u98fe\u540d\u3092\u4f7f\u7528\u3059\u308b\u304b\u3001<code>use<\/code>\u6587\u3067\u540d\u524d\u7a7a\u9593\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5b8c\u5168\u4fee\u98fe\u540d\u3092\u4f7f\u7528\n$dbHost = \\App\\Database\\HOST;\n\n\/\/ use\u3067\u540d\u524d\u7a7a\u9593\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\nuse App\\Database;\n$dbUser = Database\\USER;\n\n\/\/ \u540d\u524d\u7a7a\u9593\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3092\u4f7f\u7528\nuse App\\Mail as MailConfig;\n$smtpHost = MailConfig\\HOST;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-35\">\u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u540d\u524d\u7a7a\u9593\u3068\u5b9a\u6570\u306e\u7d44\u307f\u5408\u308f\u305b\u4f8b<\/h4>\n\n\n\n<p>\u5927\u898f\u6a21\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u540d\u524d\u7a7a\u9593\u3092\u968e\u5c64\u7684\u306b\u69cb\u6210\u3057\u3001\u5b9a\u6570\u3092\u4f53\u7cfb\u7684\u306b\u7ba1\u7406\u3059\u308b\u3053\u3068\u304c\u52b9\u679c\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Config\/Database.php\nnamespace App\\Config;\n\nclass Database {\n    public const HOST = 'localhost';\n    public const USER = 'root';\n    public const PASSWORD = 'secret';\n    \n    \/\/ \u74b0\u5883\u3054\u3068\u306e\u8a2d\u5b9a\n    public const ENVIRONMENTS = [\n        'development' =&gt; [\n            'host' =&gt; 'localhost',\n            'debug' =&gt; true\n        ],\n        'production' =&gt; [\n            'host' =&gt; 'db.example.com',\n            'debug' =&gt; false\n        ]\n    ];\n}\n\n\/\/ app\/Config\/App.php\nnamespace App\\Config;\n\nclass App {\n    public const NAME = 'My Application';\n    public const VERSION = '1.2.3';\n    public const LOCALE = 'ja_JP';\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nuse App\\Config\\Database;\nuse App\\Config\\App;\n\n$dbConfig = Database::ENVIRONMENTS[$environment];\necho \"Running \" . App::NAME . \" v\" . App::VERSION;\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u3067\u306f\u3001\u30af\u30e9\u30b9\u3092\u540d\u524d\u7a7a\u9593\u3068\u3057\u3066\u4f7f\u7528\u3057\u3001\u95a2\u9023\u3059\u308b\u5b9a\u6570\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001IDE\u306e\u88dc\u5b8c\u6a5f\u80fd\u3082\u6d3b\u7528\u3067\u304d\u3001\u958b\u767a\u52b9\u7387\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u9069\u5207\u306a\u30b9\u30b3\u30fc\u30d7\u8a2d\u8a08\u306f\u3001\u5b9a\u6570\u306e\u7ba1\u7406\u3068\u30b3\u30fc\u30c9\u306e\u4fdd\u5b88\u6027\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u307e\u3059\u3002\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u898f\u6a21\u3084\u8981\u4ef6\u306b\u5fdc\u3058\u3066\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u3092\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u3001\u540d\u524d\u7a7a\u9593\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u6574\u7406\u3055\u308c\u305f\u5805\u7262\u306a\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u3092\u69cb\u7bc9\u3067\u304d\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-36\">\u914d\u5217\u5b9a\u6570\u3068\u305d\u306e\u52b9\u679c\u7684\u306a\u6d3b\u7528\u6cd5<\/h2>\n\n\n\n<p>PHP\u3067\u306f\u9577\u3044\u9593\u3001\u7d14\u7c8b\u306a\u914d\u5217\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u304c\u3001PHP 5.6\u4ee5\u964d\u3001\u3053\u306e\u5236\u9650\u304c\u5f90\u3005\u306b\u7de9\u548c\u3055\u308c\u3001\u73fe\u5728\u3067\u306f\u975e\u5e38\u306b\u5f37\u529b\u306a\u6a5f\u80fd\u3068\u3057\u3066\u6d3b\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u914d\u5217\u5b9a\u6570\u306f\u8a2d\u5b9a\u5024\u306e\u7ba1\u7406\u3084\u5217\u6319\u578b\u306e\u4ee3\u66ff\u306a\u3069\u3001\u591a\u304f\u306e\u7528\u9014\u3067\u6709\u7528\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-37\">PHP\u306e\u914d\u5217\u5b9a\u6570\u5b9f\u88c5\u306e\u5909\u9077\u3068\u6700\u65b0\u624b\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-38\">PHP 5.6\u4ee5\u524d\uff1a\u914d\u5217\u5b9a\u6570\u306e\u5236\u9650\u3068\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9<\/h4>\n\n\n\n<p>PHP 5.6\u3088\u308a\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u3001\u914d\u5217\u3092\u76f4\u63a5\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u305d\u306e\u305f\u3081\u3001\u958b\u767a\u8005\u306f\u3055\u307e\u3056\u307e\u306a\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 5.5\u4ee5\u524d\u3067\u306e\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9\n\/\/ 1. \u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3057\u305f\u6587\u5b57\u5217\u3068\u3057\u3066\u4fdd\u5b58\ndefine('FRUITS_SERIALIZED', serialize(['apple', 'banana', 'orange']));\n$fruits = unserialize(FRUITS_SERIALIZED);\n\n\/\/ 2. JSON\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u3068\u3057\u3066\u4fdd\u5b58\ndefine('CONFIG_JSON', '{\"host\":\"localhost\",\"user\":\"root\"}');\n$config = json_decode(CONFIG_JSON, true);\n\n\/\/ 3. \u30af\u30e9\u30b9\u5185\u3067\u306e\u9759\u7684\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u4f7f\u7528\uff08\u53b3\u5bc6\u306b\u306f\u5b9a\u6570\u3067\u306f\u306a\u3044\uff09\nclass Config {\n    public static $db = [\n        'host' =&gt; 'localhost',\n        'user' =&gt; 'root'\n    ];\n    \/\/ \u30a2\u30af\u30bb\u30b9\u306f\u5909\u66f4\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u5236\u9650\n    public static function getDb() {\n        return self::$db;\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\u6a5f\u80fd\u3057\u307e\u3057\u305f\u304c\u3001\u672c\u5f53\u306e\u5b9a\u6570\u3067\u306f\u306a\u304f\u3001\u69cb\u6587\u3082\u8907\u96d1\u3067\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-39\">PHP 5.6\uff1a\u914d\u5217\u5b9a\u6570\u306e\u5c0e\u5165<\/h4>\n\n\n\n<p>PHP 5.6\u3067\u306f\u3001<code>define()<\/code>\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u914d\u5217\u5b9a\u6570\u3092\u5b9a\u7fa9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 5.6\u3067\u5c0e\u5165\u3055\u308c\u305f\u914d\u5217\u5b9a\u6570\ndefine('FRUITS', ['apple', 'banana', 'orange']);\necho FRUITS[0]; \/\/ \u51fa\u529b: apple\n\ndefine('DATABASE', [\n    'host' =&gt; 'localhost',\n    'user' =&gt; 'root',\n    'password' =&gt; 'secret'\n]);\necho DATABASE['host']; \/\/ \u51fa\u529b: localhost\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306fPHP\u306e\u5b9a\u6570\u6a5f\u80fd\u306b\u304a\u3051\u308b\u5927\u304d\u306a\u9032\u5316\u3067\u3057\u305f\u304c\u3001<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3067\u306f\u307e\u3060\u914d\u5217\u3092\u5b9a\u7fa9\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u5236\u9650\u304c\u3042\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-40\">PHP 7.0\uff1aconst\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u3088\u308b\u914d\u5217\u5b9a\u6570<\/h4>\n\n\n\n<p>PHP 7.0\u3067\u306f\u3001<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066\u914d\u5217\u5b9a\u6570\u3092\u5b9a\u7fa9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u30af\u30e9\u30b9\u5b9a\u6570\u3068\u3057\u3066\u3082\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 7.0\u4ee5\u964d\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u914d\u5217\u5b9a\u6570\nconst ANIMALS = ['dog', 'cat', 'bird'];\necho ANIMALS[1]; \/\/ \u51fa\u529b: cat\n\n\/\/ \u30af\u30e9\u30b9\u5185\u3067\u306e\u914d\u5217\u5b9a\u6570\nclass Configuration {\n    const DATABASE = [\n        'host' =&gt; 'localhost',\n        'user' =&gt; 'root',\n        'password' =&gt; 'secret'\n    ];\n    \n    const SUPPORTED_LANGUAGES = ['en', 'ja', 'fr', 'de'];\n}\n\necho Configuration::DATABASE['host']; \/\/ \u51fa\u529b: localhost\necho Configuration::SUPPORTED_LANGUAGES[1]; \/\/ \u51fa\u529b: ja\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08\u306b\u304a\u3051\u308b\u914d\u5217\u5b9a\u6570\u306e\u6d3b\u7528\u304c\u5927\u5e45\u306b\u6539\u5584\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-41\">PHP 7.1\u4ee5\u964d\uff1a\u53ef\u8996\u6027\u3092\u6301\u3064\u914d\u5217\u5b9a\u6570<\/h4>\n\n\n\n<p>PHP 7.1\u3067\u306f\u3001\u30af\u30e9\u30b9\u5b9a\u6570\u306b\u53ef\u8996\u6027\u4fee\u98fe\u5b50\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u30ab\u30d7\u30bb\u30eb\u5316\u3055\u308c\u305f\u914d\u5217\u5b9a\u6570\u304c\u5b9f\u73fe\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Api {\n    \/\/ \u516c\u958b\u914d\u5217\u5b9a\u6570\n    public const ENDPOINTS = [\n        'users' =&gt; '\/api\/users',\n        'posts' =&gt; '\/api\/posts'\n    ];\n    \n    \/\/ \u4fdd\u8b77\u3055\u308c\u305f\u914d\u5217\u5b9a\u6570\uff08\u7d99\u627f\u5148\u304b\u3089\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\uff09\n    protected const DEFAULT_HEADERS = [\n        'Content-Type' =&gt; 'application\/json',\n        'Accept' =&gt; 'application\/json'\n    ];\n    \n    \/\/ \u975e\u516c\u958b\u914d\u5217\u5b9a\u6570\uff08\u3053\u306e\u30af\u30e9\u30b9\u5185\u3067\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\uff09\n    private const CREDENTIALS = [\n        'api_key' =&gt; 'xyz123',\n        'secret' =&gt; 'abcd1234'\n    ];\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-42\">PHP 8.0\uff1a\u578b\u4ed8\u304d\u914d\u5217\u5b9a\u6570<\/h4>\n\n\n\n<p>PHP 8.0\u3067\u306f\u3001\u578b\u5ba3\u8a00\u3092\u4f7f\u7528\u3057\u3066\u914d\u5217\u5b9a\u6570\u306e\u578b\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Config {\n    \/\/ \u578b\u4ed8\u304d\u914d\u5217\u5b9a\u6570\n    public const array ROUTES = [\n        'home' =&gt; '\/',\n        'login' =&gt; '\/login',\n        'dashboard' =&gt; '\/dashboard'\n    ];\n    \n    protected const array CACHE_SETTINGS = [\n        'enabled' =&gt; true,\n        'ttl' =&gt; 3600\n    ];\n}\n<\/pre>\n\n\n\n<p>\u578b\u5ba3\u8a00\u306b\u3088\u308a\u3001\u610f\u56f3\u3057\u306a\u3044\u578b\u306e\u5024\u304c\u914d\u5217\u5b9a\u6570\u306b\u542b\u307e\u308c\u308b\u306e\u3092\u9632\u304e\u3001\u30b3\u30fc\u30c9\u306e\u5b89\u5168\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-43\">\u8907\u96d1\u306a\u914d\u5217\u69cb\u9020\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u65b9\u6cd5<\/h4>\n\n\n\n<p>\u73fe\u4ee3\u306ePHP\u3067\u306f\u3001\u975e\u5e38\u306b\u8907\u96d1\u306a\u914d\u5217\u69cb\u9020\u3082\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u591a\u6b21\u5143\u914d\u5217\u306e\u5b9a\u6570\nconst SITE_CONFIG = [\n    'database' =&gt; [\n        'master' =&gt; [\n            'host' =&gt; 'master-db.example.com',\n            'user' =&gt; 'admin',\n            'port' =&gt; 3306\n        ],\n        'slave' =&gt; [\n            'host' =&gt; 'slave-db.example.com',\n            'user' =&gt; 'reader',\n            'port' =&gt; 3306\n        ]\n    ],\n    'cache' =&gt; [\n        'enabled' =&gt; true,\n        'servers' =&gt; [\n            ['host' =&gt; 'cache1.example.com', 'port' =&gt; 11211],\n            ['host' =&gt; 'cache2.example.com', 'port' =&gt; 11211]\n        ]\n    ],\n    'features' =&gt; [\n        'registration' =&gt; true,\n        'api_access' =&gt; true,\n        'maintenance_mode' =&gt; false\n    ]\n];\n\n\/\/ \u30a2\u30af\u30bb\u30b9\u4f8b\necho SITE_CONFIG['database']['master']['host']; \/\/ \u51fa\u529b: master-db.example.com\necho SITE_CONFIG['cache']['servers'][0]['port']; \/\/ \u51fa\u529b: 11211\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u8907\u96d1\u306a\u69cb\u9020\u3082\u3001PHP 7\u4ee5\u964d\u3067\u306f\u554f\u984c\u306a\u304f\u5b9a\u7fa9\u30fb\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-44\">\u914d\u5217\u5b9a\u6570\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h4>\n\n\n\n<p>\u914d\u5217\u5b9a\u6570\u3092\u52b9\u679c\u7684\u306b\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u3044\u304f\u3064\u304b\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9069\u5207\u306a\u30b9\u30b3\u30fc\u30d7\u3092\u9078\u629e\u3059\u308b<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30b0\u30ed\u30fc\u30d0\u30eb\u306b\u5fc5\u8981\u306a\u8a2d\u5b9a\u306f <code>define()<\/code> \u307e\u305f\u306f\u540d\u524d\u7a7a\u9593\u5185\u306e <code>const<\/code><\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u306b\u95a2\u9023\u3059\u308b\u8a2d\u5b9a\u306f \u30af\u30e9\u30b9\u5b9a\u6570<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u547d\u540d\u898f\u5247\u3092\u4e00\u8cab\u3055\u305b\u308b<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u4ed6\u306e\u5b9a\u6570\u3068\u540c\u69d8\u306b\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u914d\u5217\u306e\u30ad\u30fc\u306f\u8aad\u307f\u3084\u3059\u3055\u3092\u512a\u5148\uff08\u5c0f\u6587\u5b57\u3084\u30ad\u30e3\u30e1\u30eb\u30b1\u30fc\u30b9\u304c\u4e00\u822c\u7684\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u5145\u5b9f\u3055\u305b\u308b<\/strong>\n<ul class=\"wp-block-list\">\n<li>PHPDoc\u3092\u4f7f\u7528\u3057\u3066\u914d\u5217\u306e\u69cb\u9020\u3092\u6587\u66f8\u5316<\/li>\n\n\n\n<li>\u7279\u306b\u8907\u96d1\u306a\u914d\u5217\u3067\u306f\u5404\u30ad\u30fc\u306e\u76ee\u7684\u3092\u8aac\u660e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u578b\u306e\u4e00\u8cab\u6027\u3092\u4fdd\u3064<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u540c\u3058\u914d\u5217\u5185\u3067\u306f\u53ef\u80fd\u306a\u9650\u308a\u4e00\u8cab\u3057\u305f\u578b\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>PHP 8\u4ee5\u964d\u3067\u306f\u578b\u5ba3\u8a00\u3092\u6d3b\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5909\u66f4\u4e0d\u53ef\u80fd\u6027\u3092\u6d3b\u7528\u3059\u308b<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u6570\u914d\u5217\u81ea\u4f53\u306f\u5909\u66f4\u3067\u304d\u306a\u3044\u304c\u3001\u8981\u7d20\u306e\u30b3\u30d4\u30fc\u306f\u53ef\u80fd<\/li>\n\n\n\n<li>\u5b89\u5168\u306b\u64cd\u4f5c\u3059\u308b\u306b\u306f\u30b3\u30d4\u30fc\u3057\u3066\u304b\u3089\u64cd\u4f5c<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5b89\u5168\u306a\u64cd\u4f5c\u4f8b\n$settings = Configuration::DEFAULT_SETTINGS; \/\/ \u914d\u5217\u306e\u30b3\u30d4\u30fc\u3092\u53d6\u5f97\n$settings['debug'] = true; \/\/ \u30b3\u30d4\u30fc\u3092\u5909\u66f4\n<\/pre>\n\n\n\n<p>\u914d\u5217\u5b9a\u6570\u306e\u5b9f\u88c5\u306f\u3001PHP\u306e\u9032\u5316\u3068\u3068\u3082\u306b\u5927\u304d\u304f\u6539\u5584\u3055\u308c\u3066\u304d\u307e\u3057\u305f\u3002\u73fe\u4ee3\u306ePHP\u3067\u306f\u3001\u914d\u5217\u5b9a\u6570\u306f\u8a2d\u5b9a\u7ba1\u7406\u3001\u5217\u6319\u578b\u3001\u30de\u30c3\u30d4\u30f3\u30b0\u30c6\u30fc\u30d6\u30eb\u306a\u3069\u3001\u591a\u304f\u306e\u7528\u9014\u3067\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u8a2d\u5b9a\u5024\u3084\u30de\u30b9\u30bf\u30fc\u30c7\u30fc\u30bf\u306e\u7ba1\u7406\u306b\u304a\u3051\u308b\u914d\u5217\u5b9a\u6570\u306e\u5177\u4f53\u7684\u306a\u6d3b\u7528\u65b9\u6cd5\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-45\">\u8a2d\u5b9a\u5024\u3084\u30de\u30b9\u30bf\u30fc\u30c7\u30fc\u30bf\u3092\u5b9a\u6570\u3067\u7ba1\u7406\u3059\u308b\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u914d\u5217\u5b9a\u6570\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\u5024\u3084\u30de\u30b9\u30bf\u30fc\u30c7\u30fc\u30bf\u3092\u7ba1\u7406\u3059\u308b\u305f\u3081\u306e\u5f37\u529b\u306a\u624b\u6bb5\u3067\u3059\u3002\u3053\u3053\u3067\u306f\u3001\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u914d\u5217\u5b9a\u6570\u3092\u6d3b\u7528\u3059\u308b\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-46\">\u8a2d\u5b9a\u30c7\u30fc\u30bf\u3092\u5b9a\u6570\u3068\u3057\u3066\u6271\u3046\u30e1\u30ea\u30c3\u30c8<\/h4>\n\n\n\n<p>\u8a2d\u5b9a\u5024\u3092\u914d\u5217\u5b9a\u6570\u3068\u3057\u3066\u7ba1\u7406\u3059\u308b\u3053\u3068\u306b\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u91cd\u8981\u306a\u30e1\u30ea\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e00\u5143\u7ba1\u7406<\/strong>\uff1a\u95a2\u9023\u3059\u308b\u8a2d\u5b9a\u3092\u8ad6\u7406\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3067\u304d\u308b<\/li>\n\n\n\n<li><strong>\u30bf\u30a4\u30d7\u30bb\u30fc\u30d5\u30c6\u30a3<\/strong>\uff1a\u5b9f\u884c\u6642\u3067\u306f\u306a\u304f\u30d1\u30fc\u30b9\u6642\u306b\u30a8\u30e9\u30fc\u3092\u691c\u51fa<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/strong>\uff1a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30a2\u30af\u30bb\u30b9\u304c\u4e0d\u8981<\/li>\n\n\n\n<li><strong>\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406<\/strong>\uff1aGit\u7b49\u3067\u306e\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0\u304c\u5bb9\u6613<\/li>\n\n\n\n<li><strong>IDE\u306e\u30b5\u30dd\u30fc\u30c8<\/strong>\uff1a\u30b3\u30fc\u30c9\u88dc\u5b8c\u3084\u9759\u7684\u89e3\u6790\u304c\u6d3b\u7528\u3067\u304d\u308b<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-47\">\u74b0\u5883\u8a2d\u5b9a\u306e\u7ba1\u7406<\/h4>\n\n\n\n<p>\u7570\u306a\u308b\u74b0\u5883\uff08\u958b\u767a\u3001\u30c6\u30b9\u30c8\u3001\u672c\u756a\uff09\u3054\u3068\u306e\u8a2d\u5b9a\u3092\u914d\u5217\u5b9a\u6570\u3067\u7ba1\u7406\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ config.php\nclass Config {\n    \/\/ \u57fa\u672c\u8a2d\u5b9a\uff08\u5168\u74b0\u5883\u5171\u901a\uff09\n    public const BASE = [\n        'app_name' =&gt; 'My PHP Application',\n        'version' =&gt; '1.0.0',\n        'timezone' =&gt; 'Asia\/Tokyo'\n    ];\n    \n    \/\/ \u74b0\u5883\u3054\u3068\u306e\u8a2d\u5b9a\n    public const ENVIRONMENTS = [\n        'development' =&gt; [\n            'debug' =&gt; true,\n            'database' =&gt; [\n                'host' =&gt; 'localhost',\n                'name' =&gt; 'app_dev'\n            ],\n            'mail' =&gt; [\n                'from' =&gt; 'dev@example.com',\n                'use_smtp' =&gt; false\n            ]\n        ],\n        'production' =&gt; [\n            'debug' =&gt; false,\n            'database' =&gt; [\n                'host' =&gt; 'db.example.com',\n                'name' =&gt; 'app_prod'\n            ],\n            'mail' =&gt; [\n                'from' =&gt; 'no-reply@example.com',\n                'use_smtp' =&gt; true\n            ]\n        ]\n    ];\n    \n    \/\/ \u73fe\u5728\u306e\u74b0\u5883\u8a2d\u5b9a\u3092\u53d6\u5f97\u3059\u308b\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\n    public static function get($environment = null) {\n        $env = $environment ?? getenv('APP_ENV') ?? 'development';\n        return array_merge(self::BASE, self::ENVIRONMENTS[$env]);\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$config = Config::get();\necho $config['app_name']; \/\/ \u51fa\u529b: My PHP Application\necho $config['database']['host']; \/\/ \u74b0\u5883\u306b\u5fdc\u3058\u305f\u5024\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u3067\u306f\u3001\u5171\u901a\u8a2d\u5b9a\u3068\u74b0\u5883\u56fa\u6709\u8a2d\u5b9a\u3092\u5206\u96e2\u3057\u3064\u3064\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u7d71\u5408\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u3001Git\u7b49\u3067\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u304c\u5bb9\u6613\u306b\u306a\u308a\u3001\u74b0\u5883\u9593\u306e\u8a2d\u5b9a\u5dee\u5206\u3092\u660e\u78ba\u306b\u628a\u63e1\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-48\">\u5217\u6319\u578b\u306e\u4ee3\u66ff\u3068\u3057\u3066\u306e\u914d\u5217\u5b9a\u6570\u306e\u6d3b\u7528<\/h4>\n\n\n\n<p>PHP\u306b\u306f\u4ed6\u306e\u8a00\u8a9e\u306e\u3088\u3046\u306a\u7d44\u307f\u8fbc\u307f\u306e\u5217\u6319\u578b\u306f\u3042\u308a\u307e\u305b\u3093\u304c\uff08PHP 8.1\u3067Enum\u578b\u304c\u5c0e\u5165\u3055\u308c\u308b\u307e\u3067\u306f\uff09\u3001\u914d\u5217\u5b9a\u6570\u3092\u4f7f\u7528\u3057\u3066\u540c\u69d8\u306e\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class UserStatus {\n    \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u5b9a\u7fa9\n    public const VALUES = [\n        'ACTIVE' =&gt; 1,\n        'INACTIVE' =&gt; 2,\n        'PENDING' =&gt; 3,\n        'BANNED' =&gt; 4\n    ];\n    \n    \/\/ \u8868\u793a\u7528\u306e\u30e9\u30d9\u30eb\n    public const LABELS = [\n        1 =&gt; '\u6709\u52b9',\n        2 =&gt; '\u7121\u52b9',\n        3 =&gt; '\u4fdd\u7559\u4e2d',\n        4 =&gt; '\u5229\u7528\u505c\u6b62'\n    ];\n    \n    \/\/ \u5024\u306e\u691c\u8a3c\n    public static function isValid($status) {\n        return in_array($status, self::VALUES);\n    }\n    \n    \/\/ \u30e9\u30d9\u30eb\u306e\u53d6\u5f97\n    public static function getLabel($status) {\n        return self::LABELS[$status] ?? '\u4e0d\u660e';\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$userStatus = UserStatus::VALUES['ACTIVE'];\nif (UserStatus::isValid($userStatus)) {\n    echo UserStatus::getLabel($userStatus); \/\/ \u51fa\u529b: \u6709\u52b9\n}\n\n\/\/ \u30d5\u30a9\u30fc\u30e0\u3067\u306e\u9078\u629e\u80a2\u8868\u793a\u306a\u3069\u306b\u6d3b\u7528\nfunction generateStatusDropdown() {\n    $options = '';\n    foreach (UserStatus::VALUES as $key =&gt; $value) {\n        $options .= sprintf(\n            '&lt;option value=\"%d\"&gt;%s&lt;\/option&gt;',\n            $value,\n            UserStatus::getLabel($value)\n        );\n    }\n    return $options;\n}\n\n\/\/ \u3053\u306e\u65b9\u6cd5\u306f\u3001PHP 8.1\u306eEnum\u578b\u304c\u5c0e\u5165\u3055\u308c\u308b\u524d\u306e\u591a\u304f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e\u3057\u305f\u3002\n\n#### \u30de\u30b9\u30bf\u30fc\u30c7\u30fc\u30bf\u306e\u7ba1\u7406\n\n\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u683c\u7d0d\u3059\u308b\u307b\u3069\u3067\u306f\u306a\u3044\u30b7\u30f3\u30d7\u30eb\u306a\u30de\u30b9\u30bf\u30fc\u30c7\u30fc\u30bf\u306f\u3001\u914d\u5217\u5b9a\u6570\u3068\u3057\u3066\u7ba1\u7406\u3059\u308b\u3068\u4fbf\u5229\u3067\u3059\uff1a\n\n```php\nclass CountryData {\n    \/\/ \u56fd\u30b3\u30fc\u30c9\u3068\u540d\u524d\u306e\u30de\u30c3\u30d4\u30f3\u30b0\n    public const COUNTRIES = [\n        'JP' =&gt; '\u65e5\u672c',\n        'US' =&gt; '\u30a2\u30e1\u30ea\u30ab\u5408\u8846\u56fd',\n        'GB' =&gt; '\u30a4\u30ae\u30ea\u30b9',\n        'FR' =&gt; '\u30d5\u30e9\u30f3\u30b9',\n        'DE' =&gt; '\u30c9\u30a4\u30c4',\n        \/\/ ... \u4ed6\u306e\u56fd\u3005\n    ];\n    \n    \/\/ \u5730\u57df\u3068\u305d\u308c\u306b\u5c5e\u3059\u308b\u56fd\u306e\u30de\u30c3\u30d4\u30f3\u30b0\n    public const REGIONS = [\n        '\u30a2\u30b8\u30a2' =&gt; ['JP', 'CN', 'KR', 'TH', 'VN'],\n        '\u30e8\u30fc\u30ed\u30c3\u30d1' =&gt; ['GB', 'FR', 'DE', 'IT', 'ES'],\n        '\u5317\u7c73' =&gt; ['US', 'CA', 'MX'],\n        \/\/ ... \u4ed6\u306e\u5730\u57df\n    ];\n    \n    \/\/ \u56fd\u30b3\u30fc\u30c9\u304b\u3089\u56fd\u540d\u3092\u53d6\u5f97\n    public static function getCountryName($code) {\n        return self::COUNTRIES[$code] ?? '\u4e0d\u660e';\n    }\n    \n    \/\/ \u56fd\u30b3\u30fc\u30c9\u304b\u3089\u6240\u5c5e\u5730\u57df\u3092\u53d6\u5f97\n    public static function getRegion($countryCode) {\n        foreach (self::REGIONS as $region =&gt; $countries) {\n            if (in_array($countryCode, $countries)) {\n                return $region;\n            }\n        }\n        return '\u672a\u5206\u985e';\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\u3001\u4ee5\u4e0b\u306e\u5834\u5408\u306b\u7279\u306b\u6709\u7528\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u306e\u91cf\u304c\u6bd4\u8f03\u7684\u5c11\u306a\u3044<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u306e\u5909\u66f4\u983b\u5ea6\u304c\u4f4e\u3044<\/li>\n\n\n\n<li>\u9ad8\u901f\u306a\u30a2\u30af\u30bb\u30b9\u304c\u5fc5\u8981<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4f9d\u5b58\u3057\u305f\u304f\u306a\u3044\u5834\u5408<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-49\">\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3068\u3057\u3066\u306e\u914d\u5217\u5b9a\u6570<\/h4>\n\n\n\n<p>\u6a29\u9650\u3084\u30d5\u30e9\u30b0\u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u7ba1\u7406\u3059\u308b\u5834\u5408\u3001\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3068\u914d\u5217\u5b9a\u6570\u306e\u7d44\u307f\u5408\u308f\u305b\u304c\u52b9\u679c\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Permissions {\n    \/\/ \u500b\u5225\u306e\u6a29\u9650\uff08\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\uff09\n    public const NONE      = 0;\n    public const READ      = 1;      \/\/ 2^0\n    public const WRITE     = 2;      \/\/ 2^1\n    public const UPDATE    = 4;      \/\/ 2^2\n    public const DELETE    = 8;      \/\/ 2^3\n    public const ADMIN     = 16;     \/\/ 2^4\n    \n    \/\/ \u6a29\u9650\u306e\u7d44\u307f\u5408\u308f\u305b\n    public const GROUPS = [\n        'guest'     =&gt; self::READ,\n        'user'      =&gt; self::READ | self::WRITE,\n        'editor'    =&gt; self::READ | self::WRITE | self::UPDATE,\n        'moderator' =&gt; self::READ | self::WRITE | self::UPDATE | self::DELETE,\n        'admin'     =&gt; self::READ | self::WRITE | self::UPDATE | self::DELETE | self::ADMIN\n    ];\n    \n    \/\/ \u6a29\u9650\u30c1\u30a7\u30c3\u30af\n    public static function check($userPermissions, $requiredPermission) {\n        return ($userPermissions &amp; $requiredPermission) === $requiredPermission;\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$userRole = 'editor';\n$userPermissions = Permissions::GROUPS[$userRole];\n\n\/\/ \u6a29\u9650\u30c1\u30a7\u30c3\u30af\nif (Permissions::check($userPermissions, Permissions::READ | Permissions::UPDATE)) {\n    echo \"\u8aad\u307f\u53d6\u308a\u3068\u66f4\u65b0\u306e\u6a29\u9650\u304c\u3042\u308a\u307e\u3059\";\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\u3001\u8907\u6570\u306e\u30d5\u30e9\u30b0\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306b\u7279\u306b\u6709\u7528\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-50\">\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u8a2d\u5b9a\u306e\u7ba1\u7406<\/h4>\n\n\n\n<p>Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306eURL\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3082\u914d\u5217\u5b9a\u6570\u3067\u7ba1\u7406\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Routes {\n    public const DEFINITIONS = [\n        'home' =&gt; [\n            'path' =&gt; '\/',\n            'controller' =&gt; 'HomeController',\n            'method' =&gt; 'index',\n            'auth' =&gt; false\n        ],\n        'login' =&gt; [\n            'path' =&gt; '\/login',\n            'controller' =&gt; 'AuthController',\n            'method' =&gt; 'login',\n            'auth' =&gt; false\n        ],\n        'dashboard' =&gt; [\n            'path' =&gt; '\/dashboard',\n            'controller' =&gt; 'DashboardController',\n            'method' =&gt; 'index',\n            'auth' =&gt; true\n        ],\n        'profile' =&gt; [\n            'path' =&gt; '\/profile\/:id',\n            'controller' =&gt; 'UserController',\n            'method' =&gt; 'profile',\n            'auth' =&gt; true\n        ]\n    ];\n    \n    \/\/ \u30d1\u30b9\u304b\u3089\u30eb\u30fc\u30c8\u60c5\u5831\u3092\u53d6\u5f97\n    public static function getByPath($path) {\n        foreach (self::DEFINITIONS as $name =&gt; $route) {\n            \/\/ \u7c21\u6613\u7684\u306a\u30d1\u30b9\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u4f8b\uff08\u5b9f\u969b\u306b\u306f\u3082\u3063\u3068\u8907\u96d1\uff09\n            $pattern = preg_quote($route['path'], '\/');\n            $pattern = str_replace('\\\\:id', '([^\/]+)', $pattern);\n            if (preg_match('\/^' . $pattern . '$\/', $path)) {\n                return [\n                    'name' =&gt; $name,\n                    'config' =&gt; $route\n                ];\n            }\n        }\n        return null;\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-51\">\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u5b9f\u88c5\u4f8b<\/h4>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u914d\u5217\u5b9a\u6570\u306e\u4f7f\u7528\u4f8b\u3092\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Config\/Application.php\nnamespace App\\Config;\n\nclass Application {\n    \/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u57fa\u672c\u60c5\u5831\n    public const INFO = [\n        'name' =&gt; 'PHP E\u30b3\u30de\u30fc\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0',\n        'version' =&gt; '2.5.1',\n        'company' =&gt; 'PHP\u958b\u767a\u682a\u5f0f\u4f1a\u793e',\n        'contact' =&gt; 'support@example.com'\n    ];\n    \n    \/\/ \u6a5f\u80fd\u30d5\u30e9\u30b0\uff08\u65b0\u6a5f\u80fd\u306eON\/OFF\u5236\u5fa1\u7528\uff09\n    public const FEATURES = [\n        'new_payment_gateway' =&gt; true,\n        'advanced_search' =&gt; true,\n        'user_reviews' =&gt; false,  \/\/ \u307e\u3060\u30d9\u30fc\u30bf\u7248\n        'multi_language' =&gt; true\n    ];\n    \n    \/\/ \u901a\u77e5\u8a2d\u5b9a\n    public const NOTIFICATIONS = [\n        'channels' =&gt; ['email', 'sms', 'push'],\n        'default_channel' =&gt; 'email',\n        'templates' =&gt; [\n            'welcome' =&gt; [\n                'subject' =&gt; '\u3088\u3046\u3053\u305d {name} \u3055\u3093',\n                'template' =&gt; 'emails\/welcome.tpl'\n            ],\n            'order_confirmation' =&gt; [\n                'subject' =&gt; '\u6ce8\u6587\u78ba\u8a8d #{order_id}',\n                'template' =&gt; 'emails\/order_confirmation.tpl'\n            ],\n            'password_reset' =&gt; [\n                'subject' =&gt; '\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u306e\u3054\u6848\u5185',\n                'template' =&gt; 'emails\/password_reset.tpl'\n            ]\n        ]\n    ];\n    \n    \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a\n    public const CACHE = [\n        'enabled' =&gt; true,\n        'ttl' =&gt; [\n            'product' =&gt; 3600,       \/\/ 1\u6642\u9593\n            'category' =&gt; 86400,     \/\/ 24\u6642\u9593\n            'user' =&gt; 1800,          \/\/ 30\u5206\n            'settings' =&gt; 604800     \/\/ 1\u9031\u9593\n        ],\n        'invalidation_events' =&gt; [\n            'product_update' =&gt; ['product', 'category'],\n            'user_login' =&gt; ['user']\n        ]\n    ];\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u5305\u62ec\u7684\u306a\u8a2d\u5b9a\u30af\u30e9\u30b9\u306f\u3001\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u7279\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u914d\u5217\u5b9a\u6570\u306f\u3001PHP\u306e\u5f37\u529b\u306a\u6a5f\u80fd\u306e\u4e00\u3064\u3067\u3042\u308a\u3001\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u3068\u4fdd\u5b88\u6027\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002PHP\u306e\u9032\u5316\u306b\u4f34\u3044\u3001\u914d\u5217\u5b9a\u6570\u306e\u6a5f\u80fd\u3082\u62e1\u5f35\u3055\u308c\u3001\u3088\u308a\u67d4\u8edf\u3067\u5805\u7262\u306a\u30b3\u30fc\u30c9\u8a2d\u8a08\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-52\">PHP \u5b9a\u6570\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/h2>\n\n\n\n<p>\u5b9a\u6570\u306f\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3084\u4fdd\u5b88\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6700\u9069\u5316\u306b\u3082\u8ca2\u732e\u3057\u307e\u3059\u3002\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9a\u6570\u304cPHP\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3068\u51e6\u7406\u901f\u5ea6\u306b\u3069\u306e\u3088\u3046\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u304b\u3092\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-53\">\u5b9a\u6570\u4f7f\u7528\u306b\u3088\u308b\u30e1\u30e2\u30ea\u3068\u51e6\u7406\u901f\u5ea6\u3078\u306e\u5f71\u97ff<\/h3>\n\n\n\n<p>\u5b9a\u6570\u3068\u5909\u6570\u3067\u306fPHP\u30a8\u30f3\u30b8\u30f3\u5185\u90e8\u3067\u306e\u6271\u3044\u304c\u7570\u306a\u308a\u3001\u305d\u308c\u304c\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u307e\u3059\u3002\u5358\u7d14\u306a\u5b9a\u6570\u3068\u5909\u6570\u306e\u9055\u3044\u306f\u5c0f\u3055\u306a\u3082\u306e\u3067\u3059\u304c\u3001\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u30eb\u30fc\u30d7\u5185\u3067\u983b\u7e41\u306b\u30a2\u30af\u30bb\u30b9\u3055\u308c\u308b\u5834\u5408\u306b\u306f\u7a4d\u307f\u91cd\u306a\u3063\u3066\u6709\u610f\u306a\u5dee\u306b\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-54\">\u30e1\u30e2\u30ea\u4f7f\u7528\u3078\u306e\u5f71\u97ff<\/h4>\n\n\n\n<p>\u5b9a\u6570\u306fPHP\u306e\u30e1\u30e2\u30ea\u7ba1\u7406\u306b\u304a\u3044\u3066\u3044\u304f\u3064\u304b\u306e\u5229\u70b9\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30b7\u30f3\u30dc\u30eb\u30c6\u30fc\u30d6\u30eb\u306e\u6700\u9069\u5316<\/strong> \u5b9a\u6570\u306f\u30b7\u30f3\u30dc\u30eb\u30c6\u30fc\u30d6\u30eb\u306b\u4e00\u5ea6\u3060\u3051\u767b\u9332\u3055\u308c\u3001\u305d\u306e\u5f8c\u306f\u305d\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u53c2\u7167\u3059\u308b\u3060\u3051\u3067\u6e08\u307f\u307e\u3059\u3002\u4e00\u65b9\u3001\u5909\u6570\u306f\u901a\u5e38\u3001\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\uff08\u30b9\u30b3\u30fc\u30d7\uff09\u3054\u3068\u306b\u65b0\u3057\u3044\u30e1\u30e2\u30ea\u9818\u57df\u3092\u78ba\u4fdd\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5909\u6570\u306e\u5834\u5408\nfunction process() {\n    $max = 1000; \/\/ \u95a2\u6570\u304c\u547c\u3070\u308c\u308b\u305f\u3073\u306b\u30e1\u30e2\u30ea\u78ba\u4fdd\n    \/\/ ...\n}\n\n\/\/ \u5b9a\u6570\u306e\u5834\u5408\nconst MAX = 1000; \/\/ \u4e00\u5ea6\u3060\u3051\u30e1\u30e2\u30ea\u78ba\u4fdd\nfunction process() {\n    \/\/ MAX\u306f\u65e2\u306b\u5b9a\u7fa9\u6e08\u307f\u306e\u305f\u3081\u30e1\u30e2\u30ea\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u306a\u3057\n    \/\/ ...\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5024\u306e\u5171\u6709<\/strong> \u540c\u3058\u5024\u3092\u53c2\u7167\u3059\u308b\u8907\u6570\u306e\u5909\u6570\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u3001\u305d\u308c\u305e\u308c\u304c\u30e1\u30e2\u30ea\u3092\u6d88\u8cbb\u3057\u307e\u3059\u3002\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308c\u3070\u3001\u4e00\u7b87\u6240\u3067\u5b9a\u7fa9\u3057\u3001\u8907\u6570\u306e\u5834\u6240\u3067\u53c2\u7167\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30a4\u30df\u30e5\u30fc\u30bf\u30d3\u30ea\u30c6\u30a3\uff08\u4e0d\u5909\u6027\uff09\u306e\u30e1\u30ea\u30c3\u30c8<\/strong> \u5b9a\u6570\u306f\u5909\u66f4\u3055\u308c\u306a\u3044\u305f\u3081\u3001PHP\u30a8\u30f3\u30b8\u30f3\u306f\u5185\u90e8\u7684\u306b\u6700\u9069\u5316\u3092\u884c\u3044\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002\u7279\u306b\u30aa\u30da\u30b3\u30fc\u30c9\u30ad\u30e3\u30c3\u30b7\u30e5\u3068\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u52b9\u679c\u3092\u767a\u63ee\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-55\">\u51e6\u7406\u901f\u5ea6\u3078\u306e\u5f71\u97ff<\/h4>\n\n\n\n<p>\u5b9a\u6570\u30a2\u30af\u30bb\u30b9\u306f\u5909\u6570\u30a2\u30af\u30bb\u30b9\u3068\u6bd4\u8f03\u3057\u3066\u3001\u308f\u305a\u304b\u306a\u304c\u3089\u9ad8\u901f\u3067\u3042\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8a55\u4fa1\u30bf\u30a4\u30df\u30f3\u30b0\u306e\u9055\u3044<\/strong> <code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5b9a\u6570\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u3001\u5b9f\u884c\u6642\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u524a\u6e1b\u3055\u308c\u307e\u3059\u3002\u4e00\u65b9\u3001<code>define()<\/code>\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5b9a\u6570\u306f\u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u307e\u3059\u3002\u5909\u6570\u306f\u5e38\u306b\u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\nconst PI = 3.14159265359;\n\n\/\/ \u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\ndefine('E', 2.71828);\n\n\/\/ \u5e38\u306b\u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\n$golden_ratio = 1.61803398875;<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5909\u6570\u691c\u7d22\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9<\/strong> \u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u969b\u3001PHP\u306f\u30b7\u30f3\u30dc\u30eb\u30c6\u30fc\u30d6\u30eb\u3092\u691c\u7d22\u3057\u3066\u305d\u306e\u5909\u6570\u306e\u5024\u3092\u53d6\u5f97\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u5b9a\u6570\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3082\u540c\u69d8\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u7d4c\u307e\u3059\u304c\u3001\u5b9a\u6570\u306f\u5909\u66f4\u3055\u308c\u306a\u3044\u305f\u3081\u30ad\u30e3\u30c3\u30b7\u30e5\u3055\u308c\u3084\u3059\u304f\u3001\u30a2\u30af\u30bb\u30b9\u304c\u82e5\u5e72\u9ad8\u901f\u306b\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30eb\u30fc\u30d7\u5185\u3067\u306e\u52b9\u679c<\/strong> \u7279\u306b\u7e70\u308a\u8fd4\u3057\u51e6\u7406\u5185\u3067\u983b\u7e41\u306b\u30a2\u30af\u30bb\u30b9\u3055\u308c\u308b\u5024\u306f\u3001\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u975e\u52b9\u7387\u7684\u306a\u4f8b\uff08\u5b9f\u884c\u6642\u306b\u6bce\u56de\u8a08\u7b97\uff09\nfor ($i = 0; $i &lt; 1000000; $i++) {\n    $result = $i * (2 * pi());\n}\n\n\/\/ \u52b9\u7387\u7684\u306a\u4f8b\uff08\u5b9a\u6570\u3092\u4f7f\u7528\uff09\nconst TWO_PI = 2 * M_PI;\nfor ($i = 0; $i &lt; 1000000; $i++) {\n    $result = $i * TWO_PI;\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-56\">\u30aa\u30da\u30b3\u30fc\u30c9\u30ad\u30e3\u30c3\u30b7\u30e5\u3068\u5b9a\u6570\u306e\u95a2\u4fc2<\/h4>\n\n\n\n<p>PHP 5.5\u4ee5\u964d\u3067\u6a19\u6e96\u642d\u8f09\u3055\u308c\u3066\u3044\u308bOPcache\uff08\u30aa\u30da\u30b3\u30fc\u30c9\u30ad\u30e3\u30c3\u30b7\u30e5\uff09\u306f\u3001PHP\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u4e2d\u9593\u30b3\u30fc\u30c9\uff08\u30aa\u30da\u30b3\u30fc\u30c9\uff09\u306e\u72b6\u614b\u3067\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\u3082\u306e\u3067\u3059\u3002\u5b9a\u6570\u306f\u3053\u306e\u30aa\u30da\u30b3\u30fc\u30c9\u30ad\u30e3\u30c3\u30b7\u30e5\u3068\u7279\u306b\u76f8\u6027\u304c\u826f\u3044\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u9759\u7684\u306a\u5024\u306e\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0<\/strong> <code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001\u30aa\u30da\u30b3\u30fc\u30c9\u30ad\u30e3\u30c3\u30b7\u30e5\u306b\u3088\u3063\u3066\u52b9\u7387\u7684\u306b\u6700\u9069\u5316\u3055\u308c\u307e\u3059\u3002\u5b9a\u6570\u306e\u5024\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u6e08\u307f\u306e\u30aa\u30da\u30b3\u30fc\u30c9\u306b\u76f4\u63a5\u57cb\u3081\u8fbc\u307e\u308c\u308b\u305f\u3081\u3001\u5b9f\u884c\u6642\u306e\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u4e0d\u8981\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u52d5\u7684\u5b9a\u6570\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u5236\u9650<\/strong> <code>define()<\/code>\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u52d5\u7684\u306a\u5b9a\u6570\u306f\u3001\u5b8c\u5168\u306b\u6700\u9069\u5316\u3067\u304d\u306a\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u7279\u306b\u6761\u4ef6\u5206\u5c90\u5185\u3067\u5b9a\u7fa9\u3055\u308c\u308b\u5834\u5408\u3084\u3001\u5909\u6570\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u6570\u540d\u3092\u69cb\u7bc9\u3059\u308b\u5834\u5408\u306f\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u52b9\u7387\u7684\u306b\u6700\u9069\u5316\u3055\u308c\u308b\nconst MAX_USERS = 1000;\n\n\/\/ \u6761\u4ef6\u306b\u3088\u3063\u3066\u7570\u306a\u308b\u5024\u304c\u8a2d\u5b9a\u3055\u308c\u308b\u305f\u3081\u6700\u9069\u5316\u304c\u5236\u9650\u3055\u308c\u308b\nif (getenv('ENVIRONMENT') === 'production') {\n    define('DEBUG_MODE', false);\n} else {\n    define('DEBUG_MODE', true);\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30aa\u30da\u30b3\u30fc\u30c9\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u8a2d\u5b9a<\/strong> OPcache\u3092\u6709\u52b9\u306b\u3057\u3001\u9069\u5207\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u5b9a\u6570\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e1\u30ea\u30c3\u30c8\u3092\u6700\u5927\u5316\u3067\u304d\u307e\u3059\uff1a <\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; php.ini \u306e\u8a2d\u5b9a\u4f8b\nopcache.enable=1\nopcache.memory_consumption=128\nopcache.interned_strings_buffer=8\nopcache.max_accelerated_files=4000\nopcache.validate_timestamps=0\nopcache.save_comments=1<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-57\">\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30c6\u30b9\u30c8\u306e\u7d50\u679c\u3068\u5206\u6790<\/h4>\n\n\n\n<p>\u5b9a\u6570\u3068\u5909\u6570\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u306b\u3064\u3044\u3066\u3001\u3044\u304f\u3064\u304b\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30c6\u30b9\u30c8\u3092\u884c\u3063\u305f\u7d50\u679c\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u50be\u5411\u304c\u898b\u3089\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5358\u7d14\u306a\u30a2\u30af\u30bb\u30b9\u6bd4\u8f03<\/strong> \u57fa\u672c\u7684\u306a\u30a2\u30af\u30bb\u30b9\u901f\u5ea6\u6bd4\u8f03\u3067\u306f\u3001\u5b9a\u6570\u30a2\u30af\u30bb\u30b9\u306f\u5909\u6570\u30a2\u30af\u30bb\u30b9\u3088\u308a\u308f\u305a\u304b\u306b\u9ad8\u901f\u3067\u3059\uff08\u7d043\u301c5%\u7a0b\u5ea6\uff09\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u5dee\u306f\u30de\u30a4\u30af\u30ed\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30ec\u30d9\u30eb\u3067\u3042\u308a\u3001\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u4ed6\u306e\u8981\u56e0\u306e\u5f71\u97ff\u306e\u65b9\u304c\u5927\u304d\u3044\u5834\u5408\u304c\u591a\u3044\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30eb\u30fc\u30d7\u5185\u3067\u306e\u7e70\u308a\u8fd4\u3057\u30a2\u30af\u30bb\u30b9<\/strong> 100\u4e07\u56de\u306e\u30eb\u30fc\u30d7\u5185\u3067\u5b9a\u6570\u3068\u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u6bd4\u8f03\u3067\u306f\u3001\u5b9a\u6570\u4f7f\u7528\u306e\u65b9\u304c\u7d045\u301c10%\u9ad8\u901f\u306b\u306a\u308b\u50be\u5411\u304c\u3042\u308a\u307e\u3059\u3002\u7279\u306b\u3001\u8907\u96d1\u306a\u5f0f\u306e\u7d50\u679c\u3092\u683c\u7d0d\u3059\u308b\u5834\u5408\u3001\u305d\u306e\u5dee\u306f\u5927\u304d\u304f\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>PHP 7\u3068PHP 8\u3067\u306e\u6bd4\u8f03<\/strong> PHP 7\u4ee5\u964d\u3067\u306f\u3001JIT\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u5c0e\u5165\u306a\u3069\u306b\u3088\u308a\u3001\u5b9a\u6570\u3068\u5909\u6570\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5dee\u304c\u5c0f\u3055\u304f\u306a\u308b\u50be\u5411\u304c\u3042\u308a\u307e\u3059\u3002PHP 8\u3067\u306f\u3055\u3089\u306b\u3053\u306e\u50be\u5411\u304c\u5f37\u307e\u308a\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5dee\u306f\u6570%\u4ee5\u5185\u306b\u53ce\u307e\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6bd4\u8f03<\/strong> \u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9a\u6570\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u304c\u6700\u5927\u306710\u301c15%\u524a\u6e1b\u3055\u308c\u308b\u30b1\u30fc\u30b9\u3082\u898b\u3089\u308c\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u306e\u7d50\u679c\u306f\u74b0\u5883\u3084PHP\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7279\u6027\u306b\u3088\u3063\u3066\u7570\u306a\u308a\u307e\u3059\u304c\u3001\u4e00\u822c\u7684\u306b\u306f\u5b9a\u6570\u4f7f\u7528\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u306f\u78ba\u304b\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u3053\u308c\u306f\u300c\u9280\u306e\u5f3e\u4e38\u300d\u3067\u306f\u306a\u304f\u3001\u9069\u5207\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3067\u6d3b\u7528\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d9\u30f3\u30c1\u30de\u30fc\u30af\u4f8b\n$startTime = microtime(true);\n\/\/ \u5909\u6570\u3092\u4f7f\u7528\u3057\u305f\u30c6\u30b9\u30c8\n$value = 3.14159265359;\n$result = 0;\nfor ($i = 0; $i &lt; 10000000; $i++) {\n    $result += $i * $value;\n}\n$variableTime = microtime(true) - $startTime;\n\n$startTime = microtime(true);\n\/\/ \u5b9a\u6570\u3092\u4f7f\u7528\u3057\u305f\u30c6\u30b9\u30c8\nconst PI_VALUE = 3.14159265359;\n$result = 0;\nfor ($i = 0; $i &lt; 10000000; $i++) {\n    $result += $i * PI_VALUE;\n}\n$constTime = microtime(true) - $startTime;\n\necho \"\u5909\u6570\u4f7f\u7528: \" . $variableTime . \"\u79d2\\n\";\necho \"\u5b9a\u6570\u4f7f\u7528: \" . $constTime . \"\u79d2\\n\";\necho \"\u5dee\u5206: \" . (($variableTime - $constTime) \/ $variableTime * 100) . \"%\\n\";\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-58\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u306e\u305f\u3081\u306e\u5b9a\u6570\u6d3b\u7528\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>\u5b9a\u6570\u3092\u52b9\u679c\u7684\u306b\u6d3b\u7528\u3057\u3066\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306e\u30c6\u30af\u30cb\u30c3\u30af\u3092\u3044\u304f\u3064\u304b\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-59\">\u983b\u7e41\u306b\u30a2\u30af\u30bb\u30b9\u3055\u308c\u308b\u5024\u306e\u5b9a\u6570\u5316<\/h4>\n\n\n\n<p>\u7e70\u308a\u8fd4\u3057\u30a2\u30af\u30bb\u30b9\u3055\u308c\u308b\u5024\u3084\u8a08\u7b97\u7d50\u679c\u306f\u3001\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u52b9\u7387\u7684\u3067\u306a\u3044\u4f8b\uff08\u6bce\u56de\u8a08\u7b97\u3055\u308c\u308b\uff09\nfunction calculateArea($radius) {\n    return $radius * $radius * pi();\n}\n\n\/\/ \u52b9\u7387\u7684\u306a\u4f8b\uff08\u5b9a\u6570\u3092\u4f7f\u7528\uff09\nconst PI = 3.14159265359;\nfunction calculateArea($radius) {\n    return $radius * $radius * PI;\n}\n<\/pre>\n\n\n\n<p>\u7279\u306b\u6570\u5b66\u7684\u5b9a\u6570\u3084\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4f7f\u7528\u3055\u308c\u308b\u8a2d\u5b9a\u5024\u306a\u3069\u306b\u6709\u52b9\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6570\u5b66\u7684\u5b9a\u6570\nconst TWO_PI = 2 * M_PI;\nconst SQRT_TWO = 1.41421356237;\nconst PHI = 1.61803398875;\n\n\/\/ \u8a2d\u5b9a\u5024\nconst MAX_IMAGE_SIZE = 1024 * 1024 * 2; \/\/ 2MB\nconst DEFAULT_PAGINATION = 20;\nconst API_TIMEOUT = 30; \/\/ \u79d2\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-60\">\u5b9a\u6570\u3092\u4f7f\u3063\u305fSQL\u6700\u9069\u5316\u306e\u4f8b<\/h4>\n\n\n\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u5185\u3067\u4f7f\u7528\u3055\u308c\u308b\u5024\u3082\u5b9a\u6570\u5316\u3059\u308b\u3053\u3068\u3067\u3001\u30af\u30a8\u30ea\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u52b9\u7387\u304c\u5411\u4e0a\u3059\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u975e\u52b9\u7387\u7684\u306a\u4f8b\uff08\u6bce\u56de\u7570\u306a\u308bSQL\u3068\u3057\u3066\u6271\u308f\u308c\u308b\u53ef\u80fd\u6027\uff09\nfunction getActiveUsers($limit = 20) {\n    $sql = \"SELECT * FROM users WHERE status = 1 LIMIT {$limit}\";\n    \/\/ ...\n}\n\n\/\/ \u52b9\u7387\u7684\u306a\u4f8b\uff08\u5b9a\u6570\u3092\u4f7f\u7528\uff09\nconst STATUS_ACTIVE = 1;\nconst DEFAULT_USER_LIMIT = 20;\n\nfunction getActiveUsers($limit = DEFAULT_USER_LIMIT) {\n    $sql = \"SELECT * FROM users WHERE status = \" . STATUS_ACTIVE . \" LIMIT {$limit}\";\n    \/\/ ...\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u65b9\u6cd5\u306b\u3088\u308a\u3001SQL\u30af\u30a8\u30ea\u306e\u6e96\u5099\uff08prepare\uff09\u3084\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u52b9\u7387\u304c\u5411\u4e0a\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-61\">\u30de\u30a4\u30af\u30ed\u6700\u9069\u5316\u3068\u3057\u3066\u306e\u5b9a\u6570\u306e\u4f7f\u7528\u65b9\u6cd5<\/h4>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u7279\u306b\u91cd\u8981\u306a\u30b3\u30fc\u30c9\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5b9a\u6570\u306e\u4f7f\u7528\u304c\u52b9\u679c\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30eb\u30fc\u30d7\u306e\u4e0a\u9650\u3068\u3057\u3066\u4f7f\u7528<\/strong> \u30eb\u30fc\u30d7\u306e\u4e0a\u9650\u5024\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u3001\u6bce\u56de\u306e\u53cd\u5fa9\u3067\u6761\u4ef6\u8a55\u4fa1\u304c\u6700\u9069\u5316\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u975e\u52b9\u7387\u7684\u306a\u4f8b\nfor ($i = 0; $i &lt; count($items); $i++) { \/\/ \u6bce\u56decount()\u304c\u5b9f\u884c\u3055\u308c\u308b\n    \/\/ \u51e6\u7406\n}\n\n\/\/ \u3088\u308a\u52b9\u7387\u7684\u306a\u4f8b\n$itemCount = count($items);\nfor ($i = 0; $i &lt; $itemCount; $i++) { \/\/ \u5909\u6570\u3092\u4f7f\u7528\n    \/\/ \u51e6\u7406\n}\n\n\/\/ \u3055\u3089\u306b\u52b9\u7387\u7684\u306a\u4f8b\uff08\u5927\u304d\u306a\u30eb\u30fc\u30d7\u3084\u7e70\u308a\u8fd4\u3057\u547c\u3073\u51fa\u3055\u308c\u308b\u95a2\u6570\u5185\uff09\nconst MAX_ITERATIONS = 1000;\nfor ($i = 0; $i &lt; MAX_ITERATIONS; $i++) {\n    \/\/ \u51e6\u7406\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6761\u4ef6\u5206\u5c90\u306e\u6700\u9069\u5316<\/strong> \u983b\u7e41\u306b\u4f7f\u7528\u3055\u308c\u308b\u6761\u4ef6\u5024\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u3001\u6761\u4ef6\u8a55\u4fa1\u304c\u52b9\u7387\u5316\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u983b\u7e41\u306b\u4f7f\u7528\u3055\u308c\u308b\u5024\u3092\u5b9a\u6570\u5316\nconst STATUS_PENDING = 0;\nconst STATUS_APPROVED = 1;\nconst STATUS_REJECTED = 2;\n\n\/\/ \u6761\u4ef6\u5206\u5c90\u3067\u4f7f\u7528\nif ($order-&gt;status === STATUS_APPROVED) {\n    \/\/ \u51e6\u7406\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u6d3b\u7528<\/strong> PHP\u306e\u30de\u30b8\u30c3\u30af\u5b9a\u6570\uff08<strong>LINE<\/strong>, __FILE__\u306a\u3069\uff09\u306f\u5185\u90e8\u7684\u306b\u6700\u9069\u5316\u3055\u308c\u3066\u304a\u308a\u3001\u30c7\u30d0\u30c3\u30b0\u3084\u30ed\u30ae\u30f3\u30b0\u306b\u52b9\u7387\u7684\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ed\u30b0\u8a18\u9332\u306e\u4f8b\nfunction logError($message) {\n    $logEntry = sprintf(\n        \"[%s] %s:%d - %s\",\n        date('Y-m-d H:i:s'),\n        __FILE__,\n        __LINE__,\n        $message\n    );\n    \/\/ \u30ed\u30b0\u51e6\u7406\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-62\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u73fe\u5b9f\u7684\u306a\u8996\u70b9<\/h4>\n\n\n\n<p>\u5b9a\u6570\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306f\u3001\u4ee5\u4e0b\u306e\u70b9\u3092\u8003\u616e\u3057\u3066\u53d6\u308a\u7d44\u3080\u3079\u304d\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30de\u30a4\u30af\u30ed\u6700\u9069\u5316\u306b\u60d1\u308f\u3055\u308c\u306a\u3044<\/strong> \u5b9a\u6570\u3068\u5909\u6570\u306e\u308f\u305a\u304b\u306a\u901f\u5ea6\u5dee\u3088\u308a\u3082\u3001\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u9078\u629e\u3084\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u306e\u6700\u9069\u5316\u306a\u3069\u306e\u65b9\u304c\u901a\u5e38\u306f\u5f71\u97ff\u304c\u5927\u304d\u3044\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u6e2c\u5b9a\u3068\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0<\/strong> \u5b9f\u969b\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u3092\u78ba\u8a8d\u3059\u308b\u306b\u306f\u3001\u5909\u66f4\u524d\u5f8c\u3067\u6b63\u78ba\u306b\u6e2c\u5b9a\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002Xdebug\u3001Blackfire.io\u306a\u3069\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30c4\u30fc\u30eb\u3092\u6d3b\u7528\u3057\u307e\u3057\u3087\u3046\u3002<\/li>\n\n\n\n<li><strong>\u8aad\u307f\u3084\u3059\u3055\u3068\u306e\u30d0\u30e9\u30f3\u30b9<\/strong> \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u305f\u3081\u306b\u53ef\u8aad\u6027\u3092\u72a0\u7272\u306b\u3059\u308b\u306e\u306f\u907f\u3051\u308b\u3079\u304d\u3067\u3059\u3002\u5b9a\u6570\u306f\u3080\u3057\u308d\u4e21\u65b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u826f\u3044\u4f8b\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6d3b\u7528<\/strong> OPcache\u3092\u9069\u5207\u306b\u8a2d\u5b9a\u3057\u3001\u5b9a\u6570\u306e\u6700\u9069\u5316\u52b9\u679c\u3092\u6700\u5927\u5316\u3057\u307e\u3057\u3087\u3046\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u5b9a\u6570\u3092\u4f7f\u7528\u3057\u305f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306f\u3001\u7279\u306b\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u9ad8\u8ca0\u8377\u306a\u30b7\u30b9\u30c6\u30e0\u3067\u52b9\u679c\u3092\u767a\u63ee\u3057\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u904e\u5ea6\u306a\u6700\u9069\u5316\u3088\u308a\u3082\u3001\u307e\u305a\u306f\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u3092\u512a\u5148\u3057\u3001\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u304c\u660e\u78ba\u306b\u306a\u3063\u305f\u90e8\u5206\u306b\u5bfe\u3057\u3066\u9069\u5207\u306b\u5b9a\u6570\u3092\u6d3b\u7528\u3059\u308b\u65b9\u91dd\u304c\u671b\u307e\u3057\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-63\">\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u7406\u89e3\u3068\u6d3b\u7528<\/h2>\n\n\n\n<p>PHP\u306b\u306f\u300c\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u300d\u3068\u547c\u3070\u308c\u308b\u7279\u6b8a\u306a\u7d44\u307f\u8fbc\u307f\u5b9a\u6570\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306f\u4ed6\u306e\u5b9a\u6570\u3068\u7570\u306a\u308a\u3001\u4f7f\u7528\u3055\u308c\u308b\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\uff08\u6587\u8108\uff09\u306b\u3088\u3063\u3066\u5024\u304c\u5909\u5316\u3059\u308b\u3068\u3044\u3046\u7279\u5fb4\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306f\u30c7\u30d0\u30c3\u30b0\u3084\u52d5\u7684\u306a\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u89e3\u6c7a\u306a\u3069\u3001\u69d8\u3005\u306a\u5834\u9762\u3067\u975e\u5e38\u306b\u5f79\u7acb\u3064\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-64\">PHP\u306e\u7d44\u307f\u8fbc\u307f\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u5b8c\u5168\u30ea\u30b9\u30c8<\/h3>\n\n\n\n<p>PHP\u306b\u306f9\u3064\u306e\u4e3b\u8981\u306a\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u305d\u308c\u305e\u308c\u306e\u5b9a\u6570\u306b\u3064\u3044\u3066\u3001\u305d\u306e\u610f\u5473\u3068\u4f7f\u7528\u4f8b\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-65\">1. <code>__LINE__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u306e\u30d5\u30a1\u30a4\u30eb\u5185\u306e\u884c\u756a\u53f7\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo \"\u73fe\u5728\u306e\u884c\u756a\u53f7: \" . __LINE__; \/\/ \u51fa\u529b\u4f8b: \u73fe\u5728\u306e\u884c\u756a\u53f7: 3\necho \"\u6b21\u306e\u884c\u756a\u53f7: \" . __LINE__;   \/\/ \u51fa\u529b\u4f8b: \u6b21\u306e\u884c\u756a\u53f7: 4\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u30a8\u30e9\u30fc\u30ed\u30b0\u3084\u30c7\u30d0\u30c3\u30b0\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u4f7f\u7528\u3059\u308b\u3068\u3001\u554f\u984c\u7b87\u6240\u3092\u7d20\u65e9\u304f\u7279\u5b9a\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function debug($message) {\n    error_log(\"\u30c7\u30d0\u30c3\u30b0 [\u30d5\u30a1\u30a4\u30eb: \" . __FILE__ . \", \u884c: \" . __LINE__ . \"]: \" . $message);\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-66\">2. <code>__FILE__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u7d76\u5bfe\u30d1\u30b9\u3068\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u8fd4\u3057\u307e\u3059\u3002Windows\u3067\u3082\u30d1\u30b9\u306e\u533a\u5207\u308a\u6587\u5b57\u306f\u30b9\u30e9\u30c3\u30b7\u30e5\uff08\/\uff09\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo __FILE__; \/\/ \u51fa\u529b\u4f8b: \/var\/www\/html\/example.php\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u5834\u6240\u306b\u4f9d\u5b58\u3059\u308b\u51e6\u7406\u3092\u5b9f\u88c5\u3059\u308b\u969b\u306b\u975e\u5e38\u306b\u4fbf\u5229\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u73fe\u5728\u306e\u30d5\u30a1\u30a4\u30eb\u3068\u540c\u3058\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u308b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\n$config = include dirname(__FILE__) . '\/config.php';\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-67\">3. <code>__DIR__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u7d76\u5bfe\u30d1\u30b9\u3092\u8fd4\u3057\u307e\u3059\u3002\u3053\u308c\u306f <code>dirname(__FILE__)<\/code> \u3068\u540c\u7b49\u3067\u3059\u304c\u3001\u3088\u308a\u7c21\u6f54\u306b\u66f8\u3051\u307e\u3059\uff08PHP 5.3\u4ee5\u964d\u3067\u5229\u7528\u53ef\u80fd\uff09\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo __DIR__; \/\/ \u51fa\u529b\u4f8b: \/var\/www\/html\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u7279\u306b\u30d5\u30a1\u30a4\u30eb\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3084\u30d1\u30b9\u89e3\u6c7a\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u76f8\u5bfe\u30d1\u30b9\u3092\u3088\u308a\u7c21\u6f54\u306b\u89e3\u6c7a\nrequire_once __DIR__ . '\/..\/vendor\/autoload.php';\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-68\">4. <code>__FUNCTION__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u95a2\u6570\u540d\u3092\u8fd4\u3057\u307e\u3059\u3002\u95a2\u6570\u306e\u5916\u3067\u306f\u7a7a\u306e\u6587\u5b57\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function test_function() {\n    echo \"\u73fe\u5728\u306e\u95a2\u6570\u540d: \" . __FUNCTION__;\n}\ntest_function(); \/\/ \u51fa\u529b: \u73fe\u5728\u306e\u95a2\u6570\u540d: test_function\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u5171\u901a\u306e\u30ed\u30b8\u30c3\u30af\u3084\u518d\u5e30\u7684\u306a\u95a2\u6570\u3067\u7279\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function process_data($data) {\n    error_log(__FUNCTION__ . \"\u304c\u547c\u3073\u51fa\u3055\u308c\u307e\u3057\u305f\");\n    \/\/ \u30c7\u30fc\u30bf\u51e6\u7406\u306e\u30ed\u30b8\u30c3\u30af\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-69\">5. <code>__CLASS__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u306e\u30af\u30e9\u30b9\u540d\u3092\u8fd4\u3057\u307e\u3059\u3002\u540d\u524d\u7a7a\u9593\u3092\u542b\u3080\u5b8c\u5168\u4fee\u98fe\u540d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30af\u30e9\u30b9\u306e\u5916\u3067\u306f\u7a7a\u306e\u6587\u5b57\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class TestClass {\n    public function showClass() {\n        echo \"\u73fe\u5728\u306e\u30af\u30e9\u30b9\u540d: \" . __CLASS__;\n    }\n}\n$test = new TestClass();\n$test-&gt;showClass(); \/\/ \u51fa\u529b: \u73fe\u5728\u306e\u30af\u30e9\u30b9\u540d: TestClass\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u30af\u30e9\u30b9\u5185\u3067\u306e\u518d\u5229\u7528\u53ef\u80fd\u306a\u30b3\u30fc\u30c9\u3084\u30d5\u30a1\u30af\u30c8\u30ea\u30e1\u30bd\u30c3\u30c9\u3067\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Model {\n    public static function create() {\n        return new __CLASS__(); \/\/ \u73fe\u5728\u306e\u30af\u30e9\u30b9\u306e\u65b0\u3057\u3044\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-70\">6. <code>__TRAIT__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u306e\u30c8\u30ec\u30a4\u30c8\u540d\u3092\u8fd4\u3057\u307e\u3059\u3002\u30c8\u30ec\u30a4\u30c8\u306e\u5916\u3067\u306f\u7a7a\u306e\u6587\u5b57\u5217\u3092\u8fd4\u3057\u307e\u3059\uff08PHP 5.4\u4ee5\u964d\u3067\u5229\u7528\u53ef\u80fd\uff09\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">trait TestTrait {\n    public function getTrait() {\n        return __TRAIT__;\n    }\n}\n\nclass UsingTrait {\n    use TestTrait;\n}\n\n$obj = new UsingTrait();\necho $obj-&gt;getTrait(); \/\/ \u51fa\u529b: TestTrait\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u30c8\u30ec\u30a4\u30c8\u5185\u306e\u6c4e\u7528\u7684\u306a\u30b3\u30fc\u30c9\u3067\u4f7f\u7528\u3067\u304d\u3001\u3069\u306e\u30c8\u30ec\u30a4\u30c8\u304b\u3089\u30b3\u30fc\u30c9\u304c\u5b9f\u884c\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u8b58\u5225\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-71\">7. <code>__METHOD__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u306e\u30af\u30e9\u30b9\u30e1\u30bd\u30c3\u30c9\u540d\u3092\u8fd4\u3057\u307e\u3059\u3002\u30af\u30e9\u30b9\u540d\u3068\u30e1\u30bd\u30c3\u30c9\u540d\u306e\u4e21\u65b9\u3092\u542b\u307f\u307e\u3059\u3002\u30af\u30e9\u30b9\u306e\u5916\u3067\u306f\u95a2\u6570\u540d\u3068\u540c\u3058\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class TestClass {\n    public function testMethod() {\n        echo \"\u73fe\u5728\u306e\u30e1\u30bd\u30c3\u30c9\u540d: \" . __METHOD__;\n    }\n}\n$test = new TestClass();\n$test-&gt;testMethod(); \/\/ \u51fa\u529b: \u73fe\u5728\u306e\u30e1\u30bd\u30c3\u30c9\u540d: TestClass::testMethod\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u30ed\u30b0\u8a18\u9332\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u3001\u30c7\u30d0\u30c3\u30b0\u306a\u3069\u3067\u975e\u5e38\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Logger {\n    public function log($message) {\n        echo \"[\" . date('Y-m-d H:i:s') . \"][\" . __METHOD__ . \"] \" . $message;\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-72\">8. <code>__NAMESPACE__<\/code><\/h4>\n\n\n\n<p>\u73fe\u5728\u306e\u540d\u524d\u7a7a\u9593\u540d\u3092\u8fd4\u3057\u307e\u3059\u3002\u30b0\u30ed\u30fc\u30d0\u30eb\u540d\u524d\u7a7a\u9593\u3067\u306f\u7a7a\u306e\u6587\u5b57\u5217\u3092\u8fd4\u3057\u307e\u3059\uff08PHP 5.3\u4ee5\u964d\u3067\u5229\u7528\u53ef\u80fd\uff09\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App\\Controllers;\n\nclass UserController {\n    public function index() {\n        echo \"\u73fe\u5728\u306e\u540d\u524d\u7a7a\u9593: \" . __NAMESPACE__;\n    }\n}\n\/\/ \u51fa\u529b: \u73fe\u5728\u306e\u540d\u524d\u7a7a\u9593: App\\Controllers\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9a\u6570\u306f\u52d5\u7684\u306a\u30af\u30e9\u30b9\u30ed\u30fc\u30c7\u30a3\u30f3\u30b0\u3084\u30d5\u30a1\u30af\u30c8\u30ea\u30d1\u30bf\u30fc\u30f3\u306e\u5b9f\u88c5\u3067\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App\\Services;\n\nclass ServiceFactory {\n    public static function create($serviceName) {\n        $className = __NAMESPACE__ . '\\\\' . $serviceName;\n        return new $className();\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-73\">9. <code>ClassName::class<\/code><\/h4>\n\n\n\n<p>\u6307\u5b9a\u3057\u305f\u30af\u30e9\u30b9\u306e\u5b8c\u5168\u4fee\u98fe\u540d\uff08Fully Qualified Class Name\uff09\u3092\u8fd4\u3057\u307e\u3059\uff08PHP 5.5\u4ee5\u964d\u3067\u5229\u7528\u53ef\u80fd\uff09\u3002\u3053\u308c\u306f\u53b3\u5bc6\u306b\u306f\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u3068\u3044\u3046\u3088\u308a\u306f\u3001\u30af\u30e9\u30b9\u540d\u89e3\u6c7a\u306e\u69cb\u6587\u3067\u3059\u304c\u3001\u540c\u69d8\u306e\u7528\u9014\u3067\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App\\Models;\n\nclass User {}\n\necho User::class; \/\/ \u51fa\u529b: App\\Models\\User\n<\/pre>\n\n\n\n<p>\u3053\u306e\u69cb\u6587\u306f\u30aa\u30fc\u30c8\u30ed\u30fc\u30c7\u30a3\u30f3\u30b0\u3084DI\u30b3\u30f3\u30c6\u30ca\u3067\u7279\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ DI\u30b3\u30f3\u30c6\u30ca\u306e\u4f8b\n$container-&gt;register(Logger::class, function() {\n    return new FileLogger();\n});\n\n\/\/ \u30d5\u30a9\u30fc\u30e0\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306e\u4f8b\n$validator-&gt;addRule(User::class, 'email', 'isValidEmail');\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-74\">\u5404\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u5b9f\u969b\u306e\u51fa\u529b\u4f8b<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u3001\u540c\u3058\u30d5\u30a1\u30a4\u30eb\u5185\u3067\u306e\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u51fa\u529b\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/\/ \u30d5\u30a1\u30a4\u30eb: \/var\/www\/html\/app\/example.php\nnamespace App\\Examples;\n\ntrait TestTrait {\n    public function traitMethod() {\n        return __TRAIT__;\n    }\n}\n\nclass Example {\n    use TestTrait;\n    \n    public function test() {\n        echo \"File: \" . __FILE__ . \"&lt;br&gt;\";\n        echo \"Line: \" . __LINE__ . \"&lt;br&gt;\";\n        echo \"Dir: \" . __DIR__ . \"&lt;br&gt;\";\n        echo \"Function: \" . __FUNCTION__ . \"&lt;br&gt;\";\n        echo \"Class: \" . __CLASS__ . \"&lt;br&gt;\";\n        echo \"Method: \" . __METHOD__ . \"&lt;br&gt;\";\n        echo \"Namespace: \" . __NAMESPACE__ . \"&lt;br&gt;\";\n        echo \"Trait: \" . $this-&gt;traitMethod() . \"&lt;br&gt;\";\n        echo \"Class Resolution: \" . self::class . \"&lt;br&gt;\";\n    }\n}\n\n$example = new Example();\n$example-&gt;test();\n<\/pre>\n\n\n\n<p>\u51fa\u529b\u7d50\u679c\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">File: \/var\/www\/html\/app\/example.php\nLine: 17\nDir: \/var\/www\/html\/app\nFunction: test\nClass: App\\Examples\\Example\nMethod: App\\Examples\\Example::test\nNamespace: App\\Examples\nTrait: App\\Examples\\TestTrait\nClass Resolution: App\\Examples\\Example\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-75\">\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u4f7f\u7528\u6642\u306e\u6ce8\u610f\u70b9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5024\u306e\u5909\u5316<\/strong> \u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306f\u30d5\u30a1\u30a4\u30eb\u3084\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u3088\u3063\u3066\u5024\u304c\u5909\u308f\u308b\u305f\u3081\u3001\u305d\u306e\u632f\u308b\u821e\u3044\u3092\u5b8c\u5168\u306b\u7406\u89e3\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u3067\u306e\u52d5\u4f5c<\/strong> <code>require<\/code> \u3084 <code>include<\/code> \u3067\u8aad\u307f\u8fbc\u307e\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u5185\u3067\u306f\u3001\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306f\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u81ea\u8eab\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u53c2\u7167\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u7121\u540d\u95a2\u6570\u5185\u3067\u306e\u52d5\u4f5c<\/strong> \u7121\u540d\u95a2\u6570\uff08\u30af\u30ed\u30fc\u30b8\u30e3\uff09\u5185\u3067\u306f\u3001\u5916\u5074\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306e\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u3092\u53c2\u7167\u3057\u307e\u3059\uff08<code>__LINE__<\/code> \u3092\u9664\u304f\uff09\u3002<\/li>\n\n\n\n<li><strong>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u533a\u5225<\/strong> \u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u307e\u305b\u3093\uff08<code>__LINE__<\/code> \u3068 <code>__line__<\/code> \u306f\u540c\u3058\uff09\u3002\u305f\u3060\u3057\u3001\u4e00\u822c\u7684\u306b\u306f\u5927\u6587\u5b57\u3067\u66f8\u304f\u306e\u304c\u6163\u7fd2\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u5b9a\u7fa9\u6e08\u307f\u5b9a\u6570\u3068\u306e\u9055\u3044<\/strong> \u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306f\u901a\u5e38\u306e\u5b9a\u6570\uff08<code>define()<\/code> \u3084 <code>const<\/code> \u3067\u5b9a\u7fa9\u3055\u308c\u305f\u3082\u306e\uff09\u3068\u306f\u7570\u306a\u308a\u3001\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u3088\u3063\u3066\u5024\u304c\u5909\u308f\u308a\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-76\">\u30c7\u30d0\u30c3\u30b0\u3068\u958b\u767a\u52b9\u7387\u5316\u306e\u305f\u3081\u306e\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u6d3b\u7528\u6cd5<\/h3>\n\n\n\n<p>\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30c7\u30d0\u30c3\u30b0\u3084\u958b\u767a\u52b9\u7387\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5177\u4f53\u7684\u306a\u6d3b\u7528\u4f8b\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-77\">\u30ed\u30b0\u51fa\u529b\u3067\u306e\u6d3b\u7528\u6cd5<\/h4>\n\n\n\n<p>\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u3092\u4f7f\u3063\u3066\u3001\u3088\u308a\u60c5\u5831\u91cf\u306e\u591a\u3044\u30ed\u30b0\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function logger($message, $level = 'INFO') {\n    $logLine = sprintf(\n        \"[%s][%s][%s:%d] %s\",\n        date('Y-m-d H:i:s'),\n        $level,\n        basename(__FILE__),\n        __LINE__,\n        $message\n    );\n    \n    error_log($logLine);\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nlogger(\"\u30e6\u30fc\u30b6\u30fc\u30ed\u30b0\u30a4\u30f3\u8a66\u884c\", \"DEBUG\");\n\/\/ \u51fa\u529b\u4f8b: [2023-04-22 15:30:45][DEBUG][auth.php:25] \u30e6\u30fc\u30b6\u30fc\u30ed\u30b0\u30a4\u30f3\u8a66\u884c\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u30ed\u30b0\u5f62\u5f0f\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u554f\u984c\u767a\u751f\u6642\u306b\u7d20\u65e9\u304f\u8a72\u5f53\u7b87\u6240\u3092\u7279\u5b9a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-78\">\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3067\u306e\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u4f7f\u7528<\/h4>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30e9\u30fc\u3067\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u3092\u6d3b\u7528\u3059\u308b\u3068\u3001\u30a8\u30e9\u30fc\u306e\u8ffd\u8de1\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function customErrorHandler($errno, $errstr, $errfile, $errline) {\n    $message = sprintf(\n        \"\u30a8\u30e9\u30fc\u767a\u751f: [%s] %s in %s on line %d (called from %s::%s, line %d)\",\n        $errno,\n        $errstr,\n        $errfile,\n        $errline,\n        __CLASS__,\n        __FUNCTION__,\n        __LINE__\n    );\n    \n    error_log($message);\n    return true; \/\/ \u30a8\u30e9\u30fc\u3092\u51e6\u7406\u6e08\u307f\u3068\u3057\u3066PHP\u306b\u901a\u77e5\n}\n\n\/\/ \u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30e9\u306e\u8a2d\u5b9a\nset_error_handler(\"customErrorHandler\");\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-79\">\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u5185\u3067\u306e\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u5fdc\u7528\u4f8b<\/h4>\n\n\n\n<p>\u591a\u304f\u306ePHP\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u5185\u90e8\u7684\u306b\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u3092\u6d3b\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u306e\u89e3\u6c7a\u3084\u30aa\u30fc\u30c8\u30ed\u30fc\u30c7\u30a3\u30f3\u30b0\u306a\u3069\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30aa\u30fc\u30c8\u30ed\u30fc\u30c0\u30fc\u306e\u4f8b\nspl_autoload_register(function($className) {\n    \/\/ \u540d\u524d\u7a7a\u9593\u3092\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306b\u5909\u63db\n    $file = __DIR__ . '\/..\/src\/' . str_replace('\\\\', '\/', $className) . '.php';\n    \n    if (file_exists($file)) {\n        require $file;\n        return true;\n    }\n    \n    return false;\n});\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-80\">\u30c6\u30b9\u30c8\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306e\u6d3b\u7528<\/h4>\n\n\n\n<p>PHPUnit\u306a\u3069\u306e\u30c6\u30b9\u30c8\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3082\u3001\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u3092\u4f7f\u3063\u3066\u30c6\u30b9\u30c8\u30b1\u30fc\u30b9\u306e\u60c5\u5831\u3092\u81ea\u52d5\u7684\u306b\u8a18\u9332\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class UserTest extends TestCase {\n    public function setUp(): void {\n        $this-&gt;logger-&gt;info(__METHOD__ . \" started\");\n        \/\/ \u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30b3\u30fc\u30c9\n    }\n    \n    public function testUserRegistration() {\n        $this-&gt;logger-&gt;debug(\"Running \" . __METHOD__ . \" at line \" . __LINE__);\n        \/\/ \u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\n    }\n    \n    public function tearDown(): void {\n        $this-&gt;logger-&gt;info(__METHOD__ . \" completed\");\n        \/\/ \u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\u30b3\u30fc\u30c9\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-81\">\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u52d5\u7684\u306a\u8aad\u307f\u8fbc\u307f<\/h4>\n\n\n\n<p>\u74b0\u5883\u3054\u3068\u306b\u7570\u306a\u308b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u52d5\u7684\u306b\u8aad\u307f\u8fbc\u3080\u5834\u5408\u306b\u3082\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u304c\u4fbf\u5229\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u73fe\u5728\u306e\u74b0\u5883\u306b\u5fdc\u3058\u305f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u30ed\u30fc\u30c9\n$env = getenv('APP_ENV') ?: 'development';\n$configFile = __DIR__ . '\/config\/' . $env . '.php';\n\nif (file_exists($configFile)) {\n    $config = require $configFile;\n} else {\n    throw new Exception(\"Config file for environment '$env' not found\");\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-82\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0<\/h4>\n\n\n\n<p>\u30b3\u30fc\u30c9\u5b9f\u884c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6e2c\u5b9a\u3059\u308b\u969b\u306b\u3082\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u304c\u5f79\u7acb\u3061\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function profileFunction($callback, $args = []) {\n    $startTime = microtime(true);\n    $result = call_user_func_array($callback, $args);\n    $endTime = microtime(true);\n    \n    printf(\n        \"%s::%s executed in %.6f seconds\\n\",\n        is_array($callback) ? get_class($callback[0]) : __NAMESPACE__,\n        is_array($callback) ? $callback[1] : $callback,\n        $endTime - $startTime\n    );\n    \n    return $result;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nprofileFunction([$user, 'save']);\n<\/pre>\n\n\n\n<p>\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306f\u3001PHP\u306e\u57fa\u672c\u6a5f\u80fd\u3067\u3042\u308a\u306a\u304c\u3089\u975e\u5e38\u306b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u3002\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u5411\u4e0a\u3001\u30c7\u30d0\u30c3\u30b0\u306e\u52b9\u7387\u5316\u3001\u4fdd\u5b88\u6027\u306e\u5411\u4e0a\u306b\u5927\u304d\u304f\u8ca2\u732e\u3057\u307e\u3059\u3002\u7279\u306b\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u958b\u767a\u3067\u306f\u3001\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u7279\u6027\u3092\u7406\u89e3\u3057\u6d3b\u7528\u3059\u308b\u3053\u3068\u304c\u3001\u52b9\u7387\u7684\u306a\u958b\u767a\u306b\u3064\u306a\u304c\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-83\">\u30af\u30e9\u30b9\u8a2d\u8a08\u306b\u304a\u3051\u308bconst\u3068readonly property\u306e\u9078\u629e<\/h2>\n\n\n\n<p>PHP 8.1\u3067\u306f\u3001\u30af\u30e9\u30b9\u306e\u4e0d\u5909\u6027\uff08\u30a4\u30df\u30e5\u30fc\u30bf\u30d3\u30ea\u30c6\u30a3\uff09\u3092\u5f37\u5316\u3059\u308b\u305f\u3081\u306e\u65b0\u6a5f\u80fd\u3068\u3057\u3066\u300creadonly \u30d7\u30ed\u30d1\u30c6\u30a3\u300d\u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u306e\u6a5f\u80fd\u306b\u3088\u3063\u3066\u3001\u30af\u30e9\u30b9\u8a2d\u8a08\u306b\u304a\u3044\u3066\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u4e0d\u5909\u6027\u3092\u8868\u73fe\u3059\u308b\u9078\u629e\u80a2\u304c\u5897\u3048\u307e\u3057\u305f\u3002\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5f93\u6765\u306e <code>const<\/code> \u3068\u3053\u306e\u65b0\u3057\u3044 <code>readonly<\/code> \u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u9055\u3044\u3068\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-84\">PHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305freadonly property\u3068\u306e\u4f7f\u3044\u5206\u3051<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-85\">readonly property\u306e\u57fa\u672c\u6982\u5ff5<\/h4>\n\n\n\n<p>PHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305f <code>readonly<\/code> \u30ad\u30fc\u30ef\u30fc\u30c9\u306f\u3001\u4e00\u5ea6\u521d\u671f\u5316\u3055\u308c\u308b\u3068\u5024\u3092\u5909\u66f4\u3067\u304d\u306a\u3044\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u57fa\u672c\u7684\u306a\u69cb\u6587\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class User {\n    public readonly string $id;\n    public readonly string $email;\n    \n    public function __construct(string $id, string $email) {\n        $this-&gt;id = $id;\n        $this-&gt;email = $email;\n    }\n}\n\n$user = new User('123', 'user@example.com');\necho $user-&gt;id;    \/\/ \u51fa\u529b: 123\n\n\/\/ \u4ee5\u4e0b\u306f\u30a8\u30e9\u30fc\u306b\u306a\u308b\n$user-&gt;id = '456'; \/\/ Error: Cannot modify readonly property User::$id\n<\/pre>\n\n\n\n<p><code>readonly<\/code> \u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u306f\u4ee5\u4e0b\u306e\u7279\u5fb4\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u56fa\u6709\u306e\u5024<\/strong>\uff1a\u5404\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u7570\u306a\u308b\u5024\u3092\u6301\u3064\u3053\u3068\u304c\u3067\u304d\u308b<\/li>\n\n\n\n<li><strong>\u4e00\u5ea6\u3060\u3051\u306e\u4ee3\u5165<\/strong>\uff1a\u521d\u671f\u5316\u5f8c\u306f\u5909\u66f4\u4e0d\u53ef<\/li>\n\n\n\n<li><strong>\u578b\u5ba3\u8a00\u304c\u5fc5\u9808<\/strong>\uff1a\u5fc5\u305a\u578b\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<\/li>\n\n\n\n<li><strong>null\u306e\u6271\u3044<\/strong>\uff1a\u521d\u671f\u5024\u3068\u3057\u3066 null \u3092\u8a31\u53ef\u3057\u305f\u3044\u5834\u5408\u306f <code>?<\/code> \u3092\u4f7f\u3063\u305f nullable \u578b\u3092\u4f7f\u7528\u3059\u308b<\/li>\n\n\n\n<li><strong>\u7d99\u627f\u6642\u306e\u632f\u308b\u821e\u3044<\/strong>\uff1a\u5b50\u30af\u30e9\u30b9\u3067\u3082 readonly \u5c5e\u6027\u306f\u7dad\u6301\u3055\u308c\u308b<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-86\">const\u3068readonly property\u306e\u6839\u672c\u7684\u306a\u9055\u3044<\/h4>\n\n\n\n<p><code>const<\/code> \u3068 <code>readonly<\/code> \u306e\u6700\u3082\u6839\u672c\u7684\u306a\u9055\u3044\u306f\u3001\u300c\u9759\u7684\u304b\u52d5\u7684\u304b\u300d\u3068\u3044\u3046\u70b9\u3067\u3059\uff1a<\/p>\n\n\n<div id=\"id-345909ba-3d67-4bcb-b83b-a54fcab9a331\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u7279\u6027<\/th><th>const<\/th><th>readonly property<\/th><\/tr><\/thead><tbody><tr><td>\u30b9\u30b3\u30fc\u30d7<\/td><td>\u30af\u30e9\u30b9\u30ec\u30d9\u30eb\uff08\u9759\u7684\uff09<\/td><td>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30ec\u30d9\u30eb\uff08\u52d5\u7684\uff09<\/td><\/tr><tr><td>\u30a2\u30af\u30bb\u30b9\u65b9\u6cd5<\/td><td>\u30af\u30e9\u30b9\u540d::\u5b9a\u6570\u540d<\/td><td>$\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9-&gt;\u30d7\u30ed\u30d1\u30c6\u30a3\u540d<\/td><\/tr><tr><td>\u5024\u306e\u5171\u6709<\/td><td>\u3059\u3079\u3066\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u5171\u6709<\/td><td>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3054\u3068\u306b\u72ec\u7acb<\/td><\/tr><tr><td>\u521d\u671f\u5316\u30bf\u30a4\u30df\u30f3\u30b0<\/td><td>\u5b9a\u7fa9\u6642\uff08\u9759\u7684\uff09<\/td><td>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u4f5c\u6210\u6642\uff08\u52d5\u7684\uff09<\/td><\/tr><tr><td>\u4fdd\u6301\u3067\u304d\u308b\u5024\u306e\u7a2e\u985e<\/td><td>\u30b9\u30ab\u30e9\u30fc\u3001\u914d\u5217\u3001\u5b9a\u6570\u5f0f<\/td><td>\u3042\u3089\u3086\u308b\u578b\uff08\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3082\u53ef\uff09<\/td><\/tr><tr><td>\u7d99\u627f\u306e\u52d5\u4f5c<\/td><td>\u5b50\u30af\u30e9\u30b9\u3067\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u53ef\u80fd<\/td><td>\u5b50\u30af\u30e9\u30b9\u3067\u3082\u8aad\u307f\u53d6\u308a\u5c02\u7528\u306e\u307e\u307e<\/td><\/tr><tr><td>\u5024\u306e\u8a2d\u5b9a\u65b9\u6cd5<\/td><td>\u5b9a\u7fa9\u6642\u306e\u307f<\/td><td>\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u307e\u305f\u306f\u30a4\u30cb\u30b7\u30e3\u30e9\u30a4\u30b6\u5185<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"i-87\">\u5b9a\u6570\u3092\u4f7f\u3063\u305f\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406<\/h2>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406\u306f\u3001\u5805\u7262\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u975e\u5e38\u306b\u91cd\u8981\u306a\u8981\u7d20\u3067\u3059\u3002\u5b9a\u6570\u3092\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u660e\u78ba\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30a8\u30e9\u30fc\u51e6\u7406\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9a\u6570\u3092\u4f7f\u3063\u305f\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u30d5\u30e9\u30b0\u306e\u8868\u73fe\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-88\">\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u30d5\u30e9\u30b0\u3092\u5b9a\u6570\u3067\u8868\u73fe\u3059\u308b<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-89\">\u6570\u5024\u30b3\u30fc\u30c9\u306e\u5b9a\u6570\u5316\u306b\u3088\u308b\u30e1\u30ea\u30c3\u30c8<\/h4>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5185\u3067\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3084\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u8868\u73fe\u3059\u308b\u969b\u3001\u76f4\u63a5\u6570\u5024\u3084\u6587\u5b57\u5217\u3092\u4f7f\u7528\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306b\u306f\u591a\u304f\u306e\u30e1\u30ea\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u826f\u304f\u306a\u3044\u4f8b\uff08\u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\uff09\nif ($user-&gt;status === 1) {\n    \/\/ \u30a2\u30af\u30c6\u30a3\u30d6\u30e6\u30fc\u30b6\u30fc\u306e\u51e6\u7406\n} else if ($user-&gt;status === 0) {\n    \/\/ \u975e\u30a2\u30af\u30c6\u30a3\u30d6\u30e6\u30fc\u30b6\u30fc\u306e\u51e6\u7406\n} else if ($user-&gt;status === -1) {\n    \/\/ \u505c\u6b62\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u306e\u51e6\u7406\n}\n\n\/\/ \u826f\u3044\u4f8b\uff08\u5b9a\u6570\u3092\u4f7f\u7528\uff09\nclass UserStatus {\n    public const ACTIVE = 1;\n    public const INACTIVE = 0;\n    public const SUSPENDED = -1;\n}\n\nif ($user-&gt;status === UserStatus::ACTIVE) {\n    \/\/ \u30a2\u30af\u30c6\u30a3\u30d6\u30e6\u30fc\u30b6\u30fc\u306e\u51e6\u7406\n} else if ($user-&gt;status === UserStatus::INACTIVE) {\n    \/\/ \u975e\u30a2\u30af\u30c6\u30a3\u30d6\u30e6\u30fc\u30b6\u30fc\u306e\u51e6\u7406\n} else if ($user-&gt;status === UserStatus::SUSPENDED) {\n    \/\/ \u505c\u6b62\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u306e\u51e6\u7406\n}\n<\/pre>\n\n\n\n<p>\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u5411\u4e0a<\/strong> \u6570\u5024\u306e\u610f\u5473\u304c\u540d\u524d\u306b\u3088\u3063\u3066\u660e\u78ba\u306b\u306a\u308a\u3001\u30b3\u30fc\u30c9\u3092\u8aad\u3080\u4eba\u304c\u610f\u5473\u3092\u7406\u89e3\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>IDE\u88dc\u5b8c\u306e\u30b5\u30dd\u30fc\u30c8<\/strong> \u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001IDE\u306e\u81ea\u52d5\u88dc\u5b8c\u6a5f\u80fd\u304c\u5229\u7528\u3067\u304d\u3001\u958b\u767a\u52b9\u7387\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30bf\u30a4\u30d7\u30df\u30b9\u306e\u9632\u6b62<\/strong> \u5b9a\u6570\u540d\u3092\u9593\u9055\u3048\u308b\u3068PHP\u304c\u30a8\u30e9\u30fc\u3092\u767a\u751f\u3055\u305b\u308b\u305f\u3081\u3001\u610f\u56f3\u3057\u306a\u3044\u30d0\u30b0\u3092\u65e9\u671f\u306b\u767a\u898b\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u4e00\u5143\u7ba1\u7406\u306b\u3088\u308b\u4fdd\u5b88\u6027\u5411\u4e0a<\/strong> \u5024\u306e\u5909\u66f4\u304c\u5fc5\u8981\u306a\u5834\u5408\u3001\u5b9a\u7fa9\u5834\u6240\u306e\u4e00\u304b\u6240\u3060\u3051\u4fee\u6b63\u3059\u308c\u3070\u826f\u3044\u305f\u3081\u3001\u4fdd\u5b88\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u306e\u52b9\u679c<\/strong> \u9069\u5207\u306b\u547d\u540d\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001\u30b3\u30fc\u30c9\u306e\u81ea\u5df1\u6587\u66f8\u5316\u306b\u3064\u306a\u304c\u308a\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-90\">\u968e\u5c64\u7684\u306a\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u8a2d\u8a08<\/h4>\n\n\n\n<p>\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3092\u968e\u5c64\u7684\u306b\u8a2d\u8a08\u3059\u308b\u3053\u3068\u3067\u3001\u7ba1\u7406\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ErrorCode {\n    \/\/ \u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\uff081-99\uff09\n    public const UNKNOWN_ERROR = 1;\n    public const INVALID_INPUT = 2;\n    public const UNAUTHORIZED = 3;\n    \n    \/\/ \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u95a2\u9023\u306e\u30a8\u30e9\u30fc\uff08100-199\uff09\n    public const DB_CONNECTION_FAILED = 100;\n    public const DB_QUERY_FAILED = 101;\n    public const DB_RECORD_NOT_FOUND = 102;\n    \n    \/\/ API\u95a2\u9023\u306e\u30a8\u30e9\u30fc\uff08200-299\uff09\n    public const API_TIMEOUT = 200;\n    public const API_INVALID_RESPONSE = 201;\n    public const API_RATE_LIMIT_EXCEEDED = 202;\n    \n    \/\/ \u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u95a2\u9023\u306e\u30a8\u30e9\u30fc\uff08300-399\uff09\n    public const FILE_NOT_FOUND = 300;\n    public const FILE_PERMISSION_DENIED = 301;\n    public const FILE_TOO_LARGE = 302;\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b\u3001\u95a2\u9023\u3059\u308b\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3001\u756a\u53f7\u306e\u7bc4\u56f2\u3092\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u7ba1\u7406\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u306e\u5024\u3092\u898b\u308b\u3060\u3051\u3067\u3001\u3069\u306e\u30ab\u30c6\u30b4\u30ea\u306e\u30a8\u30e9\u30fc\u304b\u3092\u5224\u65ad\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-91\">\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3068\u3057\u3066\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30d5\u30e9\u30b0<\/h4>\n\n\n\n<p>\u8907\u6570\u306e\u72b6\u614b\u3092\u540c\u6642\u306b\u8868\u73fe\u3057\u305f\u3044\u5834\u5408\u3001\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3068\u3057\u3066\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u3068\u52b9\u679c\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class UserPermission {\n    public const NONE      = 0;       \/\/ 0000 (2\u9032\u6570)\n    public const READ      = 1;       \/\/ 0001\n    public const WRITE     = 2;       \/\/ 0010\n    public const UPDATE    = 4;       \/\/ 0100\n    public const DELETE    = 8;       \/\/ 1000\n    \n    \/\/ \u8907\u5408\u6a29\u9650\n    public const READ_WRITE = self::READ | self::WRITE;           \/\/ 0011 (3)\n    public const FULL_ACCESS = self::READ | self::WRITE | self::UPDATE | self::DELETE; \/\/ 1111 (15)\n    \n    \/\/ \u6a29\u9650\u30c1\u30a7\u30c3\u30af\n    public static function hasPermission(int $userPermissions, int $requiredPermission): bool {\n        return ($userPermissions &amp; $requiredPermission) === $requiredPermission;\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$userPermissions = UserPermission::READ | UserPermission::WRITE; \/\/ \u5024\u306f3\n\n\/\/ \u6a29\u9650\u30c1\u30a7\u30c3\u30af\nif (UserPermission::hasPermission($userPermissions, UserPermission::READ)) {\n    echo \"\u8aad\u307f\u53d6\u308a\u6a29\u9650\u304c\u3042\u308a\u307e\u3059\";\n}\n\nif (UserPermission::hasPermission($userPermissions, UserPermission::DELETE)) {\n    echo \"\u524a\u9664\u6a29\u9650\u304c\u3042\u308a\u307e\u3059\"; \/\/ \u8868\u793a\u3055\u308c\u306a\u3044\n}\n\nif (UserPermission::hasPermission($userPermissions, UserPermission::READ_WRITE)) {\n    echo \"\u8aad\u307f\u66f8\u304d\u6a29\u9650\u304c\u3042\u308a\u307e\u3059\"; \/\/ \u8868\u793a\u3055\u308c\u308b\n}\n<\/pre>\n\n\n\n<p>\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u306f\u3001\u8907\u6570\u306e\u30d5\u30e9\u30b0\u3092\u5358\u4e00\u306e\u6574\u6570\u5024\u3068\u3057\u3066\u52b9\u7387\u7684\u306b\u4fdd\u5b58\u3067\u304d\u308b\u305f\u3081\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30ab\u30e9\u30e0\u3084\u30bb\u30c3\u30b7\u30e7\u30f3\u5909\u6570\u306a\u3069\u3067\u3088\u304f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-92\">\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u56fd\u969b\u5316\u3068\u5b9a\u6570\u306e\u95a2\u4fc2<\/h4>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u3001\u305d\u308c\u306b\u5bfe\u5fdc\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5225\u9014\u7ba1\u7406\u3059\u308b\u3053\u3068\u3067\u3001\u591a\u8a00\u8a9e\u5bfe\u5fdc\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ErrorCode {\n    public const INVALID_EMAIL = 1001;\n    public const PASSWORD_TOO_SHORT = 1002;\n    public const USERNAME_TAKEN = 1003;\n    \n    \/\/ \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u30de\u30c3\u30d4\u30f3\u30b0\uff08\u8a00\u8a9e\u5225\uff09\n    private static $messages = [\n        'en' =&gt; [\n            self::INVALID_EMAIL =&gt; 'Invalid email address format',\n            self::PASSWORD_TOO_SHORT =&gt; 'Password must be at least 8 characters',\n            self::USERNAME_TAKEN =&gt; 'This username is already taken'\n        ],\n        'ja' =&gt; [\n            self::INVALID_EMAIL =&gt; '\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093',\n            self::PASSWORD_TOO_SHORT =&gt; '\u30d1\u30b9\u30ef\u30fc\u30c9\u306f8\u6587\u5b57\u4ee5\u4e0a\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059',\n            self::USERNAME_TAKEN =&gt; '\u3053\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u306f\u65e2\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059'\n        ]\n    ];\n    \n    \/\/ \u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d6\u5f97\n    public static function getMessage(int $code, string $lang = 'en'): string {\n        if (!isset(self::$messages[$lang][$code])) {\n            return self::$messages['en'][$code] ?? 'Unknown error';\n        }\n        return self::$messages[$lang][$code];\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$errorCode = ErrorCode::PASSWORD_TOO_SHORT;\necho ErrorCode::getMessage($errorCode, 'ja'); \/\/ \u51fa\u529b: \u30d1\u30b9\u30ef\u30fc\u30c9\u306f8\u6587\u5b57\u4ee5\u4e0a\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306b\u3088\u308a\u3001\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3068\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5206\u96e2\u3057\u3001\u591a\u8a00\u8a9e\u5bfe\u5fdc\u3092\u5bb9\u6613\u306b\u3057\u307e\u3059\u3002\u307e\u305f\u3001\u7ffb\u8a33\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u3055\u3089\u306b\u67d4\u8edf\u306a\u56fd\u969b\u5316\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-93\">\u5b9f\u88c5\u4f8b\uff1a\u30b7\u30f3\u30d7\u30eb\u306a\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u3001\u6ce8\u6587\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308b\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406\u306e\u5b9f\u88c5\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class OrderStatus {\n    \/\/ \u57fa\u672c\u7684\u306a\u6ce8\u6587\u30b9\u30c6\u30fc\u30bf\u30b9\n    public const PENDING = 'pending';\n    public const PROCESSING = 'processing';\n    public const SHIPPED = 'shipped';\n    public const DELIVERED = 'delivered';\n    public const CANCELLED = 'cancelled';\n    \n    \/\/ \u6709\u52b9\u306a\u30b9\u30c6\u30fc\u30bf\u30b9\u4e00\u89a7\n    public const VALID_STATUSES = [\n        self::PENDING,\n        self::PROCESSING,\n        self::SHIPPED,\n        self::DELIVERED,\n        self::CANCELLED\n    ];\n    \n    \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u9077\u79fb\u306e\u5b9a\u7fa9\uff08\u3069\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u304b\u3089\u3069\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u306b\u5909\u66f4\u53ef\u80fd\u304b\uff09\n    public const STATUS_TRANSITIONS = [\n        self::PENDING =&gt; [self::PROCESSING, self::CANCELLED],\n        self::PROCESSING =&gt; [self::SHIPPED, self::CANCELLED],\n        self::SHIPPED =&gt; [self::DELIVERED, self::CANCELLED],\n        self::DELIVERED =&gt; [],\n        self::CANCELLED =&gt; []\n    ];\n    \n    \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u5909\u66f4\u304c\u6709\u52b9\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\n    public static function isValidTransition(string $currentStatus, string $newStatus): bool {\n        if (!isset(self::STATUS_TRANSITIONS[$currentStatus])) {\n            return false;\n        }\n        \n        return in_array($newStatus, self::STATUS_TRANSITIONS[$currentStatus]);\n    }\n    \n    \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u6709\u52b9\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\n    public static function isValidStatus(string $status): bool {\n        return in_array($status, self::VALID_STATUSES);\n    }\n    \n    \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u306b\u5bfe\u5fdc\u3059\u308b\u30e9\u30d9\u30eb\u3092\u53d6\u5f97\uff08\u8868\u793a\u7528\uff09\n    public static function getLabel(string $status): string {\n        $labels = [\n            self::PENDING =&gt; '\u4fdd\u7559\u4e2d',\n            self::PROCESSING =&gt; '\u51e6\u7406\u4e2d',\n            self::SHIPPED =&gt; '\u767a\u9001\u6e08\u307f',\n            self::DELIVERED =&gt; '\u914d\u9054\u6e08\u307f',\n            self::CANCELLED =&gt; '\u30ad\u30e3\u30f3\u30bb\u30eb'\n        ];\n        \n        return $labels[$status] ?? '\u4e0d\u660e\u306a\u30b9\u30c6\u30fc\u30bf\u30b9';\n    }\n}\n\n\/\/ \u6ce8\u6587\u30af\u30e9\u30b9\nclass Order {\n    private string $status;\n    \n    public function __construct() {\n        $this-&gt;status = OrderStatus::PENDING;\n    }\n    \n    public function getStatus(): string {\n        return $this-&gt;status;\n    }\n    \n    public function setStatus(string $newStatus): bool {\n        \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u6709\u52b9\u304b\u30c1\u30a7\u30c3\u30af\n        if (!OrderStatus::isValidStatus($newStatus)) {\n            throw new InvalidArgumentException('\u7121\u52b9\u306a\u6ce8\u6587\u30b9\u30c6\u30fc\u30bf\u30b9\u3067\u3059');\n        }\n        \n        \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u9077\u79fb\u304c\u6709\u52b9\u304b\u30c1\u30a7\u30c3\u30af\n        if (!OrderStatus::isValidTransition($this-&gt;status, $newStatus)) {\n            return false;\n        }\n        \n        $this-&gt;status = $newStatus;\n        return true;\n    }\n    \n    public function getStatusLabel(): string {\n        return OrderStatus::getLabel($this-&gt;status);\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$order = new Order(); \/\/ \u521d\u671f\u30b9\u30c6\u30fc\u30bf\u30b9\u306f 'pending'\necho $order-&gt;getStatusLabel(); \/\/ \u51fa\u529b: \u4fdd\u7559\u4e2d\n\nif ($order-&gt;setStatus(OrderStatus::PROCESSING)) {\n    echo \"\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u5909\u66f4\u3057\u307e\u3057\u305f: \" . $order-&gt;getStatusLabel(); \/\/ \u51fa\u529b: \u51e6\u7406\u4e2d\n}\n\n\/\/ \u7121\u52b9\u306a\u30b9\u30c6\u30fc\u30bf\u30b9\u9077\u79fb\u3092\u8a66\u307f\u308b\nif (!$order-&gt;setStatus(OrderStatus::DELIVERED)) {\n    echo \"\u3053\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u5909\u66f4\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\";\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u5b9a\u6570\u3092\u4f7f\u7528\u3057\u3066\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6709\u52b9\u306a\u30b9\u30c6\u30fc\u30bf\u30b9\u5024\u3092\u5b9a\u7fa9<\/li>\n\n\n\n<li>\u30b9\u30c6\u30fc\u30bf\u30b9\u9593\u306e\u9077\u79fb\u30eb\u30fc\u30eb\u3092\u5b9a\u7fa9<\/li>\n\n\n\n<li>\u30b9\u30c6\u30fc\u30bf\u30b9\u3068\u8868\u793a\u30e9\u30d9\u30eb\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5b9a\u7fa9<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u30d3\u30b8\u30cd\u30b9\u30eb\u30fc\u30eb\u306b\u5f93\u3063\u305f\u5805\u7262\u306a\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-94\">\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u30d5\u30e9\u30b0\u8a2d\u8a08\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u610f\u5473\u306e\u3042\u308b\u540d\u524d\u3092\u3064\u3051\u308b<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u6570\u540d\u306f\u5185\u5bb9\u3092\u660e\u78ba\u306b\u8868\u3059\u540d\u524d\u306b\u3059\u308b<\/li>\n\n\n\n<li>\u540c\u3058\u30ab\u30c6\u30b4\u30ea\u306e\u5b9a\u6570\u306b\u306f\u5171\u901a\u306e\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5024\u306e\u9078\u629e\u306b\u4e00\u8cab\u6027\u3092\u6301\u305f\u305b\u308b<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u6570\u5024\u30b3\u30fc\u30c9\u306f\u4e00\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u3067\u5272\u308a\u5f53\u3066\u308b<\/li>\n\n\n\n<li>\u6587\u5b57\u5217\u30b3\u30fc\u30c9\u306f\u4e00\u8cab\u3057\u305f\u547d\u540d\u898f\u5247\u3067\u4f5c\u6210<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5404\u5b9a\u6570\u306e\u610f\u5473\u3068\u4f7f\u7528\u65b9\u6cd5\u3092\u30b3\u30e1\u30f3\u30c8\u3067\u8aac\u660e<\/li>\n\n\n\n<li>\u7279\u306b\u8907\u96d1\u306a\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u306e\u5834\u5408\u306f\u8a73\u7d30\u306b\u8aac\u660e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30b0\u30eb\u30fc\u30d7\u5316\u3068\u7d44\u7e54\u5316<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u95a2\u9023\u3059\u308b\u5b9a\u6570\u306f\u30af\u30e9\u30b9\u5185\u306b\u307e\u3068\u3081\u308b<\/li>\n\n\n\n<li>\u5927\u898f\u6a21\u306a\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u968e\u5c64\u7684\u306a\u30af\u30e9\u30b9\u69cb\u9020\u3092\u691c\u8a0e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5024\u306e\u4e0d\u5909\u6027\u3092\u7dad\u6301<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u4e00\u5ea6\u516c\u958b\u3057\u305f\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u306e\u5024\u306f\u5909\u66f4\u3057\u306a\u3044<\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u30b3\u30fc\u30c9\u306f\u8ffd\u52a0\u3059\u308b\u304c\u3001\u65e2\u5b58\u306e\u30b3\u30fc\u30c9\u306f\u5909\u66f4\u3057\u306a\u3044<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>PHP\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\uff08PHPDoc\uff09\u306e\u6d3b\u7528<\/strong> <\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n  * \u30e6\u30fc\u30b6\u30fc\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\n  *\/\nclass UserErrorCode {\n    \/**\n      * \u30e6\u30fc\u30b6\u30fc\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408\u306e\u30a8\u30e9\u30fc\n      *\n      * @var int\n      *\/\n    public const USER_NOT_FOUND = 404;\n\n    \/**\n      * \u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u306e\u30a8\u30e9\u30fc\n      *\n      * @var int\n      *\/\n      public const AUTHENTICATION_FAILED = 401;\n}<\/pre>\n\n\n\n<p>\u5b9a\u6570\u3092\u4f7f\u3063\u305f\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u30d5\u30e9\u30b0\u306e\u7ba1\u7406\u306f\u3001PHP\u958b\u767a\u306b\u304a\u3044\u3066\u975e\u5e38\u306b\u91cd\u8981\u306a\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3\u306e\u4e00\u3064\u3067\u3059\u3002\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u4fdd\u5b88\u6027\u304c\u9ad8\u304f\u3001\u7406\u89e3\u3057\u3084\u3059\u3044\u30b3\u30fc\u30c9\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-95\">\u62e1\u5f35\u6027\u3092\u8003\u616e\u3057\u305f\u5b9a\u6570\u30d9\u30fc\u30b9\u306e\u30b7\u30b9\u30c6\u30e0\u8a2d\u8a08<\/h3>\n\n\n\n<p>\u9577\u671f\u7684\u306b\u904b\u7528\u3055\u308c\u308b\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u3001\u5c06\u6765\u306e\u62e1\u5f35\u6027\u3092\u898b\u636e\u3048\u305f\u5b9a\u6570\u8a2d\u8a08\u304c\u91cd\u8981\u3067\u3059\u3002\u4ee5\u4e0b\u3067\u306f\u3001\u62e1\u5f35\u6027\u306e\u9ad8\u3044\u5b9a\u6570\u30d9\u30fc\u30b9\u306e\u30b7\u30b9\u30c6\u30e0\u8a2d\u8a08\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-96\">\u5c06\u6765\u306e\u62e1\u5f35\u3092\u898b\u636e\u3048\u305f\u5b9a\u6570\u8a2d\u8a08<\/h4>\n\n\n\n<p>\u5c06\u6765\u7684\u306b\u65b0\u3057\u3044\u72b6\u614b\u3084\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u308b\u53ef\u80fd\u6027\u3092\u8003\u616e\u3057\u305f\u8a2d\u8a08\u3092\u884c\u3046\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class ApiResponseCode {\n    \/\/ \u6210\u529f\u30ec\u30b9\u30dd\u30f3\u30b9 (2xx)\n    public const SUCCESS = 200;\n    public const CREATED = 201;\n    public const ACCEPTED = 202;\n    \n    \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30a8\u30e9\u30fc (4xx)\n    public const BAD_REQUEST = 400;\n    public const UNAUTHORIZED = 401;\n    public const FORBIDDEN = 403;\n    public const NOT_FOUND = 404;\n    \n    \/\/ \u30b5\u30fc\u30d0\u30fc\u30a8\u30e9\u30fc (5xx)\n    public const SERVER_ERROR = 500;\n    public const NOT_IMPLEMENTED = 501;\n    public const SERVICE_UNAVAILABLE = 503;\n    \n    \/\/ \u30ab\u30b9\u30bf\u30e0\u30a8\u30e9\u30fc (1000+)\n    \/\/ \u5c06\u6765\u306e\u62e1\u5f35\u306e\u305f\u3081\u306b\u4f59\u88d5\u3092\u6301\u305f\u305b\u305f\u756a\u53f7\u4ed8\u3051\n    public const VALIDATION_ERROR = 1000;\n    public const RESOURCE_LIMIT_EXCEEDED = 1001;\n    public const MAINTENANCE_MODE = 1002;\n    \n    \/\/ \u65b0\u3057\u3044\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u306f1003\u4ee5\u964d\u306b\u8ffd\u52a0\u53ef\u80fd\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b\u3001\u756a\u53f7\u306b\u4f59\u88d5\u3092\u6301\u305f\u305b\u305f\u8a2d\u8a08\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u5c06\u6765\u7684\u306b\u65b0\u3057\u3044\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u3082\u65e2\u5b58\u306e\u30b3\u30fc\u30c9\u3092\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-97\">\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3068\u3057\u3066\u306e\u5b9a\u6570\u6d3b\u7528\u6cd5<\/h4>\n\n\n\n<p>\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u8907\u6570\u306e\u72b6\u614b\u3092\u5358\u4e00\u306e\u6574\u6570\u5024\u3067\u8868\u73fe\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30ab\u30e9\u30e0\u6570\u3092\u6291\u3048\u3064\u3064\u3001\u8907\u6570\u306e\u72b6\u614b\u3092\u52b9\u7387\u7684\u306b\u7ba1\u7406\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class UserFlags {\n    \/\/ \u57fa\u672c\u30d5\u30e9\u30b0\uff08\u30d3\u30c3\u30c8\u3054\u3068\u306b\u7570\u306a\u308b\u610f\u5473\u3092\u6301\u3064\uff09\n    public const NONE             = 0;      \/\/ 0000 0000 (2\u9032\u6570)\n    public const VERIFIED_EMAIL   = 1;      \/\/ 0000 0001\n    public const PREMIUM_MEMBER   = 2;      \/\/ 0000 0010\n    public const ADMIN_ACCESS     = 4;      \/\/ 0000 0100\n    public const MFA_ENABLED      = 8;      \/\/ 0000 1000\n    public const NEWSLETTER_OPT_IN = 16;    \/\/ 0001 0000\n    public const BETA_FEATURES    = 32;     \/\/ 0010 0000\n    public const ACCOUNT_LOCKED   = 64;     \/\/ 0100 0000\n    public const DELETED          = 128;    \/\/ 1000 0000\n    \n    \/\/ \u30d5\u30e9\u30b0\u306e\u7d44\u307f\u5408\u308f\u305b\u4f8b\n    public const DEFAULT_NEW_USER = self::VERIFIED_EMAIL | self::NEWSLETTER_OPT_IN; \/\/ 17\n    \n    \/\/ \u30d5\u30e9\u30b0\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\n    public static function hasFlag(int $userFlags, int $flag): bool {\n        return ($userFlags &amp; $flag) === $flag;\n    }\n    \n    \/\/ \u30d5\u30e9\u30b0\u3092\u8ffd\u52a0\u3059\u308b\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\n    public static function addFlag(int $userFlags, int $flag): int {\n        return $userFlags | $flag;\n    }\n    \n    \/\/ \u30d5\u30e9\u30b0\u3092\u524a\u9664\u3059\u308b\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\n    public static function removeFlag(int $userFlags, int $flag): int {\n        return $userFlags &amp; ~$flag;\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$user = new User();\n$user-&gt;flags = UserFlags::DEFAULT_NEW_USER; \/\/ \u521d\u671f\u30d5\u30e9\u30b0\u8a2d\u5b9a\n\n\/\/ \u30d5\u30e9\u30b0\u306e\u30c1\u30a7\u30c3\u30af\nif (UserFlags::hasFlag($user-&gt;flags, UserFlags::PREMIUM_MEMBER)) {\n    \/\/ \u30d7\u30ec\u30df\u30a2\u30e0\u4f1a\u54e1\u5411\u3051\u306e\u51e6\u7406\n}\n\n\/\/ \u30d5\u30e9\u30b0\u306e\u8ffd\u52a0\n$user-&gt;flags = UserFlags::addFlag($user-&gt;flags, UserFlags::MFA_ENABLED);\n\n\/\/ \u30d5\u30e9\u30b0\u306e\u524a\u9664\n$user-&gt;flags = UserFlags::removeFlag($user-&gt;flags, UserFlags::NEWSLETTER_OPT_IN);\n<\/pre>\n\n\n\n<p>\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5404\u30d5\u30e9\u30b0\u306f2\u306e\u7d2f\u4e57\u306e\u5024\u3092\u4f7f\u7528<\/strong> \u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u306f\u5fc5\u305a2\u306e\u7d2f\u4e57\uff081, 2, 4, 8, 16, \u2026\uff09\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u6700\u592732\u500b\u306e\u30d5\u30e9\u30b0<\/strong> PHP\u306e\u6574\u6570\u306f\u901a\u5e3832\u30d3\u30c3\u30c8\u306a\u306e\u3067\u3001\u6700\u592732\u500b\u306e\u30d5\u30e9\u30b0\u3092\u5b9a\u7fa9\u3067\u304d\u307e\u3059\uff0864\u30d3\u30c3\u30c8\u30b7\u30b9\u30c6\u30e0\u3067\u3082\u4e92\u63db\u6027\u306e\u305f\u3081\u306b\u3053\u306e\u7bc4\u56f2\u5185\u306b\u7559\u3081\u308b\u306e\u304c\u826f\u3044\uff09\u3002<\/li>\n\n\n\n<li><strong>\u30d5\u30e9\u30b0\u306e\u610f\u5473\u3092\u660e\u78ba\u306b\u6587\u66f8\u5316<\/strong> \u5404\u30d3\u30c3\u30c8\u306e\u610f\u5473\u3092\u660e\u78ba\u306b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3057\u3001\u8aa4\u7528\u3092\u9632\u304e\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-98\">\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u5fdc\u7528\u4f8b<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u3001\u5b9f\u969b\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u5b9a\u6570\u30d9\u30fc\u30b9\u306e\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0\u306e\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace App\\Core;\n\n\/**\n * \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4f7f\u7528\u3059\u308bAPI\u30ec\u30b9\u30dd\u30f3\u30b9\u30af\u30e9\u30b9\n *\/\nclass ApiResponse {\n    \/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\n    public const STATUS_SUCCESS = 'success';\n    public const STATUS_ERROR = 'error';\n    public const STATUS_WARNING = 'warning';\n    \n    \/\/ \u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\uff08\u30c9\u30e1\u30a4\u30f3\u3054\u3068\u306b\u5206\u985e\uff09\n    public const ERROR_NONE = 0;\n    \n    \/\/ \u8a8d\u8a3c\u95a2\u9023 (1000-1999)\n    public const ERROR_AUTH_REQUIRED = 1000;\n    public const ERROR_INVALID_CREDENTIALS = 1001;\n    public const ERROR_ACCOUNT_LOCKED = 1002;\n    \n    \/\/ \u5165\u529b\u691c\u8a3c\u95a2\u9023 (2000-2999)\n    public const ERROR_VALIDATION = 2000;\n    public const ERROR_INVALID_PARAMETER = 2001;\n    public const ERROR_MISSING_REQUIRED_FIELD = 2002;\n    \n    \/\/ \u30ea\u30bd\u30fc\u30b9\u95a2\u9023 (3000-3999)\n    public const ERROR_RESOURCE_NOT_FOUND = 3000;\n    public const ERROR_RESOURCE_ALREADY_EXISTS = 3001;\n    public const ERROR_RESOURCE_ACCESS_DENIED = 3002;\n    \n    \/\/ \u5185\u90e8\u30a8\u30e9\u30fc (5000-5999)\n    public const ERROR_INTERNAL = 5000;\n    public const ERROR_DATABASE = 5001;\n    public const ERROR_EXTERNAL_SERVICE = 5002;\n    \n    \/**\n     * \u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u306b\u5bfe\u5fdc\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d6\u5f97\n     *\/\n    public static function getErrorMessage(int $errorCode): string {\n        $messages = [\n            self::ERROR_NONE =&gt; 'No error',\n            \n            \/\/ \u8a8d\u8a3c\u95a2\u9023\n            self::ERROR_AUTH_REQUIRED =&gt; 'Authentication required',\n            self::ERROR_INVALID_CREDENTIALS =&gt; 'Invalid username or password',\n            self::ERROR_ACCOUNT_LOCKED =&gt; 'Account is locked',\n            \n            \/\/ \u5165\u529b\u691c\u8a3c\u95a2\u9023\n            self::ERROR_VALIDATION =&gt; 'Validation error',\n            self::ERROR_INVALID_PARAMETER =&gt; 'Invalid parameter',\n            self::ERROR_MISSING_REQUIRED_FIELD =&gt; 'Missing required field',\n            \n            \/\/ \u30ea\u30bd\u30fc\u30b9\u95a2\u9023\n            self::ERROR_RESOURCE_NOT_FOUND =&gt; 'Resource not found',\n            self::ERROR_RESOURCE_ALREADY_EXISTS =&gt; 'Resource already exists',\n            self::ERROR_RESOURCE_ACCESS_DENIED =&gt; 'Access denied to this resource',\n            \n            \/\/ \u5185\u90e8\u30a8\u30e9\u30fc\n            self::ERROR_INTERNAL =&gt; 'Internal server error',\n            self::ERROR_DATABASE =&gt; 'Database error',\n            self::ERROR_EXTERNAL_SERVICE =&gt; 'External service error'\n        ];\n        \n        return $messages[$errorCode] ?? 'Unknown error';\n    }\n    \n    \/**\n     * \u30ec\u30b9\u30dd\u30f3\u30b9\u30c7\u30fc\u30bf\u3092\u69cb\u7bc9\n     *\/\n    public static function build(string $status, int $errorCode = self::ERROR_NONE, $data = null, array $meta = []): array {\n        return [\n            'status' =&gt; $status,\n            'error' =&gt; [\n                'code' =&gt; $errorCode,\n                'message' =&gt; self::getErrorMessage($errorCode)\n            ],\n            'data' =&gt; $data,\n            'meta' =&gt; $meta\n        ];\n    }\n    \n    \/**\n     * \u6210\u529f\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u4f5c\u6210\n     *\/\n    public static function success($data = null, array $meta = []): array {\n        return self::build(self::STATUS_SUCCESS, self::ERROR_NONE, $data, $meta);\n    }\n    \n    \/**\n     * \u30a8\u30e9\u30fc\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u4f5c\u6210\n     *\/\n    public static function error(int $errorCode, $data = null, array $meta = []): array {\n        return self::build(self::STATUS_ERROR, $errorCode, $data, $meta);\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nclass UserController {\n    public function login(Request $request): JsonResponse {\n        $credentials = $request-&gt;only(['email', 'password']);\n        \n        if (empty($credentials['email']) || empty($credentials['password'])) {\n            return new JsonResponse(\n                ApiResponse::error(ApiResponse::ERROR_MISSING_REQUIRED_FIELD)\n            );\n        }\n        \n        if (!Auth::attempt($credentials)) {\n            return new JsonResponse(\n                ApiResponse::error(ApiResponse::ERROR_INVALID_CREDENTIALS)\n            );\n        }\n        \n        $user = Auth::user();\n        $token = $user-&gt;createToken('API Token')-&gt;plainTextToken;\n        \n        return new JsonResponse(\n            ApiResponse::success([\n                'user' =&gt; $user,\n                'token' =&gt; $token\n            ])\n        );\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30e1\u30ea\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e00\u8cab\u3057\u305f\u30ec\u30b9\u30dd\u30f3\u30b9\u5f62\u5f0f<\/strong> \u5168\u3066\u306eAPI\u30ec\u30b9\u30dd\u30f3\u30b9\u304c\u540c\u3058\u69cb\u9020\u3092\u6301\u3061\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u306e\u51e6\u7406\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u306e\u968e\u5c64\u5316<\/strong> \u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3092\u7a2e\u985e\u3054\u3068\u306b\u5206\u985e\u3057\u3001\u756a\u53f7\u306e\u7bc4\u56f2\u3067\u533a\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u30b3\u30fc\u30c9\u306e\u5206\u96e2<\/strong> \u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3068\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5206\u96e2\u3059\u308b\u3053\u3068\u3067\u3001\u5c06\u6765\u7684\u306b\u591a\u8a00\u8a9e\u5bfe\u5fdc\u3082\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u62e1\u5f35\u6027<\/strong> \u65b0\u3057\u3044\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u969b\u3082\u3001\u65e2\u5b58\u306e\u30b3\u30fc\u30c9\u3092\u5909\u66f4\u305b\u305a\u306b\u6e08\u307f\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u5b9a\u6570\u3092\u4f7f\u3063\u305f\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3068\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4fe1\u983c\u6027\u3068\u4fdd\u5b88\u6027\u3092\u9ad8\u3081\u308b\u91cd\u8981\u306a\u8981\u7d20\u3067\u3059\u3002\u9069\u5207\u306b\u8a2d\u8a08\u3055\u308c\u305f\u5b9a\u6570\u30b7\u30b9\u30c6\u30e0\u306f\u3001\u958b\u767a\u8005\u9593\u306e\u30b3\u30df\u30e5\u30cb\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4fc3\u9032\u3057\u3001\u4e00\u8cab\u6027\u306e\u3042\u308b\u30b3\u30fc\u30c9\u54c1\u8cea\u3092\u7dad\u6301\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-99\">\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u304a\u3051\u308b\u5b9a\u6570\u306e\u6271\u3044<\/h2>\n\n\n\n<p>PHP\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306f\u3001\u5b9a\u6570\u304c\u69d8\u3005\u306a\u5f62\u3067\u6d3b\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u4e00\u8cab\u6027\u306e\u3042\u308b\u8a2d\u8a08\u3084\u660e\u78ba\u306a\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u3001\u5b9a\u6570\u306f\u91cd\u8981\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001Laravel\u3084Symfony\u306a\u3069\u306e\u4e3b\u8981\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306e\u5b9a\u6570\u306e\u4f7f\u308f\u308c\u65b9\u3068\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u958b\u767a\u306b\u304a\u3051\u308b\u5b9a\u6570\u8a2d\u8a08\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-100\">Laravel\u3084Symfony\u3067\u306e\u5b9a\u6570\u6d3b\u7528\u30d1\u30bf\u30fc\u30f3<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-101\">Laravel\u306b\u304a\u3051\u308b\u5b9a\u6570\u306e\u4f7f\u7528\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<p>Laravel\u81ea\u4f53\u306fconfig\u914d\u5217\u3092\u4e3b\u306b\u4f7f\u7528\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u4f1d\u7d71\u7684\u306a\u610f\u5473\u3067\u306e\u5b9a\u6570\u4f7f\u7528\u306f\u6bd4\u8f03\u7684\u5c11\u306a\u3044\u3067\u3059\u304c\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b3\u30fc\u30c9\u5185\u3067\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5f62\u3067\u5b9a\u6570\u304c\u6d3b\u7528\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e2\u30c7\u30eb\u3067\u306e\u72b6\u614b\u5b9a\u7fa9<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Laravel\u306e\u30e2\u30c7\u30eb\u30af\u30e9\u30b9\u5185\u3067\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u72b6\u614b\u3084\u30bf\u30a4\u30d7\u3092\u8868\u3059\u5b9a\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u30d1\u30bf\u30fc\u30f3\u304c\u3088\u304f\u4f7f\u308f\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ User\u30e2\u30c7\u30eb\u3067\u306e\u4f8b\nclass User extends Model\n{\n    \/\/ \u30e6\u30fc\u30b6\u30fc\u30bf\u30a4\u30d7\n    public const TYPE_ADMIN = 'admin';\n    public const TYPE_EDITOR = 'editor';\n    public const TYPE_USER = 'user';\n    \n    \/\/ \u30a2\u30ab\u30a6\u30f3\u30c8\u72b6\u614b\n    public const STATUS_ACTIVE = 'active';\n    public const STATUS_INACTIVE = 'inactive';\n    public const STATUS_BANNED = 'banned';\n    \n    \/\/ \u30b9\u30b3\u30fc\u30d7\u306e\u4f8b\n    public function scopeOfType($query, $type)\n    {\n        return $query-&gt;where('type', $type);\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$admins = User::ofType(User::TYPE_ADMIN)-&gt;get();\n<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>PHP 8.1\u4ee5\u964d\u306eEnum\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Laravel 9\u4ee5\u964d\u3067\u306f\u3001PHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305fEnum\u578b\u3092\u30e2\u30c7\u30eb\u5c5e\u6027\u3084\u30eb\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30ad\u30e3\u30b9\u30c8\u306b\u5229\u7528\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ OrderStatus\u306eEnum\nenum OrderStatus: string\n{\n    case Pending = 'pending';\n    case Processing = 'processing';\n    case Completed = 'completed';\n    case Cancelled = 'cancelled';\n    \n    public function label(): string\n    {\n        return match($this) {\n            self::Pending =&gt; '\u4fdd\u7559\u4e2d',\n            self::Processing =&gt; '\u51e6\u7406\u4e2d',\n            self::Completed =&gt; '\u5b8c\u4e86',\n            self::Cancelled =&gt; '\u30ad\u30e3\u30f3\u30bb\u30eb',\n        };\n    }\n}\n\n\/\/ \u30e2\u30c7\u30eb\u3067\u306e\u4f7f\u7528\nclass Order extends Model\n{\n    protected $casts = [\n        'status' =&gt; OrderStatus::class,\n    ];\n    \n    public function isPending(): bool\n    {\n        return $this-&gt;status === OrderStatus::Pending;\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306f\u4f1d\u7d71\u7684\u306a\u5b9a\u6570\u306e\u4ee3\u308f\u308a\u3068\u306a\u308b\u3082\u306e\u3067\u3001\u578b\u5b89\u5168\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30a4\u30d9\u30f3\u30c8\u3068\u30ea\u30b9\u30ca\u30fc\u3067\u306e\u5b9a\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u30a4\u30d9\u30f3\u30c8\u540d\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u3001\u30bf\u30a4\u30d7\u30df\u30b9\u3092\u9632\u304e\u3001IDE\u88dc\u5b8c\u306e\u30b5\u30dd\u30fc\u30c8\u3092\u53d7\u3051\u3089\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class OrderEvents\n{\n    public const ORDER_PLACED = 'order.placed';\n    public const ORDER_PAID = 'order.paid';\n    public const ORDER_SHIPPED = 'order.shipped';\n    public const ORDER_CANCELLED = 'order.cancelled';\n}\n\n\/\/ \u30a4\u30d9\u30f3\u30c8\u767a\u706b\nevent(OrderEvents::ORDER_PLACED, $order);\n\n\/\/ EventServiceProvider\u3067\u306e\u30ea\u30b9\u30ca\u30fc\u767b\u9332\nprotected $listen = [\n    OrderEvents::ORDER_PLACED =&gt; [\n        SendOrderConfirmationEmail::class,\n        UpdateInventory::class,\n    ],\n];\n<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u512a\u5148\u5ea6\u3068\u3057\u3066\u306e\u5b9a\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306e\u5b9f\u884c\u9806\u5e8f\u3092\u5236\u5fa1\u3059\u308b\u305f\u3081\u306e\u512a\u5148\u5ea6\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Kernel extends HttpKernel\n{\n    public const PRIORITY_HIGH = 100;\n    public const PRIORITY_NORMAL = 50;\n    public const PRIORITY_LOW = 10;\n    \n    protected $middlewarePriority = [\n        \\Illuminate\\Cookie\\Middleware\\EncryptCookies::class =&gt; self::PRIORITY_HIGH,\n        \\Illuminate\\Session\\Middleware\\StartSession::class =&gt; self::PRIORITY_HIGH,\n        \\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class =&gt; self::PRIORITY_NORMAL,\n        \\Illuminate\\Auth\\Middleware\\Authenticate::class =&gt; self::PRIORITY_NORMAL,\n        \\Illuminate\\Routing\\Middleware\\ThrottleRequests::class =&gt; self::PRIORITY_LOW,\n    ];\n}\n<\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u306e\u5b9a\u6570\u5b9a\u7fa9<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Laravel\u3067\u306fConfig\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u5b9a\u6570\u306e\u3088\u3046\u306b\u632f\u308b\u821e\u3046\u5024\u3092\u7ba1\u7406\u3059\u308b\u3053\u3068\u304c\u4e00\u822c\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ config\/app.php\nreturn [\n    'name' =&gt; env('APP_NAME', 'Laravel'),\n    'env' =&gt; env('APP_ENV', 'production'),\n    \/\/ \u4ed6\u306e\u8a2d\u5b9a...\n];\n\n\/\/ \u5225\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u4f7f\u7528\n$appName = config('app.name');\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306f\u53b3\u5bc6\u306b\u306f\u5b9a\u6570\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4e00\u8cab\u3057\u305f\u5024\u3092\u53c2\u7167\u3059\u308b\u3068\u3044\u3046\u70b9\u3067\u3001\u5b9a\u6570\u3068\u540c\u69d8\u306e\u5f79\u5272\u3092\u679c\u305f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-102\">Symfony\u306b\u304a\u3051\u308b\u5b9a\u6570\u306e\u4f7f\u7528\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<p>Symfony\u306f\u3001\u3088\u308a\u4f1d\u7d71\u7684\u306aPHP\u306e\u5b9a\u6570\u3092\u6d3b\u7528\u3059\u308b\u50be\u5411\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u5185\u3067\u306e\u5b9a\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Symfony\u306e\u5404\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306b\u306f\u3001\u95a2\u9023\u3059\u308b\u5b9a\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ HTTPFoundation\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306eResponse.php\nclass Response\n{\n    public const HTTP_CONTINUE = 100;\n    public const HTTP_SWITCHING_PROTOCOLS = 101;\n    public const HTTP_PROCESSING = 102;\n    public const HTTP_EARLY_HINTS = 103;\n    public const HTTP_OK = 200;\n    \/\/ ... \u4ed6\u306eHTTP\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\n    \n    \/\/ HTTP\u30e1\u30bd\u30c3\u30c9\n    public const METHOD_HEAD = 'HEAD';\n    public const METHOD_GET = 'GET';\n    public const METHOD_POST = 'POST';\n    \/\/ ... \u4ed6\u306eHTTP\u30e1\u30bd\u30c3\u30c9\n}\n\n\/\/ \u4f7f\u7528\u4f8b\nuse Symfony\\Component\\HttpFoundation\\Response;\n\nreturn new Response('Not Found', Response::HTTP_NOT_FOUND);\n<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30b3\u30f3\u30c6\u30ca\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u306e\u5b9a\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Symfony\u306e\u30b5\u30fc\u30d3\u30b9\u30b3\u30f3\u30c6\u30ca\u3067\u306f\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u5b9a\u6570\u306e\u3088\u3046\u306a\u5024\u3092\u767b\u9332\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># config\/services.yaml\nparameters:\n    app.supported_locales: ['en', 'fr', 'de', 'ja']\n    app.admin_email: 'admin@example.com'\n    app.max_items_per_page: 50\n<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306f\u30b5\u30fc\u30d3\u30b9\u5b9a\u7fa9\u5185\u3067\u53c2\u7167\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">services:\n    App\\Service\\LocaleService:\n        arguments:\n            $supportedLocales: '%app.supported_locales%'\n<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30d0\u30f3\u30c9\u30eb\u8a2d\u5b9a\u306e\u5b9a\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Symfony\u30d0\u30f3\u30c9\u30eb\u3067\u306f\u3001\u8a2d\u5b9a\u30af\u30e9\u30b9\u5185\u3067\u5b9a\u6570\u3092\u5b9a\u7fa9\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ DoctrineBundle\u8a2d\u5b9a\u30af\u30e9\u30b9\u5185\nclass Configuration implements ConfigurationInterface\n{\n    public const DRIVER_ORM = 'orm';\n    public const DRIVER_MONGODB_ODM = 'mongodb_odm';\n    \n    public function getConfigTreeBuilder()\n    {\n        $treeBuilder = new TreeBuilder('doctrine');\n        \n        $treeBuilder-&gt;getRootNode()\n            -&gt;children()\n                -&gt;enumNode('driver')\n                    -&gt;values([self::DRIVER_ORM, self::DRIVER_MONGODB_ODM])\n                    -&gt;defaultValue(self::DRIVER_ORM)\n                -&gt;end()\n            -&gt;end();\n        \n        return $treeBuilder;\n    }\n}\n<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u30a4\u30d9\u30f3\u30c8\u30c7\u30a3\u30b9\u30d1\u30c3\u30c1\u30e3\u30fc\u3067\u306e\u5b9a\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Symfony\u306e\u30a4\u30d9\u30f3\u30c8\u30c7\u30a3\u30b9\u30d1\u30c3\u30c1\u30e3\u30fc\u3067\u306f\u3001\u30a4\u30d9\u30f3\u30c8\u540d\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Kernel\u30a4\u30d9\u30f3\u30c8\nclass KernelEvents\n{\n    public const REQUEST = 'kernel.request';\n    public const CONTROLLER = 'kernel.controller';\n    public const RESPONSE = 'kernel.response';\n    public const TERMINATE = 'kernel.terminate';\n    public const EXCEPTION = 'kernel.exception';\n    public const VIEW = 'kernel.view';\n}\n\n\/\/ \u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc\u3067\u306e\u4f7f\u7528\nuse Symfony\\Component\\EventDispatcher\\EventSubscriberInterface;\n\nclass LogSubscriber implements EventSubscriberInterface\n{\n    public static function getSubscribedEvents()\n    {\n        return [\n            KernelEvents::REQUEST =&gt; 'onRequest',\n            KernelEvents::RESPONSE =&gt; 'onResponse',\n        ];\n    }\n}\n<\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>\u30d5\u30a9\u30fc\u30e0\u5b9a\u7fa9\u3067\u306e\u5b9a\u6570<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Symfony\u306e\u30d5\u30a9\u30fc\u30e0\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u306f\u3001\u69d8\u3005\u306a\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ FormType\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\ninterface FormType extends BaseType\n{\n    public const EMPTY_DATA = 'empty_data';\n    public const TRIM = 'trim';\n    public const PROPERTY_PATH = 'property_path';\n    \/\/ ... \u4ed6\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\n}\n\n\/\/ \u30d5\u30a9\u30fc\u30e0\u5b9a\u7fa9\u3067\u306e\u4f7f\u7528\n$builder-&gt;add('name', TextType::class, [\n    FormType::TRIM =&gt; true,\n    FormType::EMPTY_DATA =&gt; 'Anonymous',\n]);\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-103\">\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u56fa\u6709\u306e\u5b9a\u6570\u95a2\u9023\u6a5f\u80fd\u306e\u8aac\u660e<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Laravel\u306e\u7279\u5fb4\u7684\u306a\u6a5f\u80fd<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>config\u30d8\u30eb\u30d1\u30fc<\/strong>: \u5b9a\u6570\u306e\u3088\u3046\u306a\u632f\u308b\u821e\u3044\u3092\u3059\u308b\u8a2d\u5b9a\u5024\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u63d0\u4f9b<\/li>\n\n\n\n<li><strong>Enum\u30b5\u30dd\u30fc\u30c8<\/strong>: PHP 8.1\u306eEnum\u3092\u30e2\u30c7\u30eb\u306e\u30ad\u30e3\u30b9\u30c8\u3084\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306a\u3069\u3067\u6d3b\u7528\u3067\u304d\u308b\u6a5f\u80fd<\/li>\n\n\n\n<li><strong>Contract\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9<\/strong>: \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u5185\u306e\u5b9a\u6570\u3092\u901a\u3058\u3066\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u632f\u308b\u821e\u3044\u3092\u5b9a\u7fa9<\/li>\n<\/ul>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Symfony\u306e\u7279\u5fb4\u7684\u306a\u6a5f\u80fd<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DI Container Parameters<\/strong>: \u5b9a\u6570\u306e\u3088\u3046\u306a\u5024\u3092\u30b5\u30fc\u30d3\u30b9\u30b3\u30f3\u30c6\u30ca\u30ec\u30d9\u30eb\u3067\u7ba1\u7406<\/li>\n\n\n\n<li><strong>Configuration Tree Builder<\/strong>: \u30d0\u30f3\u30c9\u30eb\u306e\u8a2d\u5b9a\u3092\u5b9a\u7fa9\u3059\u308b\u969b\u306b\u4f7f\u7528\u3055\u308c\u308b\u5b9a\u6570<\/li>\n\n\n\n<li><strong>EventDispatcher Constants<\/strong>: \u30a4\u30d9\u30f3\u30c8\u540d\u3092\u5b9a\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u4ed5\u7d44\u307f<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-104\">\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3068\u5b9a\u6570\u306e\u95a2\u4fc2<\/h4>\n\n\n\n<p>\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30cf\u30fc\u30c9\u30b3\u30fc\u30c9\u3055\u308c\u305f\u5b9a\u6570\u306e\u4ee3\u308f\u308a\u306b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u4e00\u822c\u7684\u3067\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u632f\u308b\u821e\u3044\u3092\u30b3\u30fc\u30c9\u3092\u5909\u66f4\u305b\u305a\u306b\u8abf\u6574\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Laravel\u3067\u306e\u4f8b\uff08\u5b9a\u6570\u3067\u306f\u306a\u304f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\uff09\n\/\/ config\/auth.php\nreturn [\n    'defaults' =&gt; [\n        'guard' =&gt; 'web',\n        'passwords' =&gt; 'users',\n    ],\n    \n    'guards' =&gt; [\n        'web' =&gt; [\n            'driver' =&gt; 'session',\n            'provider' =&gt; 'users',\n        ],\n        \n        'api' =&gt; [\n            'driver' =&gt; 'token',\n            'provider' =&gt; 'users',\n            'hash' =&gt; false,\n        ],\n    ],\n    \/\/ ...\n];\n\n\/\/ \u4f7f\u7528\u4f8b\n$defaultGuard = config('auth.defaults.guard'); \/\/ 'web'\n<\/pre>\n\n\n\n<p>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u30e1\u30ea\u30c3\u30c8\u306f\u3001\u74b0\u5883\u3054\u3068\u306b\u7570\u306a\u308b\u5024\u3092\u6301\u305f\u305b\u3084\u3059\u3044\u3053\u3068\u3067\u3059\u3002\u4e00\u65b9\u3001\u5b9a\u6570\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306e\u30c1\u30a7\u30c3\u30af\u304c\u3042\u308a\u3001\u578b\u5b89\u5168\u6027\u304c\u9ad8\u3044\u3068\u3044\u3046\u30e1\u30ea\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u591a\u304f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u6709\u52b9\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ AppServiceProvider\u306a\u3069\u3067\u8a2d\u5b9a\u304b\u3089\u5b9a\u6570\u7684\u306a\u5024\u3092\u767b\u9332\nclass AppServiceProvider extends ServiceProvider\n{\n    public function register()\n    {\n        $this-&gt;app-&gt;singleton('app.constants', function ($app) {\n            return new class {\n                public readonly string $defaultLocale;\n                public readonly int $itemsPerPage;\n                \n                public function __construct() {\n                    $this-&gt;defaultLocale = config('app.locale');\n                    $this-&gt;itemsPerPage = config('app.items_per_page');\n                }\n            };\n        });\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$constants = app('app.constants');\n$locale = $constants-&gt;defaultLocale;\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\u3001\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u67d4\u8edf\u6027\u3068\u5b9a\u6570\u306eIDE\u88dc\u5b8c\u30b5\u30dd\u30fc\u30c8\u306e\u4e21\u65b9\u306e\u30e1\u30ea\u30c3\u30c8\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-105\">\u30e9\u30a4\u30d6\u30e9\u30ea\u958b\u767a\u6642\u306e\u5b9a\u6570\u8a2d\u8a08\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<p>\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u958b\u767a\u3059\u308b\u969b\u3001\u5b9a\u6570\u8a2d\u8a08\u306f\u7279\u306b\u91cd\u8981\u3067\u3059\u3002\u516c\u958bAPI\u306e\u4e00\u90e8\u3068\u306a\u308b\u5b9a\u6570\u306f\u3001\u4e00\u5ea6\u516c\u958b\u3059\u308b\u3068\u5909\u66f4\u304c\u96e3\u3057\u304f\u306a\u308b\u305f\u3081\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-106\">\u516c\u958bAPI\u3068\u3057\u3066\u306e\u5b9a\u6570\u8a2d\u8a08\u306e\u30dd\u30a4\u30f3\u30c8<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u660e\u78ba\u306a\u547d\u540d\u898f\u5247<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5b9a\u6570\u306b\u306f\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u540d\u3084\u95a2\u9023\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\u3092\u542b\u3081\u308b\u306a\u3069\u3001\u4ed6\u306e\u30b3\u30fc\u30c9\u3068\u885d\u7a81\u3057\u306a\u3044\u547d\u540d\u898f\u5247\u3092\u63a1\u7528\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u826f\u3044\u4f8b\nclass PaymentGateway\n{\n    public const PG_STATUS_SUCCESS = 'success';\n    public const PG_STATUS_PENDING = 'pending';\n    public const PG_STATUS_FAILED = 'failed';\n}\n\n\/\/ \u307e\u305f\u306f\u540d\u524d\u7a7a\u9593\u3092\u6d3b\u7528\nnamespace Acme\\Payment;\n\nclass Status\n{\n    public const SUCCESS = 'success';\n    public const PENDING = 'pending';\n    public const FAILED = 'failed';\n}\n<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30b0\u30eb\u30fc\u30d7\u5316\u3068\u7d44\u7e54\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u95a2\u9023\u3059\u308b\u5b9a\u6570\u306f\u3001\u5c02\u7528\u306e\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace Acme\\Http;\n\ninterface StatusCode\n{\n    \/\/ \u60c5\u5831\u30ec\u30b9\u30dd\u30f3\u30b9\n    public const INFO_CONTINUE = 100;\n    public const INFO_SWITCHING_PROTOCOLS = 101;\n    \n    \/\/ \u6210\u529f\u30ec\u30b9\u30dd\u30f3\u30b9\n    public const SUCCESS_OK = 200;\n    public const SUCCESS_CREATED = 201;\n    \n    \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30a8\u30e9\u30fc\n    public const ERROR_BAD_REQUEST = 400;\n    public const ERROR_UNAUTHORIZED = 401;\n    \n    \/\/ \u30b5\u30fc\u30d0\u30fc\u30a8\u30e9\u30fc\n    public const ERROR_SERVER = 500;\n    public const ERROR_NOT_IMPLEMENTED = 501;\n}\n<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u516c\u958bAPI\u306e\u4e00\u90e8\u3068\u306a\u308b\u5b9a\u6570\u306f\u3001PHPDoc\u3067\u3057\u3063\u304b\u308a\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">namespace Acme\\Log;\n\n\/**\n * \u30ed\u30b0\u30ec\u30d9\u30eb\u3092\u5b9a\u7fa9\u3059\u308b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\n *\/\ninterface LogLevel\n{\n    \/**\n     * \u30b7\u30b9\u30c6\u30e0\u304c\u4f7f\u7528\u3067\u304d\u306a\u3044\u30ec\u30d9\u30eb\u306e\u30a8\u30e9\u30fc\n     *\/\n    public const EMERGENCY = 'emergency';\n    \n    \/**\n     * \u5373\u6642\u5bfe\u5fdc\u304c\u5fc5\u8981\u306a\u30a2\u30e9\u30fc\u30c8\n     * \u4f8b: \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u55aa\u5931\u306a\u3069\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-107\">PHP \u5b9a\u6570\u306e\u30c6\u30b9\u30c8\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316<\/h2>\n\n\n\n<p>\u5b9a\u6570\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u91cd\u8981\u306a\u69cb\u6210\u8981\u7d20\u3067\u3042\u308a\u3001\u305d\u306e\u5024\u3084\u4f7f\u7528\u6cd5\u304c\u671f\u5f85\u901a\u308a\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u30c6\u30b9\u30c8\u3084\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u306f\u4e0d\u53ef\u6b20\u3067\u3059\u3002\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9a\u6570\u3092\u52b9\u679c\u7684\u306b\u30c6\u30b9\u30c8\u3057\u3001\u9069\u5207\u306b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b\u305f\u3081\u306e\u624b\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-108\">\u5b9a\u6570\u306e\u5024\u3068\u4f7f\u7528\u6cd5\u3092\u78ba\u5b9f\u306b\u30c6\u30b9\u30c8\u3059\u308b\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u5b9a\u6570\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u6642\u306b\u5909\u66f4\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u4e00\u898b\u30c6\u30b9\u30c8\u306e\u5fc5\u8981\u304c\u306a\u3044\u3088\u3046\u306b\u601d\u3048\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002\u3057\u304b\u3057\u3001\u5b9a\u6570\u306e\u5024\u304c\u610f\u56f3\u3057\u305f\u901a\u308a\u3067\u3042\u308b\u3053\u3068\u3084\u3001\u9069\u5207\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u30c6\u30b9\u30c8\u306f\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-109\">\u5358\u4f53\u30c6\u30b9\u30c8\u3067\u306e\u5b9a\u6570\u306e\u30c6\u30b9\u30c8\u65b9\u6cd5<\/h4>\n\n\n\n<p>\u5b9a\u6570\u306e\u5358\u4f53\u30c6\u30b9\u30c8\u3067\u306f\u3001\u4e3b\u306b\u4ee5\u4e0b\u306e\u70b9\u3092\u691c\u8a3c\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5b9a\u6570\u304c\u6b63\u3057\u304f\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3053\u3068<\/strong><\/li>\n\n\n\n<li><strong>\u5b9a\u6570\u304c\u671f\u5f85\u3055\u308c\u308b\u5024\u3092\u6301\u3063\u3066\u3044\u308b\u3053\u3068<\/strong><\/li>\n\n\n\n<li><strong>\u5b9a\u6570\u306e\u578b\u304c\u9069\u5207\u3067\u3042\u308b\u3053\u3068<\/strong><\/li>\n\n\n\n<li><strong>\u5b9a\u6570\u306e\u4f7f\u7528\u65b9\u6cd5\u304c\u6b63\u3057\u3044\u3053\u3068<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u4ee5\u4e0b\u306b\u3001PHPUnit\u3092\u4f7f\u7528\u3057\u305f\u5b9a\u6570\u30c6\u30b9\u30c8\u306e\u4f8b\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">use PHPUnit\\Framework\\TestCase;\n\nclass UserStatusTest extends TestCase\n{\n    public function testUserStatusConstantsAreDefined(): void\n    {\n        $this-&gt;assertTrue(defined('App\\Models\\User::STATUS_ACTIVE'));\n        $this-&gt;assertTrue(defined('App\\Models\\User::STATUS_INACTIVE'));\n        $this-&gt;assertTrue(defined('App\\Models\\User::STATUS_BANNED'));\n    }\n    \n    public function testUserStatusConstantsHaveCorrectValues(): void\n    {\n        $this-&gt;assertSame(1, App\\Models\\User::STATUS_ACTIVE);\n        $this-&gt;assertSame(0, App\\Models\\User::STATUS_INACTIVE);\n        $this-&gt;assertSame(-1, App\\Models\\User::STATUS_BANNED);\n    }\n    \n    public function testUserStatusConstantsAreIntegers(): void\n    {\n        $this-&gt;assertIsInt(App\\Models\\User::STATUS_ACTIVE);\n        $this-&gt;assertIsInt(App\\Models\\User::STATUS_INACTIVE);\n        $this-&gt;assertIsInt(App\\Models\\User::STATUS_BANNED);\n    }\n}\n<\/pre>\n\n\n\n<p>\u3055\u3089\u306b\u3001\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3API\u3092\u4f7f\u7528\u3057\u3066\u3001\u30af\u30e9\u30b9\u5185\u306e\u5168\u3066\u306e\u5b9a\u6570\u3092\u52d5\u7684\u306b\u691c\u8a3c\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">use PHPUnit\\Framework\\TestCase;\nuse ReflectionClass;\nuse App\\Models\\User;\n\nclass UserConstantsTest extends TestCase\n{\n    public function testAllUserStatusConstantsAreIntegers(): void\n    {\n        $reflectionClass = new ReflectionClass(User::class);\n        $constants = $reflectionClass-&gt;getConstants();\n        \n        \/\/ STATUS\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u6301\u3064\u5b9a\u6570\u3092\u62bd\u51fa\n        $statusConstants = array_filter(\n            $constants,\n            fn($key) =&gt; strpos($key, 'STATUS_') === 0,\n            ARRAY_FILTER_USE_KEY\n        );\n        \n        $this-&gt;assertNotEmpty($statusConstants, '\u30b9\u30c6\u30fc\u30bf\u30b9\u5b9a\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u305b\u3093');\n        \n        foreach ($statusConstants as $name =&gt; $value) {\n            $this-&gt;assertIsInt(\n                $value,\n                \"\u5b9a\u6570 {$name} \u306f\u6574\u6570\u3067\u306f\u3042\u308a\u307e\u305b\u3093\"\n            );\n        }\n    }\n    \n    public function testStatusConstantsFollowNamingConvention(): void\n    {\n        $reflectionClass = new ReflectionClass(User::class);\n        $constants = $reflectionClass-&gt;getConstants();\n        \n        foreach ($constants as $name =&gt; $value) {\n            if (strpos($name, 'STATUS_') === 0) {\n                $this-&gt;assertMatchesRegularExpression(\n                    '\/^STATUS_[A-Z_]+$\/',\n                    $name,\n                    \"\u5b9a\u6570\u540d {$name} \u306f\u547d\u540d\u898f\u5247\u306b\u5f93\u3063\u3066\u3044\u307e\u305b\u3093\"\n                );\n            }\n        }\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-110\">\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u5b9a\u6570\u306e\u30c6\u30b9\u30c8<\/h4>\n\n\n\n<p>\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u308b\u5b9a\u6570\u306e\u5834\u5408\u3001\u7d44\u307f\u5408\u308f\u305b\u304c\u6b63\u3057\u304f\u6a5f\u80fd\u3059\u308b\u3053\u3068\u3092\u30c6\u30b9\u30c8\u3059\u308b\u3053\u3068\u3082\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">use PHPUnit\\Framework\\TestCase;\nuse App\\Security\\Permissions;\n\nclass PermissionsTest extends TestCase\n{\n    public function testBitFlagConstants(): void\n    {\n        \/\/ \u57fa\u672c\u7684\u306a\u5b9a\u6570\u5024\u306e\u30c6\u30b9\u30c8\n        $this-&gt;assertSame(1, Permissions::READ);\n        $this-&gt;assertSame(2, Permissions::WRITE);\n        $this-&gt;assertSame(4, Permissions::UPDATE);\n        $this-&gt;assertSame(8, Permissions::DELETE);\n        \n        \/\/ \u8907\u5408\u5b9a\u6570\u306e\u30c6\u30b9\u30c8\n        $this-&gt;assertSame(\n            Permissions::READ | Permissions::WRITE,\n            Permissions::READ_WRITE\n        );\n        \n        \/\/ 2\u306e\u3079\u304d\u4e57\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\n        $this-&gt;assertTrue(($permissions::READ &amp; ($permissions::READ - 1)) === 0);\n        $this-&gt;assertTrue(($permissions::WRITE &amp; ($permissions::WRITE - 1)) === 0);\n        $this-&gt;assertTrue(($permissions::UPDATE &amp; ($permissions::UPDATE - 1)) === 0);\n        $this-&gt;assertTrue(($permissions::DELETE &amp; ($permissions::DELETE - 1)) === 0);\n    }\n    \n    public function testPermissionCheckMethod(): void\n    {\n        \/\/ \u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u30c1\u30a7\u30c3\u30af\u30e1\u30bd\u30c3\u30c9\u306e\u30c6\u30b9\u30c8\n        $userPermissions = Permissions::READ | Permissions::WRITE;\n        \n        $this-&gt;assertTrue(Permissions::hasPermission($userPermissions, Permissions::READ));\n        $this-&gt;assertTrue(Permissions::hasPermission($userPermissions, Permissions::WRITE));\n        $this-&gt;assertFalse(Permissions::hasPermission($userPermissions, Permissions::UPDATE));\n        $this-&gt;assertFalse(Permissions::hasPermission($userPermissions, Permissions::DELETE));\n        \n        \/\/ \u8907\u5408\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u30c6\u30b9\u30c8\n        $this-&gt;assertTrue(Permissions::hasPermission($userPermissions, Permissions::READ_WRITE));\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-111\">\u30e2\u30c3\u30af\u3068\u5b9a\u6570\u306e\u95a2\u4fc2<\/h4>\n\n\n\n<p>\u5b9a\u6570\u306f\u305d\u306e\u6027\u8cea\u4e0a\u3001\u76f4\u63a5\u30e2\u30c3\u30af\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\u3057\u304b\u3057\u3001\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u30b3\u30fc\u30c9\u3092\u30c6\u30b9\u30c8\u3059\u308b\u969b\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u6709\u52b9\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c6\u30b9\u30c8\u7528\u306e\u30b9\u30bf\u30d6\u30af\u30e9\u30b9\u3092\u4f5c\u6210<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u672c\u756a\u30b3\u30fc\u30c9\nclass Configuration {\n    public const API_URL = 'https:\/\/api.example.com';\n    \n    public static function getApiClient() {\n        return new ApiClient(self::API_URL);\n    }\n}\n\n\/\/ \u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\nclass TestConfiguration extends Configuration {\n    public const API_URL = 'https:\/\/test-api.example.com';\n}\n\nclass ConfigurationTest extends TestCase {\n    public function testGetApiClientUsesCorrectUrl(): void {\n        \/\/ TestConfiguration\u3092\u4f7f\u7528\n        $apiClient = TestConfiguration::getApiClient();\n        $this-&gt;assertSame('https:\/\/test-api.example.com', $apiClient-&gt;getBaseUrl());\n    }\n}\n<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u4f9d\u5b58\u6027\u6ce8\u5165\u3092\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u5b9a\u6570\u3092\u76f4\u63a5\u4f7f\u7528\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u4f9d\u5b58\u6027\u6ce8\u5165\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30c6\u30b9\u30c8\u306e\u67d4\u8edf\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6539\u5584\u5f8c\u306e\u30b3\u30fc\u30c9\nclass ApiService {\n    private $apiUrl;\n    \n    public function __construct(string $apiUrl = Configuration::API_URL) {\n        $this-&gt;apiUrl = $apiUrl;\n    }\n    \n    public function getBaseUrl(): string {\n        return $this-&gt;apiUrl;\n    }\n}\n\n\/\/ \u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\nclass ApiServiceTest extends TestCase {\n    public function testCanOverrideApiUrl(): void {\n        $testUrl = 'https:\/\/test-api.example.com';\n        $apiService = new ApiService($testUrl);\n        $this-&gt;assertSame($testUrl, $apiService-&gt;getBaseUrl());\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-112\">\u30c6\u30b9\u30c8\u6642\u306e\u5b9a\u6570\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u624b\u6cd5<\/h4>\n\n\n\n<p>PHP\u5b9a\u6570\u306f\u4e00\u5ea6\u5b9a\u7fa9\u3059\u308b\u3068\u5909\u66f4\u3067\u304d\u307e\u305b\u3093\u304c\u3001\u30c6\u30b9\u30c8\u74b0\u5883\u3067\u306f\u7279\u6b8a\u306a\u65b9\u6cd5\u3067\u5b9a\u6570\u306e\u5024\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>define()\u306e\u5834\u5408\u306e\u30e9\u30f3\u30bf\u30a4\u30e0\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<p><code>define()<\/code>\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001PHP\u306e<code>runkit7<\/code>\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u518d\u5b9a\u7fa9\u3067\u304d\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\uff08\u6ce8\uff1a\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u53ef\u7528\u6027\u3068\u4e92\u63db\u6027\u306b\u6ce8\u610f\uff09\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ runkit\u3092\u4f7f\u7528\u3057\u305f\u5b9a\u6570\u518d\u5b9a\u7fa9\uff08\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u5fc5\u8981\uff09\nif (function_exists('runkit7_constant_redefine')) {\n    runkit7_constant_redefine('MAX_USERS', 10);\n}\n<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u540d\u524d\u7a7a\u9593\u3092\u6d3b\u7528\u3057\u305f\u30c6\u30af\u30cb\u30c3\u30af<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u540c\u3058\u540d\u524d\u306e\u5b9a\u6570\u3067\u3082\u3001\u7570\u306a\u308b\u540d\u524d\u7a7a\u9593\u3067\u3042\u308c\u3070\u5225\u3005\u306b\u5b9a\u7fa9\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u672c\u756a\u30b3\u30fc\u30c9\nnamespace App\\Production {\n    const MAX_ITEMS = 100;\n}\n\n\/\/ \u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\nnamespace App\\Tests {\n    const MAX_ITEMS = 5;\n    \n    class ItemServiceTest extends TestCase {\n        public function testLimitItemsToMaximum(): void {\n            \/\/ \u30c6\u30b9\u30c8\u540d\u524d\u7a7a\u9593\u306e\u5b9a\u6570\u304c\u4f7f\u7528\u3055\u308c\u308b\n            $service = new ItemService();\n            $items = $service-&gt;getItems();\n            $this-&gt;assertLessOrEqual(MAX_ITEMS, count($items));\n        }\n    }\n}\n<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u30a2\u30d7\u30ed\u30fc\u30c1<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\u5b9a\u6570\u306e\u4ee3\u308f\u308a\u306b\u8a2d\u5b9a\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30c6\u30b9\u30c8\u74b0\u5883\u3067\u306e\u5024\u306e\u5909\u66f4\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Config\u30af\u30e9\u30b9\u3092\u4f7f\u7528\nclass Config {\n    private static $config = [\n        'production' =&gt; [\n            'MAX_USERS' =&gt; 1000,\n        ],\n        'testing' =&gt; [\n            'MAX_USERS' =&gt; 10,\n        ]\n    ];\n    \n    public static function get(string $key) {\n        $env = getenv('APP_ENV') ?: 'production';\n        return self::$config[$env][$key] ?? null;\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$maxUsers = Config::get('MAX_USERS');\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u3092\u5207\u308a\u66ff\u3048\u308b\u3060\u3051\u3067\u30c6\u30b9\u30c8\u7528\u306e\u5024\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-113\">PHP 8.1\u306eEnum\u578b\u306e\u30c6\u30b9\u30c8<\/h4>\n\n\n\n<p>PHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305fEnum\u578b\u306f\u3001\u5b9a\u6570\u306e\u4ee3\u66ff\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002Enum\u306e\u30c6\u30b9\u30c8\u65b9\u6cd5\u3082\u57fa\u672c\u7684\u306b\u306f\u540c\u69d8\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Enum\u306e\u5b9a\u7fa9\nenum Status: string {\n    case ACTIVE = 'active';\n    case INACTIVE = 'inactive';\n    case PENDING = 'pending';\n}\n\n\/\/ Enum\u306e\u30c6\u30b9\u30c8\nclass StatusEnumTest extends TestCase {\n    public function testEnumCasesHaveCorrectValues(): void {\n        $this-&gt;assertSame('active', Status::ACTIVE-&gt;value);\n        $this-&gt;assertSame('inactive', Status::INACTIVE-&gt;value);\n        $this-&gt;assertSame('pending', Status::PENDING-&gt;value);\n    }\n    \n    public function testCanCompareEnumInstances(): void {\n        $status = Status::ACTIVE;\n        $this-&gt;assertSame(Status::ACTIVE, $status);\n        $this-&gt;assertNotSame(Status::INACTIVE, $status);\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-114\">\u5b9a\u6570\u30c6\u30b9\u30c8\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5168\u3066\u306e\u5b9a\u6570\u3092\u30c6\u30b9\u30c8\u3059\u308b<\/strong> \u7279\u306b\u516c\u958bAPI\u306e\u4e00\u90e8\u3068\u306a\u308b\u5b9a\u6570\u306f\u3001\u5fc5\u305a\u30c6\u30b9\u30c8\u30ab\u30d0\u30ec\u30c3\u30b8\u306b\u542b\u3081\u307e\u3057\u3087\u3046\u3002<\/li>\n\n\n\n<li><strong>\u547d\u540d\u898f\u5247\u306e\u4e00\u8cab\u6027\u3092\u30c6\u30b9\u30c8\u3059\u308b<\/strong> \u5b9a\u6570\u540d\u304c\u4e00\u8cab\u3057\u305f\u547d\u540d\u898f\u5247\u306b\u5f93\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u5024\u306e\u578b\u3068\u7bc4\u56f2\u3092\u30c6\u30b9\u30c8\u3059\u308b<\/strong> \u5b9a\u6570\u306e\u5024\u304c\u671f\u5f85\u3055\u308c\u308b\u578b\u3067\u3042\u308a\u3001\u9069\u5207\u306a\u7bc4\u56f2\u5185\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u306e\u6574\u5408\u6027\u3092\u30c6\u30b9\u30c8\u3059\u308b<\/strong> \u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u308b\u5b9a\u6570\u304c\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u3001\u7d44\u307f\u5408\u308f\u305b\u304c\u6a5f\u80fd\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b\u30b3\u30fc\u30c9\u3092\u30c6\u30b9\u30c8\u3059\u308b<\/strong> \u5b9a\u6570\u81ea\u4f53\u3060\u3051\u3067\u306a\u304f\u3001\u305d\u308c\u3092\u4f7f\u7528\u3059\u308b\u30b3\u30fc\u30c9\u306e\u632f\u308b\u821e\u3044\u3082\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u8f9e\u66f8\u578b\u5b9a\u6570\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u30c6\u30b9\u30c8\u3059\u308b<\/strong> \u5b9a\u6570\u3068\u6587\u5b57\u5217\u3084\u8868\u793a\u7528\u30e9\u30d9\u30eb\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u6b63\u3057\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u5f8c\u3082\u30c6\u30b9\u30c8\u3092\u7dad\u6301\u3059\u308b<\/strong> \u5b9a\u6570\u306e\u5024\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u3001\u30c6\u30b9\u30c8\u3082\u9069\u5207\u306b\u66f4\u65b0\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-115\">API\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u5b9a\u6570\u3092\u9069\u5207\u306b\u8a18\u8ff0\u3059\u308b\u305f\u3081\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>\u5b9a\u6570\u306f\u3001API\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u9069\u5207\u306b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b\u3053\u3068\u3067\u305d\u306e\u4f7f\u7528\u65b9\u6cd5\u3068\u610f\u56f3\u304c\u660e\u78ba\u306b\u306a\u308a\u307e\u3059\u3002PHPDoc\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u6570\u3092\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b\u65b9\u6cd5\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-116\">PHPDoc\u3067\u306e\u5b9a\u6570\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u4f5c\u6210\u6cd5<\/h4>\n\n\n\n<p>PHPDoc\u3067\u306f\u3001<code>@var<\/code>\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u6570\u306e\u578b\u3068\u8aac\u660e\u3092\u63d0\u4f9b\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class HttpStatus\n{\n    \/**\n     * \u30ea\u30af\u30a8\u30b9\u30c8\u304c\u6210\u529f\u3057\u3001\u30ec\u30b9\u30dd\u30f3\u30b9\u3068\u3068\u3082\u306b\u8981\u6c42\u3055\u308c\u305f\u60c5\u5831\u304c\u8fd4\u3055\u308c\u308b\n     * \n     * @var int\n     *\/\n    public const OK = 200;\n    \n    \/**\n     * \u30ea\u30af\u30a8\u30b9\u30c8\u304c\u6210\u529f\u3057\u3001\u65b0\u3057\u3044\u30ea\u30bd\u30fc\u30b9\u304c\u4f5c\u6210\u3055\u308c\u305f\n     * \n     * @var int\n     *\/\n    public const CREATED = 201;\n    \n    \/**\n     * \u30ea\u30af\u30a8\u30b9\u30c8\u3055\u308c\u305f\u30ea\u30bd\u30fc\u30b9\u304c\u6052\u4e45\u7684\u306b\u5225\u306eURI\u306b\u79fb\u52d5\u3055\u308c\u305f\n     * \n     * @var int\n     * @link https:\/\/developer.mozilla.org\/docs\/Web\/HTTP\/Status\/301\n     *\/\n    public const MOVED_PERMANENTLY = 301;\n}\n<\/pre>\n\n\n\n<p>\u30af\u30e9\u30b9\u30ec\u30d9\u30eb\u3067\u3082\u5b9a\u6570\u30b0\u30eb\u30fc\u30d7\u306b\u95a2\u3059\u308b\u8aac\u660e\u3092\u63d0\u4f9b\u3059\u308b\u3068\u826f\u3044\u3067\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * HTTP\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u3092\u5b9a\u7fa9\u3059\u308b\u30af\u30e9\u30b9\n * \n * \u3053\u306e\u30af\u30e9\u30b9\u306fRFC 7231\u306b\u57fa\u3065\u304fHTTP\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u307e\u3059\u3002\n * \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u306f\u4ee5\u4e0b\u306e\u30ab\u30c6\u30b4\u30ea\u306b\u5206\u985e\u3055\u308c\u307e\u3059\uff1a\n * - 1xx: \u60c5\u5831\u30ec\u30b9\u30dd\u30f3\u30b9\n * - 2xx: \u6210\u529f\u30ec\u30b9\u30dd\u30f3\u30b9\n * - 3xx: \u30ea\u30c0\u30a4\u30ec\u30af\u30b7\u30e7\u30f3\u30e1\u30c3\u30bb\u30fc\u30b8\n * - 4xx: \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30a8\u30e9\u30fc\u30ec\u30b9\u30dd\u30f3\u30b9\n * - 5xx: \u30b5\u30fc\u30d0\u30fc\u30a8\u30e9\u30fc\u30ec\u30b9\u30dd\u30f3\u30b9\n * \n * @link https:\/\/tools.ietf.org\/html\/rfc7231 RFC 7231\n *\/\nclass HttpStatus\n{\n    \/\/ \u5b9a\u6570\u5b9a\u7fa9...\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-117\">\u81ea\u52d5\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u751f\u6210\u30c4\u30fc\u30eb\u3067\u306e\u5b9a\u6570\u306e\u6271\u3044<\/h4>\n\n\n\n<p>PHPDocBlock\u3067\u6587\u66f8\u5316\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001PHPDoc\u3084Apigen\u306a\u3069\u306e\u30c4\u30fc\u30eb\u3067\u81ea\u52d5\u7684\u306bAPI\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u542b\u307e\u308c\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30dd\u30a4\u30f3\u30c8\u306b\u6ce8\u610f\u3059\u308b\u3068\u3001\u3088\u308a\u9ad8\u54c1\u8cea\u306a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u304c\u751f\u6210\u3055\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b0\u30eb\u30fc\u30d7\u5316\u3068\u5206\u985e<\/strong> \u95a2\u9023\u3059\u308b\u5b9a\u6570\u306f\u30af\u30e9\u30b9\u3084\u540d\u524d\u7a7a\u9593\u3067\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3001<code>@package<\/code>\u3084<code>@group<\/code>\u30bf\u30b0\u3067\u3055\u3089\u306b\u5206\u985e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u4f7f\u7528\u4f8b\u306e\u63d0\u4f9b<\/strong> <code>@example<\/code>\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001\u5b9a\u6570\u306e\u4f7f\u7528\u4f8b\u3092\u793a\u3057\u307e\u3059\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30e6\u30fc\u30b6\u30fc\u6a29\u9650\u3092\u5b9a\u7fa9\u3059\u308b\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\n * \n * @var int\n * @example\n * \/\/ \u8aad\u307f\u53d6\u308a\u3068\u66f8\u304d\u8fbc\u307f\u6a29\u9650\u3092\u30c1\u30a7\u30c3\u30af\n * if (Permission::hasPermission($user-&gt;permissions, Permission::READ | Permission::WRITE)) {\n *     \/\/ \u51e6\u7406...\n * }\n *\/\npublic const READ = 1;\n<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u76f8\u4e92\u53c2\u7167<\/strong> \u95a2\u9023\u3059\u308b\u5b9a\u6570\u3084\u6a5f\u80fd\u3078\u306e\u53c2\u7167\u3092<code>@see<\/code>\u30bf\u30b0\u3067\u63d0\u4f9b\u3057\u307e\u3059\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30e6\u30fc\u30b6\u30fc\u304c\u30a2\u30af\u30c6\u30a3\u30d6\u72b6\u614b\u3092\u8868\u3059\u5b9a\u6570\n * \n * @var int\n * @see User::STATUS_INACTIVE \u975e\u30a2\u30af\u30c6\u30a3\u30d6\u72b6\u614b\n * @see User::isActive() \u30a2\u30af\u30c6\u30a3\u30d6\u72b6\u614b\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u30e1\u30bd\u30c3\u30c9\n *\/\npublic const STATUS_ACTIVE = 1;\n<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u975e\u63a8\u5968\u60c5\u5831<\/strong> \u5b9a\u6570\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u5834\u5408\u306f\u3001<code>@deprecated<\/code>\u30bf\u30b0\u3067\u660e\u793a\u3057\u307e\u3059\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * @deprecated 2.0.0 \u4ee3\u308f\u308a\u306b STATUS_ARCHIVED \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\n * @var int\n *\/\npublic const STATUS_DELETED = -1;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-118\">\u8aad\u307f\u3084\u3059\u304f\u6709\u7528\u306a\u5b9a\u6570\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u4f8b<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u3001\u8aad\u307f\u3084\u3059\u304f\u6709\u7528\u306a\u5b9a\u6570\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u652f\u6255\u3044\u51e6\u7406\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u3068\u7d50\u679c\u30b3\u30fc\u30c9\u3092\u5b9a\u7fa9\u3059\u308b\u30af\u30e9\u30b9\n * \n * \u3053\u306e\u30af\u30e9\u30b9\u306f\u3001\u652f\u6255\u3044\u51e6\u7406\u306e\u69d8\u3005\u306a\u72b6\u614b\u3068\u7d50\u679c\u3092\u8868\u3059\u5b9a\u6570\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\n * \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4e00\u8cab\u3057\u305f\u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9\u306e\u51e6\u7406\u3092\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002\n * \n * @package App\\Payment\n * @since 1.0.0\n *\/\nclass PaymentStatus\n{\n    \/**\n     * \u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9: \u4fdd\u7559\u4e2d\n     * \n     * \u652f\u6255\u3044\u304c\u958b\u59cb\u3055\u308c\u305f\u304c\u3001\u307e\u3060\u51e6\u7406\u304c\u5b8c\u4e86\u3057\u3066\u3044\u306a\u3044\u72b6\u614b\u3002\n     * \n     * @var string\n     *\/\n    public const PENDING = 'pending';\n    \n    \/**\n     * \u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9: \u51e6\u7406\u4e2d\n     * \n     * \u652f\u6255\u3044\u304c\u73fe\u5728\u51e6\u7406\u3055\u308c\u3066\u3044\u308b\u72b6\u614b\u3002\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u304b\u3089\u306e\u5fdc\u7b54\u3092\u5f85\u6a5f\u4e2d\u3002\n     * \n     * @var string\n     *\/\n    public const PROCESSING = 'processing';\n    \n    \/**\n     * \u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9: \u5b8c\u4e86\n     * \n     * \u652f\u6255\u3044\u304c\u6b63\u5e38\u306b\u51e6\u7406\u3055\u308c\u3001\u5b8c\u4e86\u3057\u305f\u72b6\u614b\u3002\n     * \n     * @var string\n     * @see TransactionResult::SUCCESS \u6210\u529f\u3057\u305f\u53d6\u5f15\u306e\u7d50\u679c\u30b3\u30fc\u30c9\n     *\/\n    public const COMPLETED = 'completed';\n    \n    \/**\n     * \u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9: \u5931\u6557\n     * \n     * \u652f\u6255\u3044\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u3001\u5931\u6557\u3057\u305f\u72b6\u614b\u3002\n     * \u8a73\u7d30\u306a\u30a8\u30e9\u30fc\u60c5\u5831\u306f TransactionResult \u30af\u30e9\u30b9\u306e\u5b9a\u6570\u3092\u53c2\u7167\u3002\n     * \n     * @var string\n     * @see TransactionResult \u8a73\u7d30\u306a\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\n     *\/\n    public const FAILED = 'failed';\n    \n    \/**\n     * \u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9: \u8fd4\u91d1\u6e08\u307f\n     * \n     * \u652f\u6255\u3044\u304c\u51e6\u7406\u3055\u308c\u305f\u5f8c\u306b\u8fd4\u91d1\u3055\u308c\u305f\u72b6\u614b\u3002\n     * \n     * @var string\n     * @since 1.2.0\n     *\/\n    public const REFUNDED = 'refunded';\n    \n    \/**\n     * \u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9: \u30ad\u30e3\u30f3\u30bb\u30eb\u6e08\u307f\n     * \n     * \u652f\u6255\u3044\u304c\u51e6\u7406\u3055\u308c\u308b\u524d\u306b\u30ad\u30e3\u30f3\u30bb\u30eb\u3055\u308c\u305f\u72b6\u614b\u3002\n     * \n     * @var string\n     *\/\n    public const CANCELLED = 'cancelled';\n    \n    \/**\n     * \u3059\u3079\u3066\u306e\u6709\u52b9\u306a\u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u53d6\u5f97\n     * \n     * @return array&lt;string&gt; \u6709\u52b9\u306a\u652f\u6255\u3044\u30b9\u30c6\u30fc\u30bf\u30b9\u306e\u914d\u5217\n     *\/\n    public static function getValidStatuses(): array\n    {\n        return [\n            self::PENDING,\n            self::PROCESSING,\n            self::COMPLETED,\n            self::FAILED,\n            self::REFUNDED,\n            self::CANCELLED\n        ];\n    }\n    \n    \/**\n     * \u6307\u5b9a\u3055\u308c\u305f\u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u6709\u52b9\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\n     * \n     * @param string $status \u30c1\u30a7\u30c3\u30af\u3059\u308b\u30b9\u30c6\u30fc\u30bf\u30b9\n     * @return bool \u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u6709\u52b9\u306a\u5834\u5408\u306ftrue\n     *\/\n    public static function isValidStatus(string $status): bool\n    {\n        return in_array($status, self::getValidStatuses());\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u70b9\u3067\u512a\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u660e\u78ba\u306a\u76ee\u7684\u306e\u8aac\u660e<\/strong> \u30af\u30e9\u30b9\u30ec\u30d9\u30eb\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3067\u3001\u5b9a\u6570\u30b0\u30eb\u30fc\u30d7\u306e\u76ee\u7684\u3092\u660e\u78ba\u306b\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u8a73\u7d30\u306a\u5b9a\u6570\u306e\u8aac\u660e<\/strong> \u5404\u5b9a\u6570\u306b\u3064\u3044\u3066\u3001\u305d\u306e\u610f\u5473\u3068\u4f7f\u7528\u72b6\u6cc1\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u95a2\u9023\u9805\u76ee\u3078\u306e\u53c2\u7167<\/strong> <code>@see<\/code>\u30bf\u30b0\u3067\u95a2\u9023\u3059\u308b\u5b9a\u6570\u3084\u30af\u30e9\u30b9\u3078\u306e\u53c2\u7167\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831<\/strong> <code>@since<\/code>\u30bf\u30b0\u3067\u3001\u5b9a\u6570\u304c\u5c0e\u5165\u3055\u308c\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u578b\u60c5\u5831<\/strong> <code>@var<\/code>\u30bf\u30b0\u3067\u5b9a\u6570\u306e\u578b\u3092\u660e\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/strong> \u5b9a\u6570\u306b\u95a2\u9023\u3059\u308b\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\u3082\u9069\u5207\u306b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u5b9a\u6570\u306b\u5bfe\u3059\u308b\u9069\u5207\u306a\u30c6\u30b9\u30c8\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u3001\u30b3\u30fc\u30c9\u306e\u4fe1\u983c\u6027\u3068\u4f7f\u3044\u3084\u3059\u3055\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u307e\u3059\u3002\u7279\u306b\u516c\u958bAPI\u306e\u4e00\u90e8\u3068\u306a\u308b\u5b9a\u6570\u3084\u3001\u8907\u6570\u306e\u958b\u767a\u8005\u304c\u5354\u529b\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u5b9f\u8df5\u304c\u91cd\u8981\u3067\u3059\u3002\u9069\u5207\u306b\u30c6\u30b9\u30c8\u3055\u308c\u3001\u6587\u66f8\u5316\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u306e\u91cd\u8981\u306a\u69cb\u6210\u8981\u7d20\u3068\u3057\u3066\u9577\u671f\u7684\u306b\u4fa1\u5024\u3092\u63d0\u4f9b\u3057\u7d9a\u3051\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-119\">PHP \u5b9a\u6570\u3092\u6d3b\u7528\u3057\u305f\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u5411\u4e0a\u3078\u306e\u30b9\u30c6\u30c3\u30d7<\/h2>\n\n\n\n<p>\u3053\u308c\u307e\u3067\u898b\u3066\u304d\u305f\u3088\u3046\u306b\u3001\u5b9a\u6570\u306f\u5358\u306a\u308b\u5024\u306e\u5b9a\u7fa9\u4ee5\u4e0a\u306e\u5f79\u5272\u3092\u679c\u305f\u3057\u307e\u3059\u3002\u9069\u5207\u306b\u8a2d\u8a08\u3055\u308c\u305f\u5b9a\u6570\u306f\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3001\u4fdd\u5b88\u6027\u3001\u305d\u3057\u3066\u5805\u7262\u6027\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u307e\u3059\u3002\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001PHP\u5b9a\u6570\u3092\u52b9\u679c\u7684\u306b\u6d3b\u7528\u3057\u3066\u30b3\u30fc\u30c9\u54c1\u8cea\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u30b9\u30c6\u30c3\u30d7\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-120\">\u660e\u65e5\u304b\u3089\u5b9f\u8df5\u3067\u304d\u308b\u5b9a\u6570\u6d3b\u7528\u306e3\u3064\u306e\u30a2\u30af\u30b7\u30e7\u30f3<\/h3>\n\n\n\n<p>\u65e2\u5b58\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3082\u3001\u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3082\u3001\u4ee5\u4e0b\u306e3\u3064\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u8df5\u3059\u308b\u3053\u3068\u3067\u3001\u3059\u3050\u306b\u30b3\u30fc\u30c9\u54c1\u8cea\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-121\">1. \u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\u30fb\u30de\u30b8\u30c3\u30af\u6587\u5b57\u5217\u306e\u5b9a\u6570\u5316<\/h4>\n\n\n\n<p>\u30b3\u30fc\u30c9\u5185\u306e\u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\uff08\u610f\u5473\u304c\u4e0d\u660e\u78ba\u306a\u6570\u5024\u30ea\u30c6\u30e9\u30eb\uff09\u3084\u30de\u30b8\u30c3\u30af\u6587\u5b57\u5217\uff08\u610f\u5473\u304c\u4e0d\u660e\u78ba\u306a\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\uff09\u3092\u7279\u5b9a\u3057\u3001\u610f\u5473\u306e\u3042\u308b\u540d\u524d\u306e\u5b9a\u6570\u306b\u7f6e\u304d\u63db\u3048\u308b\u3053\u3068\u304b\u3089\u59cb\u3081\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p><strong>\u6539\u5584\u524d\u306e\u30b3\u30fc\u30c9\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\u3068\u30de\u30b8\u30c3\u30af\u6587\u5b57\u5217\u306e\u4f8b\nfunction processOrder($order) {\n    if ($order-&gt;status === 'pending') {\n        \/\/ \u4fdd\u7559\u4e2d\u306e\u6ce8\u6587\u51e6\u7406\n    } elseif ($order-&gt;status === 'processing') {\n        \/\/ \u51e6\u7406\u4e2d\u306e\u6ce8\u6587\u51e6\u7406\n    }\n    \n    if ($order-&gt;total &gt; 10000) {\n        applyDiscount($order, 0.1); \/\/ 10%\u5272\u5f15\n    } elseif ($order-&gt;total &gt; 5000) {\n        applyDiscount($order, 0.05); \/\/ 5%\u5272\u5f15\n    }\n    \n    if (time() - $order-&gt;createdAt &gt; 86400) {\n        \/\/ 24\u6642\u9593\u4ee5\u4e0a\u7d4c\u904e\u3057\u305f\u6ce8\u6587\u306e\u51e6\u7406\n    }\n}\n<\/pre>\n\n\n\n<p><strong>\u6539\u5584\u5f8c\u306e\u30b3\u30fc\u30c9\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5b9a\u6570\u3092\u4f7f\u7528\u3057\u305f\u6539\u5584\u7248\nclass OrderStatus {\n    public const PENDING = 'pending';\n    public const PROCESSING = 'processing';\n    public const COMPLETED = 'completed';\n}\n\nclass DiscountRules {\n    public const LARGE_ORDER_THRESHOLD = 10000;\n    public const MEDIUM_ORDER_THRESHOLD = 5000;\n    public const LARGE_ORDER_DISCOUNT = 0.1;\n    public const MEDIUM_ORDER_DISCOUNT = 0.05;\n}\n\nclass TimeConstants {\n    public const ONE_DAY_IN_SECONDS = 86400;\n}\n\nfunction processOrder($order) {\n    if ($order-&gt;status === OrderStatus::PENDING) {\n        \/\/ \u4fdd\u7559\u4e2d\u306e\u6ce8\u6587\u51e6\u7406\n    } elseif ($order-&gt;status === OrderStatus::PROCESSING) {\n        \/\/ \u51e6\u7406\u4e2d\u306e\u6ce8\u6587\u51e6\u7406\n    }\n    \n    if ($order-&gt;total &gt; DiscountRules::LARGE_ORDER_THRESHOLD) {\n        applyDiscount($order, DiscountRules::LARGE_ORDER_DISCOUNT);\n    } elseif ($order-&gt;total &gt; DiscountRules::MEDIUM_ORDER_THRESHOLD) {\n        applyDiscount($order, DiscountRules::MEDIUM_ORDER_DISCOUNT);\n    }\n    \n    if (time() - $order-&gt;createdAt &gt; TimeConstants::ONE_DAY_IN_SECONDS) {\n        \/\/ 24\u6642\u9593\u4ee5\u4e0a\u7d4c\u904e\u3057\u305f\u6ce8\u6587\u306e\u51e6\u7406\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u6539\u5584\u306b\u3088\u308a\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u306e\u610f\u56f3\u304c\u660e\u78ba\u306b\u306a\u308a\u3001\u53ef\u8aad\u6027\u304c\u5411\u4e0a<\/li>\n\n\n\n<li>IDE\u88dc\u5b8c\u6a5f\u80fd\u304c\u5229\u7528\u53ef\u80fd\u306b\u306a\u308a\u3001\u30bf\u30a4\u30d7\u30df\u30b9\u3092\u9632\u6b62<\/li>\n\n\n\n<li>\u5024\u306e\u5909\u66f4\u304c\u5fc5\u8981\u306a\u5834\u5408\u3001\u4e00\u304b\u6240\u3060\u3051\u3067\u4fee\u6b63\u53ef\u80fd<\/li>\n<\/ul>\n\n\n\n<p><strong>\u5b9f\u8df5\u30b9\u30c6\u30c3\u30d7\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u5185\u306e\u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\u3084\u30de\u30b8\u30c3\u30af\u6587\u5b57\u5217\u3092\u7279\u5b9a\u3059\u308b<\/li>\n\n\n\n<li>\u305d\u308c\u3089\u306e\u5024\u304c\u4f55\u3092\u8868\u3057\u3066\u3044\u308b\u304b\u3092\u660e\u78ba\u306b\u3059\u308b<\/li>\n\n\n\n<li>\u610f\u5473\u306e\u3042\u308b\u540d\u524d\u306e\u5b9a\u6570\u3092\u4f5c\u6210\u3057\u3001\u5024\u3092\u7f6e\u304d\u63db\u3048\u308b<\/li>\n\n\n\n<li>\u95a2\u9023\u3059\u308b\u5b9a\u6570\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3066\u30af\u30e9\u30b9\u306b\u307e\u3068\u3081\u308b<\/li>\n\n\n\n<li>PHPDoc\u3067\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-122\">2. \u95a2\u9023\u3059\u308b\u5b9a\u6570\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u3068\u547d\u540d\u898f\u5247\u306e\u7d71\u4e00<\/h4>\n\n\n\n<p>\u6563\u5728\u3057\u3066\u3044\u308b\u95a2\u9023\u5b9a\u6570\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3001\u4e00\u8cab\u3057\u305f\u547d\u540d\u898f\u5247\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u69cb\u9020\u3068\u53ef\u8aad\u6027\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u6539\u5584\u524d\u306e\u30b3\u30fc\u30c9\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6563\u5728\u3059\u308b\u95a2\u9023\u5b9a\u6570\ndefine('ACTIVE_USER', 1);\ndefine('INACTIVE_USER', 0);\ndefine('SUSPENDED_USER', -1);\n\ndefine('ROLE_ADMIN', 'admin');\ndefine('ROLE_EDITOR', 'editor');\ndefine('ROLE_USER', 'user');\n\nclass User {\n    const SUBSCRIPTION_FREE = 'free';\n    const SUBSCRIPTION_BASIC = 'basic';\n    const SUBSCRIPTION_PRO = 'pro';\n    \n    \/\/ \u30e1\u30bd\u30c3\u30c9...\n}\n\n\/\/ \u5225\u306e\u30d5\u30a1\u30a4\u30eb\ndefine('USER_PER_PAGE', 20);\n<\/pre>\n\n\n\n<p><strong>\u6539\u5584\u5f8c\u306e\u30b3\u30fc\u30c9\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b0\u30eb\u30fc\u30d7\u5316\u3068\u547d\u540d\u898f\u5247\u3092\u7d71\u4e00\u3057\u305f\u4f8b\nnamespace App\\User;\n\nclass Status {\n    public const ACTIVE = 1;\n    public const INACTIVE = 0;\n    public const SUSPENDED = -1;\n    \n    public static function getLabel(int $status): string {\n        return match ($status) {\n            self::ACTIVE =&gt; '\u30a2\u30af\u30c6\u30a3\u30d6',\n            self::INACTIVE =&gt; '\u975e\u30a2\u30af\u30c6\u30a3\u30d6',\n            self::SUSPENDED =&gt; '\u505c\u6b62\u4e2d',\n            default =&gt; '\u4e0d\u660e'\n        };\n    }\n}\n\nclass Role {\n    public const ADMIN = 'admin';\n    public const EDITOR = 'editor';\n    public const USER = 'user';\n    \n    public static function getAllRoles(): array {\n        return [\n            self::ADMIN,\n            self::EDITOR,\n            self::USER\n        ];\n    }\n}\n\nclass Subscription {\n    public const FREE = 'free';\n    public const BASIC = 'basic';\n    public const PRO = 'pro';\n    \n    \/\/ \u95a2\u9023\u3059\u308b\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9...\n}\n\nclass Config {\n    public const ITEMS_PER_PAGE = 20;\n    \/\/ \u4ed6\u306e\u8a2d\u5b9a\u5024...\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u6539\u5584\u306b\u3088\u308a\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u95a2\u9023\u3059\u308b\u5b9a\u6570\u304c\u8ad6\u7406\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3055\u308c\u3001\u898b\u3064\u3051\u3084\u3059\u304f\u306a\u308b<\/li>\n\n\n\n<li>\u547d\u540d\u898f\u5247\u304c\u7d71\u4e00\u3055\u308c\u3001\u30b3\u30fc\u30c9\u306e\u4e00\u8cab\u6027\u304c\u5411\u4e0a<\/li>\n\n\n\n<li>\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\u3092\u5b9a\u6570\u3068\u4e00\u7dd2\u306b\u914d\u7f6e\u3059\u308b\u3053\u3068\u3067\u6a5f\u80fd\u6027\u3092\u62e1\u5f35<\/li>\n\n\n\n<li>\u540d\u524d\u7a7a\u9593\u3092\u6d3b\u7528\u3057\u3066\u3001\u5b9a\u6570\u306e\u885d\u7a81\u3092\u9632\u6b62<\/li>\n<\/ul>\n\n\n\n<p><strong>\u5b9f\u8df5\u30b9\u30c6\u30c3\u30d7\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306e\u5b9a\u6570\u3092\u8abf\u67fb\u3057\u3001\u95a2\u9023\u3059\u308b\u3082\u306e\u3092\u30ea\u30b9\u30c8\u30a2\u30c3\u30d7<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30b0\u30eb\u30fc\u30d7\u5206\u3051\u3092\u8a2d\u8a08\uff08\u30b9\u30c6\u30fc\u30bf\u30b9\u3001\u30ed\u30fc\u30eb\u3001\u8a2d\u5b9a\u5024\u306a\u3069\uff09<\/li>\n\n\n\n<li>\u5404\u30b0\u30eb\u30fc\u30d7\u306b\u4e00\u8cab\u3057\u305f\u547d\u540d\u898f\u5247\u3092\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u5c02\u7528\u306e\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3066\u95a2\u9023\u5b9a\u6570\u3092\u307e\u3068\u3081\u308b<\/li>\n\n\n\n<li>\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-123\">3. \u8a2d\u5b9a\u5024\u306e\u5b9a\u6570\u5316\u3068\u4e00\u5143\u7ba1\u7406<\/h4>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4f7f\u7528\u3055\u308c\u308b\u8a2d\u5b9a\u5024\u3092\u5b9a\u6570\u3068\u3057\u3066\u4e00\u5143\u7ba1\u7406\u3059\u308b\u3053\u3068\u3067\u3001\u8a2d\u5b9a\u306e\u5909\u66f4\u304c\u5bb9\u6613\u306b\u306a\u308a\u3001\u4e00\u8cab\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u6539\u5584\u524d\u306e\u30b3\u30fc\u30c9\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6563\u5728\u3059\u308b\u8a2d\u5b9a\u5024\nfunction sendEmail($to, $subject, $body) {\n    $mailer = new Mailer('smtp.example.com', 587, 'username', 'password');\n    \/\/ ...\n}\n\nfunction connectToDatabase() {\n    return new Database('localhost', 3306, 'myapp', 'dbuser', 'dbpass');\n}\n\nfunction setupCache() {\n    return new Cache('\/var\/cache\/myapp', 3600); \/\/ 1\u6642\u9593\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u671f\u9593\n}\n<\/pre>\n\n\n\n<p><strong>\u6539\u5584\u5f8c\u306e\u30b3\u30fc\u30c9\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u8a2d\u5b9a\u5024\u3092\u4e00\u5143\u7ba1\u7406\u3059\u308b\u4f8b\nclass AppConfig {\n    \/\/ \u30e1\u30fc\u30eb\u8a2d\u5b9a\n    public const MAIL_HOST = 'smtp.example.com';\n    public const MAIL_PORT = 587;\n    public const MAIL_USERNAME = 'username';\n    public const MAIL_PASSWORD = 'password';\n    \n    \/\/ \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a2d\u5b9a\n    public const DB_HOST = 'localhost';\n    public const DB_PORT = 3306;\n    public const DB_NAME = 'myapp';\n    public const DB_USER = 'dbuser';\n    public const DB_PASS = 'dbpass';\n    \n    \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a\n    public const CACHE_DIR = '\/var\/cache\/myapp';\n    public const CACHE_LIFETIME = 3600; \/\/ 1\u6642\u9593\uff08\u79d2\uff09\n    \n    \/\/ \u74b0\u5883\u306b\u5fdc\u3058\u305f\u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u3080\u5834\u5408\n    public static function load() {\n        $env = getenv('APP_ENV') ?: 'production';\n        $configFile = __DIR__ . \"\/..\/config\/{$env}.php\";\n        \n        if (file_exists($configFile)) {\n            return include $configFile;\n        }\n        \n        return [];\n    }\n}\n\nfunction sendEmail($to, $subject, $body) {\n    $mailer = new Mailer(\n        AppConfig::MAIL_HOST,\n        AppConfig::MAIL_PORT,\n        AppConfig::MAIL_USERNAME,\n        AppConfig::MAIL_PASSWORD\n    );\n    \/\/ ...\n}\n\nfunction connectToDatabase() {\n    return new Database(\n        AppConfig::DB_HOST,\n        AppConfig::DB_PORT,\n        AppConfig::DB_NAME,\n        AppConfig::DB_USER,\n        AppConfig::DB_PASS\n    );\n}\n\nfunction setupCache() {\n    return new Cache(\n        AppConfig::CACHE_DIR,\n        AppConfig::CACHE_LIFETIME\n    );\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u6539\u5584\u306b\u3088\u308a\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8a2d\u5b9a\u5024\u304c\u4e00\u304b\u6240\u306b\u307e\u3068\u307e\u308a\u3001\u5909\u66f4\u304c\u5bb9\u6613\u306b<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u306e\u610f\u56f3\u304c\u660e\u78ba\u306b\u306a\u308b<\/li>\n\n\n\n<li>\u74b0\u5883\u3054\u3068\u306e\u8a2d\u5b9a\u5909\u66f4\u304c\u4e00\u8cab\u3057\u3066\u884c\u3048\u308b<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u5024\u306e\u578b\u3084\u5236\u7d04\u304c\u660e\u78ba\u306b\u306a\u308b<\/li>\n<\/ul>\n\n\n\n<p><strong>\u5b9f\u8df5\u30b9\u30c6\u30c3\u30d7\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4f7f\u7528\u3055\u308c\u308b\u8a2d\u5b9a\u5024\u3092\u7279\u5b9a<\/li>\n\n\n\n<li>\u30ab\u30c6\u30b4\u30ea\u3054\u3068\u306b\u30b0\u30eb\u30fc\u30d7\u5316\uff08\u30e1\u30fc\u30eb\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001\u30ad\u30e3\u30c3\u30b7\u30e5\u306a\u3069\uff09<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u547d\u540d\u898f\u5247\u3092\u9069\u7528\uff08\u4f8b\uff1aCATEGORY_NAME\uff09<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3001\u95a2\u9023\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0<\/li>\n\n\n\n<li>\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3001\u74b0\u5883\u5909\u6570\u3084\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3068\u306e\u9023\u643a\u6a5f\u80fd\u3092\u8ffd\u52a0<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e3\u3064\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u3001\u660e\u65e5\u304b\u3089\u5b9f\u8df5\u3067\u304d\u308b\u5177\u4f53\u7684\u306a\u6539\u5584\u7b56\u3067\u3059\u3002\u65e2\u5b58\u306e\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u3067\u3082\u3001\u5f90\u3005\u306b\u9069\u7528\u3057\u3066\u3044\u304f\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u54c1\u8cea\u3092\u7d99\u7d9a\u7684\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-124\">\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u898f\u7d04\u3078\u306e\u5b9a\u6570\u95a2\u9023\u30eb\u30fc\u30eb\u306e\u8ffd\u52a0\u63d0\u6848<\/h4>\n\n\n\n<p>\u30c1\u30fc\u30e0\u958b\u767a\u3067\u306f\u3001\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u898f\u7d04\u306b\u5b9a\u6570\u95a2\u9023\u306e\u30eb\u30fc\u30eb\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067\u3001\u4e00\u8cab\u6027\u306e\u3042\u308b\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u3092\u7dad\u6301\u3067\u304d\u307e\u3059\u3002\u4ee5\u4e0b\u306f\u3001\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u898f\u7d04\u306b\u8ffd\u52a0\u3092\u63d0\u6848\u3059\u308b\u30eb\u30fc\u30eb\u306e\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u547d\u540d\u898f\u5247<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u6570\u540d\u306f\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3092\u4f7f\u7528\uff08\u4f8b\uff1aMAX_LOGIN_ATTEMPTS\uff09<\/li>\n\n\n\n<li>\u95a2\u9023\u3059\u308b\u5b9a\u6570\u306b\u306f\u5171\u901a\u306e\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u4f7f\u7528\uff08\u4f8b\uff1aUSER_STATUS_ACTIVE\uff09<\/li>\n\n\n\n<li>\u610f\u5473\u304c\u660e\u78ba\u306a\u540d\u524d\u3092\u4f7f\u7528\uff08\u201dMAX_SIZE\u201d\u3067\u306f\u306a\u304f\u201dMAX_FILE_SIZE_KB\u201d\u306a\u3069\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5b9a\u6570\u306e\u914d\u7f6e<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u95a2\u9023\u3059\u308b\u5b9a\u6570\u306f\u5c02\u7528\u306e\u30af\u30e9\u30b9\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3059\u308b<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u5024\u306e\u5b9a\u6570\u306f\u5c02\u7528\u306e\u8a2d\u5b9a\u30af\u30e9\u30b9\u306b\u914d\u7f6e\u3059\u308b<\/li>\n\n\n\n<li>\u547d\u540d\u7a7a\u9593\u3092\u6d3b\u7528\u3057\u3066\u5b9a\u6570\u3092\u7d44\u7e54\u5316\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u8981\u4ef6<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u3059\u3079\u3066\u306e\u516c\u958b\u5b9a\u6570\u306b\u306fPHPDoc\u30b3\u30e1\u30f3\u30c8\u3092\u4ed8\u3051\u308b<\/li>\n\n\n\n<li>\u5b9a\u6570\u306e\u76ee\u7684\u3068\u4f7f\u7528\u4f8b\u3092\u6587\u66f8\u5316\u3059\u308b<\/li>\n\n\n\n<li>\u5358\u4f4d\u3084\u7bc4\u56f2\u304c\u3042\u308b\u5834\u5408\u306f\u660e\u8a18\u3059\u308b\uff08\u4f8b\uff1a\u79d2\u5358\u4f4d\u3001\u30d0\u30a4\u30c8\u5358\u4f4d\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u4f7f\u7528\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\u3084\u30de\u30b8\u30c3\u30af\u6587\u5b57\u5217\u306e\u4ee3\u308f\u308a\u306b\u5b9a\u6570\u3092\u4f7f\u7528\u3059\u308b<\/li>\n\n\n\n<li>\u74b0\u5883\u306b\u4f9d\u5b58\u3059\u308b\u5024\u306f\u5b9a\u6570\u3068\u3057\u3066\u4e00\u5143\u7ba1\u7406\u3059\u308b<\/li>\n\n\n\n<li>\u30d3\u30c3\u30c8\u30d5\u30e9\u30b0\u306f2\u306e\u7d2f\u4e57\u306e\u5024\u3092\u4f7f\u7528\u3057\u3001\u30d8\u30eb\u30d1\u30fc\u30e1\u30bd\u30c3\u30c9\u3092\u63d0\u4f9b\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30eb\u30fc\u30eb\u3092\u30c1\u30fc\u30e0\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u898f\u7d04\u306b\u8ffd\u52a0\u3057\u3001\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc\u3067\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3053\u3068\u3067\u3001\u5b9a\u6570\u306e\u4e00\u8cab\u3057\u305f\u4f7f\u7528\u3092\u4fc3\u9032\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-125\">\u5b9a\u6570\u3092\u6b63\u3057\u304f\u4f7f\u3044\u3053\u306a\u3059\u4e0a\u7d1a\u8005\u3078\u306e\u6210\u9577\u30ed\u30fc\u30c9\u30de\u30c3\u30d7<\/h3>\n\n\n\n<p>\u5b9a\u6570\u6d3b\u7528\u30b9\u30ad\u30eb\u3092\u9ad8\u3081\u308b\u305f\u3081\u306e\u30b9\u30c6\u30c3\u30d7\u3068\u5b66\u7fd2\u30ea\u30bd\u30fc\u30b9\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-126\">\u5b9a\u6570\u6d3b\u7528\u30b9\u30ad\u30eb\u3092\u9ad8\u3081\u308b\u305f\u3081\u306e\u5b66\u7fd2\u30ea\u30bd\u30fc\u30b9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>PHP\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.php.net\/manual\/ja\/language.constants.php\">PHP \u30de\u30cb\u30e5\u30a2\u30eb: \u5b9a\u6570<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.php.net\/manual\/ja\/migration71.new-features.php\">PHP 7.1 \u30af\u30e9\u30b9\u5b9a\u6570\u306e\u53ef\u8996\u6027<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.php.net\/manual\/ja\/language.enumerations.php\">PHP 8.1 \u5217\u6319\u578b\uff08Enum\uff09<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u66f8\u7c4d\u3068\u30aa\u30f3\u30e9\u30a4\u30f3\u30ea\u30bd\u30fc\u30b9<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u300cPHP: The Right Way\u300d\uff08https:\/\/phptherightway.com\/\uff09<\/li>\n\n\n\n<li>\u300cModern PHP\u300dby Josh Lockhart<\/li>\n\n\n\n<li>\u300cClean Code in PHP\u300d\u30aa\u30f3\u30e9\u30a4\u30f3\u30ac\u30a4\u30c9<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u5b66\u7fd2<\/strong>\n<ul class=\"wp-block-list\">\n<li>Symfony\u3001Laravel\u3001Doctrine \u306a\u3069\u306e\u4e3b\u8981\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30fc\u30c9\u3092\u8abf\u67fb<\/li>\n\n\n\n<li>PHPUnit\u3001Carbon\u3001Guzzle \u306a\u3069\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306e\u5b9a\u6570\u306e\u4f7f\u7528\u65b9\u6cd5\u3092\u5b66\u7fd2<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-127\">\u3088\u308a\u9ad8\u5ea6\u306a\u5b9a\u6570\u6d3b\u7528\u6cd5\u3078\u306e\u30b9\u30c6\u30c3\u30d7\u30a2\u30c3\u30d7\u30dd\u30a4\u30f3\u30c8<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u578b\u4ed8\u304d\u5b9a\u6570\u3068\u9759\u7684\u89e3\u6790<\/strong><ul><li>PHP 8.0\u4ee5\u964d\u3067\u306e\u578b\u4ed8\u304d\u5b9a\u6570\u306e\u6d3b\u7528PHPStan \u3084 Psalm \u306a\u3069\u306e\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb\u3067\u306e\u5b9a\u6570\u30c1\u30a7\u30c3\u30af<\/li><\/ul><\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Config {\n    \/\/ \u578b\u4ed8\u304d\u5b9a\u6570\uff08PHP 8.0\u4ee5\u964d\uff09\n    public const string DEFAULT_LOCALE = 'ja_JP';\n    public const int TIMEOUT_SECONDS = 30;\n    public const array SUPPORTED_FORMATS = ['json', 'xml', 'yaml'];\n}<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enum\u578b\u3078\u306e\u79fb\u884c<\/strong><ul><li>PHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305fEnum\u578b\u306e\u6d3b\u7528\u5f93\u6765\u306e\u5b9a\u6570\u30d9\u30fc\u30b9\u306e\u30b3\u30fc\u30c9\u3092Enum\u578b\u306b\u79fb\u884c<\/li><\/ul><\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 8.1\u4ee5\u964d\nenum Status: string {\n    case ACTIVE = 'active';\n    case INACTIVE = 'inactive';\n    case SUSPENDED = 'suspended';\n\n    public function label(): string {\n        return match($this) {\n            self::ACTIVE =&gt; '\u30a2\u30af\u30c6\u30a3\u30d6',\n            self::INACTIVE =&gt; '\u975e\u30a2\u30af\u30c6\u30a3\u30d6',\n            self::SUSPENDED =&gt; '\u505c\u6b62\u4e2d',\n        };\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$status = Status::ACTIVE;\necho $status-&gt;value;      \/\/ 'active'\necho $status-&gt;label();    \/\/ '\u30a2\u30af\u30c6\u30a3\u30d6'<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30b3\u30f3\u30c6\u30ca\u8a2d\u5b9a\u3068\u5b9a\u6570\u306e\u9023\u643a<\/strong><ul><li>DI\uff08\u4f9d\u5b58\u6027\u6ce8\u5165\uff09\u30b3\u30f3\u30c6\u30ca\u3068\u5b9a\u6570\u306e\u9023\u643a\u8a2d\u5b9a\u3068\u30b3\u30fc\u30c9\u306e\u5206\u96e2\u30d1\u30bf\u30fc\u30f3<\/li><\/ul><\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b3\u30f3\u30c6\u30ca\u8a2d\u5b9a\u306e\u4f8b\n$container-&gt;set('config.mail', [\n    'host' =&gt; AppConfig::MAIL_HOST,\n    'port' =&gt; AppConfig::MAIL_PORT,\n    'username' =&gt; AppConfig::MAIL_USERNAME,\n    'password' =&gt; AppConfig::MAIL_PASSWORD,\n]);\n\n\/\/ \u30b5\u30fc\u30d3\u30b9\u5b9a\u7fa9\n$container-&gt;set(Mailer::class, function($container) {\n    $config = $container-&gt;get('config.mail');\n    return new Mailer(\n        $config['host'],\n        $config['port'],\n        $config['username'],\n        $config['password']\n    );\n});<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u3068\u5b9a\u6570<\/strong><ul><li>Strategy \u30d1\u30bf\u30fc\u30f3\u3067\u306e\u5b9a\u6570\u6d3b\u7528Factory \u30d1\u30bf\u30fc\u30f3\u3068\u5b9a\u6570\u306e\u7d44\u307f\u5408\u308f\u305b<\/li><\/ul><\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Strategy \u30d1\u30bf\u30fc\u30f3\u3067\u306e\u5b9a\u6570\u6d3b\u7528\u4f8b\ninterface PaymentStrategy {\n    public function pay(Order $order);\n}\n\nclass PaymentFactory {\n    public const STRATEGY_CREDIT_CARD = 'credit_card';\n    public const STRATEGY_PAYPAL = 'paypal';\n    public const STRATEGY_BANK_TRANSFER = 'bank_transfer';\n\n    private static $strategies = [\n        self::STRATEGY_CREDIT_CARD =&gt; CreditCardPayment::class,\n        self::STRATEGY_PAYPAL =&gt; PayPalPayment::class,\n        self::STRATEGY_BANK_TRANSFER =&gt; BankTransferPayment::class,\n    ];\n\n    public static function create(string $type): PaymentStrategy {\n        if (!isset(self::$strategies[$type])) {\n            throw new InvalidArgumentException(\"\u4e0d\u660e\u306a\u652f\u6255\u3044\u65b9\u6cd5: {$type}\");\n        }\n\n        $className = self::$strategies[$type];\n        return new $className();\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$strategy = PaymentFactory::create(PaymentFactory::STRATEGY_CREDIT_CARD);\n$strategy-&gt;pay($order);<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-128\">PHP\u5b9a\u6570\u306e\u672a\u6765\u3068\u5c55\u671b<\/h4>\n\n\n\n<p>PHP\u8a00\u8a9e\u306e\u9032\u5316\u306b\u4f34\u3044\u3001\u5b9a\u6570\u306e\u6a5f\u80fd\u3068\u7528\u9014\u3082\u62e1\u5f35\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>PHP 8.1\u306eEnum\u578b<\/strong> \u5b9a\u6570\u306e\u4ee3\u66ff\u3068\u3057\u3066\u3001\u3088\u308a\u578b\u5b89\u5168\u3067\u30e1\u30bd\u30c3\u30c9\u3092\u6301\u3066\u308bEnum\u578b\u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li><strong>\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb\u306e\u767a\u5c55<\/strong> PHPStan\u3084Psalm\u306a\u3069\u306e\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb\u306b\u3088\u3063\u3066\u3001\u5b9a\u6570\u306e\u578b\u30c1\u30a7\u30c3\u30af\u3084\u4f7f\u7528\u7b87\u6240\u306e\u8ffd\u8de1\u304c\u5bb9\u6613\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u5c5e\u6027\uff08Attributes\uff09\u3068\u306e\u9023\u643a<\/strong> PHP 8.0\u3067\u5c0e\u5165\u3055\u308c\u305f\u5c5e\u6027\uff08Attributes\uff09\u3068\u5b9a\u6570\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u65b0\u3057\u3044\u30d1\u30bf\u30fc\u30f3\u304c\u767b\u5834\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30a4\u30df\u30e5\u30fc\u30bf\u30d6\u30eb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u666e\u53ca<\/strong> \u5909\u66f4\u4e0d\u53ef\u80fd\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u5b9a\u6570\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u8a2d\u8a08\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u5897\u3048\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u5b9a\u6570\u3092\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u306f\u3001PHP\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u57fa\u672c\u7684\u306a\u30b9\u30ad\u30eb\u3067\u3059\u304c\u3001\u305d\u306e\u5fdc\u7528\u7bc4\u56f2\u306f\u975e\u5e38\u306b\u5e83\u3044\u3067\u3059\u3002\u7d99\u7d9a\u7684\u306a\u5b66\u7fd2\u3068\u5b9f\u8df5\u3092\u901a\u3058\u3066\u3001\u3088\u308a\u5805\u7262\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u30b9\u30ad\u30eb\u3092\u78e8\u3044\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u660e\u65e5\u304b\u3089\u5b9f\u8df5\u3067\u304d\u308b3\u3064\u306e\u30a2\u30af\u30b7\u30e7\u30f3\uff08\u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\u306e\u5b9a\u6570\u5316\u3001\u95a2\u9023\u5b9a\u6570\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u3001\u8a2d\u5b9a\u5024\u306e\u4e00\u5143\u7ba1\u7406\uff09\u304b\u3089\u59cb\u3081\u3066\u3001\u5f90\u3005\u306b\u9ad8\u5ea6\u306a\u6d3b\u7528\u6cd5\u3078\u3068\u30b9\u30c6\u30c3\u30d7\u30a2\u30c3\u30d7\u3057\u3066\u3044\u304f\u3053\u3068\u3067\u3001PHP\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u54c1\u8cea\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-129\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001PHP\u5b9a\u6570\u306e\u57fa\u672c\u304b\u3089\u5fdc\u7528\u307e\u3067\u3001\u5e45\u5e83\u304f\u89e3\u8aac\u3057\u3066\u304d\u307e\u3057\u305f\u3002\u5b9a\u6570\u306f\u4e00\u898b\u30b7\u30f3\u30d7\u30eb\u306a\u6a5f\u80fd\u3067\u3059\u304c\u3001\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u3068\u4fdd\u5b88\u6027\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u307e\u305a\u3001\u5b9a\u6570\u3068\u5909\u6570\u306e\u6839\u672c\u7684\u306a\u9055\u3044\u304b\u3089\u59cb\u3081\u3001\u305d\u306e\u4e0d\u5909\u6027\u304c\u3082\u305f\u3089\u3059\u30e1\u30ea\u30c3\u30c8\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002<code>define()<\/code>\u95a2\u6570\u3068<code>const<\/code>\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u3044\u30462\u3064\u306e\u5b9a\u7fa9\u65b9\u6cd5\u306e\u7279\u5fb4\u3068\u4f7f\u3044\u5206\u3051\u306b\u3064\u3044\u3066\u3082\u8a73\u3057\u304f\u898b\u3066\u304d\u307e\u3057\u305f\u3002\u7279\u306b\u3001<code>define()<\/code>\u306e\u52d5\u7684\u306a\u6027\u8cea\u3068<code>const<\/code>\u306e\u9759\u7684\u306a\u7279\u6027\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3001\u9069\u5207\u306a\u9078\u629e\u306e\u9375\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5b9a\u6570\u306e\u547d\u540d\u898f\u5247\u306b\u304a\u3044\u3066\u306f\u3001\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u3092\u9ad8\u3081\u308b\u305f\u3081\u306e\u696d\u754c\u6a19\u6e96\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3092\u4f7f\u7528\u3057\u305f\u660e\u78ba\u306a\u547d\u540d\u3068\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u3067\u306e\u4e00\u8cab\u6027\u304c\u91cd\u8981\u3067\u3042\u308b\u3053\u3068\u3092\u5f37\u8abf\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u30b9\u30b3\u30fc\u30d7\u306e\u89b3\u70b9\u3067\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u5b9a\u6570\u3068\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u9069\u5207\u306a\u4f7f\u3044\u5206\u3051\u3084\u3001\u540d\u524d\u7a7a\u9593\u3092\u6d3b\u7528\u3057\u305f\u5b9a\u6570\u306e\u7ba1\u7406\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3057\u305f\u3002PHP 7\u4ee5\u964d\u306e\u6a5f\u80fd\u5f37\u5316\u306b\u3088\u308a\u3001\u914d\u5217\u5b9a\u6570\u3084\u30af\u30e9\u30b9\u5b9a\u6570\u306e\u53ef\u8996\u6027\u5236\u5fa1\u306a\u3069\u3001\u3088\u308a\u67d4\u8edf\u306a\u5b9a\u6570\u8a2d\u8a08\u304c\u53ef\u80fd\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u307e\u305f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u8996\u70b9\u304b\u3089\u3082\u5b9a\u6570\u306e\u5229\u70b9\u3092\u691c\u8a3c\u3057\u3001\u30de\u30b8\u30c3\u30af\u5b9a\u6570\u306e\u6d3b\u7528\u6cd5\u3084\u3001PHP 8.1\u3067\u5c0e\u5165\u3055\u308c\u305freadonly property\u3068\u306e\u6bd4\u8f03\u306a\u3069\u3001\u6700\u65b0\u306ePHP\u6a5f\u80fd\u3068\u306e\u95a2\u9023\u6027\u3082\u63a2\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u5b9f\u8df5\u7684\u306a\u5fdc\u7528\u4f8b\u3068\u3057\u3066\u3001\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3084\u30b9\u30c6\u30fc\u30bf\u30b9\u7ba1\u7406\u306b\u304a\u3051\u308b\u5b9a\u6570\u306e\u6d3b\u7528\u30d1\u30bf\u30fc\u30f3\u3084\u3001Laravel\u3084Symfony\u306a\u3069\u306e\u4e3b\u8981\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306e\u5b9a\u6570\u306e\u6271\u3044\u306b\u3064\u3044\u3066\u3082\u89e3\u8aac\u3057\u307e\u3057\u305f\u3002\u3055\u3089\u306b\u3001\u5b9a\u6570\u306e\u30c6\u30b9\u30c8\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u306e\u65b9\u6cd5\u3082\u7d39\u4ecb\u3057\u3001\u54c1\u8cea\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306e\u624b\u6cd5\u3092\u63d0\u793a\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u660e\u65e5\u304b\u3089\u5b9f\u8df5\u3067\u304d\u308b\u5177\u4f53\u7684\u306a\u30a2\u30af\u30b7\u30e7\u30f3\u3068\u3057\u3066\u3001\u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\u30fb\u30de\u30b8\u30c3\u30af\u6587\u5b57\u5217\u306e\u5b9a\u6570\u5316\u3001\u95a2\u9023\u5b9a\u6570\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u3001\u8a2d\u5b9a\u5024\u306e\u4e00\u5143\u7ba1\u7406\u3068\u3044\u30463\u3064\u306e\u30b9\u30c6\u30c3\u30d7\u3092\u63d0\u6848\u3057\u307e\u3057\u305f\u3002\u3053\u308c\u3089\u306e\u5b9f\u8df5\u304b\u3089\u59cb\u3081\u3066\u3001\u5f90\u3005\u306b\u9ad8\u5ea6\u306a\u6d3b\u7528\u6cd5\u3078\u3068\u30b9\u30c6\u30c3\u30d7\u30a2\u30c3\u30d7\u3057\u3066\u3044\u304f\u3053\u3068\u3067\u3001PHP\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u54c1\u8cea\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5b9a\u6570\u3092\u9069\u5207\u306b\u4f7f\u3046\u3053\u3068\u3067\u5f97\u3089\u308c\u308b\u30e1\u30ea\u30c3\u30c8\u306f\u591a\u5c90\u306b\u308f\u305f\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u610f\u56f3\u306e\u660e\u78ba\u5316<\/li>\n\n\n\n<li>\u5024\u306e\u4e00\u5143\u7ba1\u7406\u306b\u3088\u308b\u4fdd\u5b88\u6027\u306e\u5411\u4e0a<\/li>\n\n\n\n<li>\u30bf\u30a4\u30d7\u30df\u30b9\u3084\u30d0\u30b0\u306e\u9632\u6b62<\/li>\n\n\n\n<li>IDE\u88dc\u5b8c\u6a5f\u80fd\u306e\u6d3b\u7528\u306b\u3088\u308b\u958b\u767a\u52b9\u7387\u306e\u5411\u4e0a<\/li>\n\n\n\n<li>\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u30c1\u30fc\u30e0\u958b\u767a\u3067\u306e\u4e00\u8cab\u6027\u306e\u78ba\u4fdd<\/li>\n<\/ul>\n\n\n\n<p>\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u3068\u3057\u3066\u3001\u305c\u3072\u81ea\u5206\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u5b9a\u6570\u306e\u6d3b\u7528\u72b6\u6cc1\u3092\u898b\u76f4\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\u30de\u30b8\u30c3\u30af\u30ca\u30f3\u30d0\u30fc\u3084\u6587\u5b57\u5217\u3092\u5b9a\u6570\u306b\u7f6e\u304d\u63db\u3048\u3001\u95a2\u9023\u3059\u308b\u5b9a\u6570\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3001\u547d\u540d\u898f\u5247\u3092\u7d71\u4e00\u3059\u308b\u3053\u3068\u304b\u3089\u59cb\u3081\u307e\u3057\u3087\u3046\u3002\u30c1\u30fc\u30e0\u958b\u767a\u3067\u306f\u3001\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u898f\u7d04\u306b\u5b9a\u6570\u95a2\u9023\u306e\u30eb\u30fc\u30eb\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3082\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>PHP 8.1\u4ee5\u964d\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u5f93\u6765\u306e\u5b9a\u6570\u306e\u4ee3\u308f\u308a\u306bEnum\u578b\u3078\u306e\u79fb\u884c\u3082\u8996\u91ce\u306b\u5165\u308c\u308b\u3068\u826f\u3044\u3067\u3057\u3087\u3046\u3002\u307e\u305f\u3001\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb\u3092\u5c0e\u5165\u3057\u3066\u3001\u5b9a\u6570\u306e\u4f7f\u7528\u72b6\u6cc1\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3053\u3068\u3082\u6709\u52b9\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u5b9a\u6570\u306f\u3001PHP\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u57fa\u672c\u7684\u306a\u8981\u7d20\u3067\u3042\u308a\u306a\u304c\u3089\u3001\u305d\u306e\u52b9\u679c\u7684\u306a\u6d3b\u7528\u306f\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u3092\u5927\u304d\u304f\u5de6\u53f3\u3057\u307e\u3059\u3002\u672c\u8a18\u4e8b\u3067\u7d39\u4ecb\u3057\u305f10\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u5b9f\u8df5\u3057\u3066\u3001\u3088\u308a\u5805\u7262\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044PHP\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP\u3067\u958b\u767a\u3092\u3057\u3066\u3044\u308b\u3068\u3001\u300c\u3053\u306e\u5024\u306f\u7d76\u5bfe\u306b\u5909\u308f\u3089\u306a\u3044\u304b\u3089\u5b9a\u6570\u306b\u3057\u3066\u304a\u3053\u3046\u300d\u3068\u8003\u3048\u308b\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u305d\u306e\u4e00\u898b\u30b7\u30f3\u30d7\u30eb\u306a\u6c7a\u65ad\u306e\u80cc\u5f8c\u306b\u306f\u3001\u591a\u304f\u306e\u691c\u8a0e\u4e8b\u9805\u304c\u96a0\u308c\u3066\u3044\u307e\u3059\u3002\u5b9a\u6570\u3092\u3069\u3046\u547d\u540d\u3059\u3079\u304d\u304b\uff1f define() \u3068 &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,63],"tags":[],"class_list":{"0":"post-3746","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php","7":"category-php-syntax","8":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3746"}],"version-history":[{"count":4,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3746\/revisions"}],"predecessor-version":[{"id":3759,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3746\/revisions\/3759"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}