teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

見直し

2020/03/10 07:25

投稿

退会済みユーザー
answer CHANGED
@@ -3,15 +3,22 @@
3
3
  function h()
4
4
  を、
5
5
  ファイルをまたいだ bookshelf_edit.php 上で
6
- そのまま使えるわけしょ
6
+ そのまま使えるよう言語仕様はありません
7
7
 
8
+ 解決方法として
9
+ その一、
8
10
  bookshelf_edit.php
9
11
  にも
10
12
  function h()
11
- の定義を置くか、
13
+ の定義を置きます。
14
+ しかし、phpファイルで機能を追加するたびに
15
+ いちいち function h() の定義を書くのはめんどうです。
16
+
17
+ その二、
12
- 共通して使う関数として別途
18
+ 共通して使う関数として別途例えば
13
19
  commons.php
14
- などというファイル名に定義を追い出し
20
+ などというファイル名にfunction h()の定義箇所を追い出します。
21
+
15
22
  ```php
16
23
  <?php
17
24
  // filename: commons.php
@@ -20,11 +27,12 @@
20
27
  return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
21
28
  }
22
29
  ```
30
+ その上で、
23
31
  bookshelf_index.php
24
32
  bookshelf_edit.php
25
- それぞれの冒頭で
26
- ```php
27
- require_once('commons.php');
33
+ それぞれの冒頭で require_once('commons.php'); の行を加えれば、
34
+ それぞれのphpで function h() が定義されて使えるようになります。
35
+
28
- // 従来コードが続く。。
36
+ もしも function h() 定義を変更しても、
29
- ```
37
+ require_once('commons.php'); しているそれぞれのphpに反映されるので
30
- ればいい
38
+ 便利です。