プログラミング言語の他言語比較リファレンスと実装サンプル集 > 

10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト

10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト

3日でPHPシステム開発

「10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト」は、現役コーダー(プログラマー)のために最速、最短でPHPを書けることを目的とした学習サイトだ。

業務システム開発に不要な要素をバッサリ切り捨て、必要なエッセンスに選択と集中している。

流し読みで全体像を捉えて、必要な箇所からつまみ食いすれば、3日でUI/DBまわりを十分書けるようになる。

非エンジニアでも10日でPHPが書ける

非エンジニア、文系未経験者、サルでも独学10日でPHPを使えるように内容を構成した。

不要な基礎はバッサリ切り捨て、必要な基礎を十分に深堀した。10日後にはデータベースを使用したWEBシステムを開発できるようになる。

プログラミングスクールでチンタラお勉強をしたつもりになっているアホを横目に、ブッチギリで10日でエンジニアの入り口に立ってほしい

10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト 10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト

文系未経験、サルでも10日でPHPを使えるように内容を構成した独学向け学習サイト。不要な基礎はバッサリ切り捨て必要な基礎を十分に深堀した・・・  続きを見る 

新卒や現役エンジニアの学習方法(オンライン学習 or 書籍) 新卒や現役エンジニアの学習方法(オンライン学習 or 書籍)

「SIerやメーカーに就職した新卒」や「現役エンジニア」で、動画配信で学ぶ技術者はほぼゼロと言ってよい。洗練された書籍で学んだほうが短期間で技術習得できるし高すぎる。・・・  続きを見る 

目次

  1. PHPとは?
  2. PHPの特徴
  3. PHPの書き方
    1. HTMLに直接PHPのコードを記述する
    2. Hello Worldを出力する
    3. HTMLの中でHello Worldを出力する
    4. 非推奨タグの記述方法(short_open_tag, asp_tags)
    5. PHPの文の区切り
    6. PHPで改行の出力する
    7. PHPでHTMLの改行を出力する
    8. nl2br()で\nを<br>に変換する
    9. PHPのコメント
    10. ミニファイ(コードの圧縮)を行う場合のコメントは全て /* */ で記述する
    1. 整数(int, integer)
    2. 浮動小数点数(float, double, real)
    3. 論理型(bool, boolean)
    4. 文字列(string)
      1. ダブルクォーテーション内の変数の置き換え
    5. ヒアドキュメント(<<<)
    6. NULL型(null)
    7. 未定義値
    8. NAN(not a number)
    9. コールバック(callable)
    10. キャスト(型の相互変換)
  4. 変数
    1. 変数
    2. 変数の参照(リファレンス)
    3. GETメソッド($_GET)
    4. POSTメソッド($_POST)
    5. リクエスト($_REQUEST)
    6. セッション変数($_SESSION)
    7. Cookie($_COOKIE)
    8. ファイルアップロード($_FILES)
    9. サーバ情報($_SERVER)
    10. 環境変数($_ENV)
    11. グローバル変数($GLOBALS)
    12. コマンド引数($argc、$argv)
    13. エラーメッセージ($php_errormsg)
    14. 可変変数($$var)
  5. PHPの変数のスコープ
    1. グローバルスコープ
  6. 演算子
    1. 算術演算子
    2. 加算子(インクリメント)減算子(デクリメント)
    3. 文字列演算子
    4. ビット演算子
    5. 代入演算子
    6. 比較演算子
    7. 論理演算子
  7. 制御構文
    1. if
    2. if, else
    3. if, else if, else
    4. for
    5. switch
    6. break
    7. continue
    8. while
  8. 関数 function
    1. 関数 function
    2. return
    3. 引数の参照渡し(リファレンス渡し)
    4. 引数のデフォルト値の設定
  9. クラス
    1. クラスのプロパティ、メソッドのスコープ
    2. インスタンスの生成
    3. クラスのプロパティ、メソッドのスコープ(アクセス修飾子)
    4. private プロパティ
    5. protected プロパティ
    6. private メソッド
  10. 例外処理
    1. try catch finally throw の仕様
    2. throw 意図的に例外を発生する
    3. try catch finally による例外処理
    4. 深い階層で発生したエラーの例外処理
  11. シンタックスハイライト
    1. highlight.js

PHP

PHPの特徴

PHPには以下の特徴がある。

  1. インタプリタ言語(コンパイル不要)
    インタプリタ言語なので、記述してすぐに動作確認できるメリットがある。コンパイルしないため実行時にエラーが発生しやすい。
  2. PHPは変数宣言時に明示的な型定義を必要としない(動的型付け言語)
    明示的な型定義を必要としない動的型付け言語なので、簡単にプログラムを記述し動かすことができる。変数宣言が必須(静的型付け言語)ではないので、バグの温床になりやすい。
  3. HTMLに直接PHPのコードを記述できる
    <?php を開始タグ、 ?> を終了タグとして認識し、タグの内側をPHPのコードとして実行する。

    タグの外側はPHPパーサに無視されるので、HTMLに「開始タグ <?php ~ 終了タグ ?>」を記述し、ファイル名(拡張子)を .php とすることで、HTML内に直接コードを埋め込んで動的なWebページを生成できる。

PHPの書き方

HTMLに直接PHPのコードを記述する

PHPはHTMLに直接PHPのコードを記述できる。

<?php を開始タグ、 ?> を終了タグとして認識し、タグの内側をPHPのコードとして実行する。

タグの外側はPHPパーサに無視されるので、HTMLに「開始タグ <?php ~ 終了タグ ?>」を記述し、ファイル名を .php とすることで、HTML内に直接コードを埋め込んで動的なWebページを生成できる。

※パーサとはソースコードやXML、HTMLなどの言語で記述された構造的なテキストデータを解析し、コンピュータが扱いやすいデータ構造に変換するプログラムの総称。コンパイラとは別物。

<?php タグの後ろ、?>の前には必ず「改行・半角空白・タブ」のいずれかを記述する。「改行・半角空白・タブ」がないとエラーになる。

Hello Worldを出力する

<?php ~ ?>の前後を改行で記述

<?php
echo 'Hello World';
?>

<?php ~ ?>の前後を半角空白で記述

<?php echo 'Hello World' ?>

HTMLの中でHello Worldを出力する

<html>
<head>
<title>HTMLのタイトル</title>
</head>
<body>
<h1>h1タグ</h1>
<?php
	echo 'Hello World';
?>
</body>
</html>

<?= ?> は、echo の代わりに値を画面に出力する。

賛否両論あると思うが、可読性、一貫性の低下と、バグの温床になりやすいため <?= ?> は望ましくない。

<html>
<head>
<title>HTMLのタイトル</title>
</head>
<body>
<h1>h1タグ</h1>
<?= 'Hello World'; ?>
</body>
</html>

非推奨タグの記述方法(short_open_tag, asp_tags)

php.ini で short_open_tag が On に設定されている場合は、<?php ~ ?> の代わりに <? ~ ?> を、<?php echo ~ ?> の代わりに <?= ~ ?> を使用できる。

<? ~ ?>
<? echo 'Hello World'; ?>
<?php= ~ ?>
<?= echo 'Hello World'; ?>

php.ini で asp_tags が On に設定されている場合は、<?php ~ ?> の代わりに <% ~ %> を、<?php echo ~ ?> の代わりに <%= ~ %> を使用できる。

<% ~ %>
<% echo 'Hello World'; %>
<%= ~ %>
<%= echo 'Hello World'; %>

PHPの文の区切り

PHPでは、文はセミコロン「;」で区切る。

<?php
echo 'Hello World';
echo 'hogehoge world';
?>

セミコロン「;」で区切っていれば、1行に複数の文を記述できる。

<?php
echo 'Hello World'; echo 'hogehoge world';
?>

PHPで改行を出力する

PHPでは、改行の出力は \n を記述する。

\n を使用するときは文字列をダブルクォーテーションで囲む必要がある。シングルクォーテーションでは改行されない。

<?php
echo "Hello World \n hogehoge world";
?>

PHPでHTMLの改行を出力する

<?php
echo 'Hello World<br>';
echo 'hogehoge world<br>';
?>

nl2br()で\nを<br>に変換する

<?php
echo nl2br("Hello World \n hogehoge world");
?>

PHPのコメント

PHPのコメントは、//(単行)、#(単行)、/* */(複数行)の3つの書き方がある。
一般的には //(単行)、/* */(複数行)の2つを使用する。

この他に /** */ とすることで PHPDoc 用のコメントを記述できる。

  1. //// から改行までをコメントとして認識する。
    単行コメント 記述例
    // 単行コメントを書く
    
  2. #// と同様。
  3. /* *//* をコメント開始タグ、 */ をコメント終了タグとして認識し、タグの内側をコメントとして認識する。
    複数行コメント 記述例
    /* 複数行コメントを書く */
    
    /*
        複数行コメントを書く
    */
    
    /*
     *  複数行コメントを書く
     */
    

他言語のコメント書式は コメントの言語別書式機能比較 を参照。

ミニファイ(コードの圧縮)を行う場合のコメントは全て /* */ で記述する

HTMLのミニファイ(コードの圧縮)はファイルサイズを小さくして読み込み速度を向上させる目的の他に、HTMLを読みにくくし無断複製を防ぐ目的でも行われる。

ミニファイを行うファイルにPHPのソースコードがあると改行コードが取り除かれてしまい、//、# でコメントを記述すると正しく機能しなくなる。

ミニファイを行う場合は、コメントは全て /* */ で記述する必要がある。


PHP、Rubyの言語比較

HTMLに直接PHPのコードを記述する

PHPは、HTMLに「開始タグ <?php ~ 終了タグ ?>」を記述し、ファイル名(拡張子)を .php とすることで、HTML内に直接コードを埋め込んで動的なWebページを生成できる。

Rubyは、Embedded Ruby を使用し、<% %> または <%= %> を使用する。

<% %> はRubyの処理のみで、HTMLへの出力はしない場合に使用する。<%= %> はRubyの処理および、HTMLへの出力する場合に使用する。

PHP、Rubyの言語比較
機能Java/JSPPHPRubyPython
HTMLに直接コードを記述JavaPHPRubyPython
HTMLに直接コードを記述<% %>
<%= %>
${ }
<?php ?>
<?= ?>
ERBを使用
<% %>
<%= %>
Python

シンタックスハイライト

highlight.js

シンタックスハイライトをおこなうライブラリは syntaxhighlighter、highlight.js、Prism.js などがある。※syntaxhighlighter は2017年で更新が止まっており、事実上開発が終了している。

当サイトは highlight.js を使用している。

highlight.js は下記のスクリプトを<body>~</body>タグの間に記述するだけで使用できる。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/styles/a11y-dark.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

シンタックスハイライトさせたいコードを<pre><code></code></pre>で囲む事でシンタックスハイライトされる。

引数として、<pre><code class="language-php"></code></pre> のように <code class="language-言語名"> を指定することができる。

<pre><code class="language-php">
<?php
$num = 1;		/* グローバルスコープで変数定義 */
function func() {
	global $num;	/* グローバルスコープの$numを呼び出し */
	echo $num;	/* 1が出力される */
}
func();			/* funcを呼び出し */
?>
</code></pre>

a11y-dark.min.css を別のテーマ(配色)に変えることもできる。おすすめは a11y-dark.min.css、vs2015.min.css、xt256.min.css だ。

命名規則(ネーミングコンベンション)

PHPの命名規則にデファクトスタンダードは存在しない。キャメルケース、スネークケース いずれも使用している。

PHPの言語上の関数は、スネークケースで命名されており、クラス処理ではキャメルケースが使われている。

現在は PSR-12 という規格が業界標準(モダンな開発のデファクト)として広く普及している。

  1. isNull
    キャメルケース(camelCase)。単語の区切りを大文字で表すスタイル。Java、JavaScript、C#などでよく使われる。
  2. is_null
    スネークケース(snake_case)。Python、Ruby、C言語などで一般的。
PHPの命名規則
種類書式例PHPでの主な用途
キャメルケースisSpaceクラス処理。現在の主流。
スネークケースis_space関数名。PHP標準関数に似せる場合。

おすすめ記事

10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト 10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト

文系未経験、サルでも10日でPHPを使えるように内容を構成した独学向け学習サイト。不要な基礎はバッサリ切り捨て必要な基礎を十分に深堀した・・・  続きを見る 

Copyright (C) 2001~2026年 e-elder.jp All Rights Reserved.
運営者情報 ご質問はこちらへお願いします info@e-elder.jp