diff --git a/public/sample/php/components/footer.html b/public/sample/php/components/footer.html new file mode 100644 index 0000000..4bf683b --- /dev/null +++ b/public/sample/php/components/footer.html @@ -0,0 +1,3 @@ + diff --git a/public/sample/php/components/header.html b/public/sample/php/components/header.html new file mode 100644 index 0000000..f19aaa6 --- /dev/null +++ b/public/sample/php/components/header.html @@ -0,0 +1,3 @@ +
+

Header Component

+
diff --git a/public/sample/php/include.php b/public/sample/php/include.php new file mode 100644 index 0000000..32c22b2 --- /dev/null +++ b/public/sample/php/include.php @@ -0,0 +1,25 @@ + + + + + + + + ファイルを読み込む + + + + + +
+ メインコンテンツ +
+ + + + + + + diff --git a/public/sample/php/lib/varout.php b/public/sample/php/lib/varout.php new file mode 100644 index 0000000..9e0b109 --- /dev/null +++ b/public/sample/php/lib/varout.php @@ -0,0 +1,8 @@ +'; + var_dump($var); + echo ''; +} diff --git a/src/components/OuterLink.astro b/src/components/OuterLink.astro new file mode 100644 index 0000000..553d3ef --- /dev/null +++ b/src/components/OuterLink.astro @@ -0,0 +1,11 @@ +--- +interface Props { + href: string; + title?: string; +} + +const { href } = Astro.props as Props; +--- + + {Astro.props.title ?? href} + diff --git a/src/pages/drafts/template.mdx b/src/pages/drafts/template.mdx new file mode 100644 index 0000000..d01850c --- /dev/null +++ b/src/pages/drafts/template.mdx @@ -0,0 +1,9 @@ +--- +layout: "@/layouts/MarkdownLayout.astro" +--- + +export const title = "準備中"; + +# {title} + +このセクションはまだ何も書かれていません。 diff --git a/src/pages/php/010-foundation.mdx b/src/pages/php/010-foundation.mdx index f00abfc..a8e4550 100644 --- a/src/pages/php/010-foundation.mdx +++ b/src/pages/php/010-foundation.mdx @@ -3,6 +3,7 @@ --- import Toc from "../../components/Toc.astro"; +import DockerLink from "@/components/DockerLink.astro"; export const title = "PHPとJavaScriptを比較"; @@ -152,3 +153,124 @@ } // name: Bob
age: 25
と表示される ``` + +## require / includeによるファイルの読み込み + + + +```php file=public/sample/php/include.php "include" "require" "include_once" "require_once" +public/sample/php/include.php +``` + +
+ +
+呼ばれているファイルの内容を見る + +```html file=public/sample/php/components/header.html +public/sample/php/components/header.html +``` + +
+ +```html file=public/sample/php/components/footer.html +public/sample/php/components/footer.html +``` + +
+ +```php file=public/sample/php/lib/varout.php +public/sample/php/lib/varout.php +``` + +
+ +phpでは、以下の4つの命令が用意されています。 + +- `require` +- `include` +- `require_once` +- `include_once` + +これらは細かい動作の違いはありますが、他のファイルの内容を読み込むための命令です。 +イメージは、その箇所に対象のファイルの中身をそのままコピー&ペーストしたように解釈されます。 + +具体的には、例に挙げた`include.php`は以下のように解釈されます。 +これを改めてphpが実行するときに、その内容を以下のように解釈して実行します。 + +```php title="include.php (解釈後)" del={2,20,31} add={3-8,21-23,32-34} +'; + var_dump($var); + echo ''; +} +?> + + + + + + + ファイルを読み込む + + + + +
+

Header Component

+
+ +
+ メインコンテンツ +
+ + + + + + + + +``` + +
+ +`require`と`include`の違いは、読み込むファイルが存在しない場合の挙動です。 + +`include`は警告を出して処理を続行しますが、`require`はファイルがないことを致命的なエラーとして処理を中断します。 + +また、`_once`が付くものは、同じファイルを複数回読み込むことを防ぎます。 + +例えば自作で便利な関数をまとめたファイルを作成していて、それを様々な箇所で利用するとします。 +しかしその関数自体は1回だけ読み込めば良いものです。 +そのような場合に`require_once`や`include_once`を使うことで、2回目以降の読み込みを無視してくれます。 + +```php + +これは1回目の読み込みだけが実行され、2回目以降は無視されます。 + +```php +'; + var_dump($var); + echo ''; +} + +varout("Hello, World!"); +``` diff --git a/src/pages/sql/010-foundation.mdx b/src/pages/sql/010-foundation.mdx new file mode 100644 index 0000000..916befb --- /dev/null +++ b/src/pages/sql/010-foundation.mdx @@ -0,0 +1,9 @@ +--- +layout: "@/layouts/MarkdownLayout.astro" +--- + +export const title = "SQLの基本"; + +# {title} + +このセクションはまだ何も書かれていません。 diff --git a/src/pages/sql/030-sql-on-php.mdx b/src/pages/sql/030-sql-on-php.mdx new file mode 100644 index 0000000..4b93930 --- /dev/null +++ b/src/pages/sql/030-sql-on-php.mdx @@ -0,0 +1,18 @@ +--- +layout: "@/layouts/MarkdownLayout.astro" +--- + +export const title = "PHPでSQLを操作する"; + +import OuterLink from "@/components/OuterLink.astro"; + +# {title} + +このセクションはまだ何も書かれていません。 + +## 参考リンク + +