PHPがプログラミング言語じゃない?特徴や将来性を考察

PHPベースのワードプレス 電気電子・情報工学
ワードプレスのブログは主にPHPベースで書かれています。ワードプレスについて深く理解するならPHPは必須

PHPがプログラミング言語じゃないと揶揄される理由を特徴や将来性を踏まえて元WEBプログラマーでPHPでウェブサイトを製作していた筆者が解説します。

PHPはれっきとしたプログラミング言語ですが、使えないと揶揄されたり嫌われたりするのは型や関数で使用される演算に許容性というか寛容性があり過ぎて、他の言語と比べるとまとまりのないようなコードに見える事に起因しています。

言語の使用例の話をするとFacebook・ホワイトハウスのCMS(ワードプレスと似ているドゥルーパル)・私たちがブログで良く使用しているワードプレスはPHP言語で作られています。

スポンサーリンク

PHPがプログラミング言語じゃない?特徴や将来性を考察ポイント

  • PHPは関数や型などの処理に許容性と汎用性が高く誰でも扱いやすい一方、見た目が煩雑になりがちなのが揶揄される原因。
  • PHP言語は動いただけでは危険な部分がある。きちんと対策しないとハッキングの対象になる事がある。(XSSクロスサイトスクリプティング・SQLインジェクション攻撃など)
  • PHPは使えないという訳ではない。使い方次第!今でもホワイトハウスを始めワードプレスやFacebookはPHP言語で書かれている。(ワードプレスを深く知りたいならPHPの習得は必須)
PR:このページではプロモーションを表示しています

PHPとHTMLはどっちから入門・勉強するのが適切?

PHPを学ぶ上でHTMLは避けては通れませんが、どちらから勉強するのがおすすめかを結論から言うとHTMLです。

HTMLが理解できていない状態ではPHP言語の習得には進めませんので、最低限HTMLとそれに付随する言語であるCSSを学んでからPHPを学びましょう。

それでは、HTMLとPHPで具体的にどんな事が出来るのかをもう少し詳細に解説します。

HTMLはサイトの枠組みを作り文章を整える

仮に、HTMLが全くないサイトでPHPだけを使ったらどのようなウェブサイトが出来上がるでしょうか。

答えは簡単で、何の装飾も無いただの文章が並んでいるだけです。

画像を配置したりするのも文章の段落や改行を作るのもHTMLの仕事なので、HTMLが無いとただつながった文字が並ぶだけのサイトが出来上がる事になります。

HTMLは見出しのH1タグやtitleタイトルタグを使用してSEOを行います。(SEOとは簡単に説明すると検索エンジンに上位表示するために必要な施策の一つです)

上記の様にhtmlが無いとサイトの枠組みが整わないばかりか、検索エンジンにウェブサイトに必要な情報を与える事が出来ませんので、自分のサイトをサーチコンソールに登録してインデックス申請を行っても検索にヒットさせる事ができません。

HTMLソースを表示
ウェブサイト→右クリック→ソースの表示

HTMLのソースの表示を行い、HTMLが表示されないと焦る方がいる様ですが、コクーンなどの高速化設定が原因ですのでそれを切ればHTMLを表示する事が出来ます。

CSSはウェブサイトの見た目を整えるのが仕事

HTMLに対してCSSはサイトの見た目をととのえるのが専門です。

HTMLでも文字の大きさやテキストの位置などの変更は出来ますが、CSSではHTMLでは出来ない更に細かな設定が出来ます。

CSSが理解できるようになると見た目を整えるのは勿論、fontawesomeなどのサイトを利用して当サイトのようにテキストの前に好きなアイコンを配置する事も可能です。

ちょっと内容が抽象的なので、もうすこし具体的に多くのブロガーが使っているワードプレスに絞って考えると、私はワードプレスのテーマにCSSを独自に変更する事でオリジナル処理を読み込ませています。

具体的には外観→テーマファイルエディタ→style.cssに処理を追加する事で既存のテーマに直に変更を加えずに、オリジナルの変更を読み込ませる事が出来ます。

『使っている検索窓のアイコンの色やサイズが気に入らないから変更』『この部分の要素はいらないから非表示(HTMLのソース上では表示される)』他にも色々ありますが主にこれらの用途で使用しています。

Font Awesome
The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free...

例えば、既存サイトのロゴにdisplay:none;を指定してロゴを消そうとする場合を考えてみます。

ソースを見ながら画像のファイル名で検索して該当箇所を探すのもアリですが、そんなことをしなくてももっと便利な機能がクロームでは標準で備わっています。

それがデベロッパーツールです。

クロームのデベロッパーツール
デベロッパーツールはCSSで変更を加えるのに大変便利

キーボードのF12ボタンを押すと、右サイドに画像のようなデベロッパーモードが出現します。

2番のボタンを押すとセレクトモードになり、各部分の要素を選択できるようになります。

試しに画像のロゴの要素を選択すると、画像の様に4番の部分が赤で反転します。

ここで出てきた要素にスタイルシートで変更を加えるわけです。

コクーンstyle.css
ダッシュボード→外観→テーマファイルエディター→style.css

スタイルシートの選択は、ワードプレスの管理画面のダッシュボードから外観をクリックし、テーマファイルエディターへと進みます。

該当するテーマでは必ず子テーマになっているか確認しましょう。(デフォルトで選択はされているが)

styel.cssが出てきますのでここで選択した要素に変更を加える記述をします。(ピックアップされ反転された部分をコピーしました)

<img class="site-logo-image header-site-logo-image" src="https://jpprepper.com/wp-content/uploads/2024/02/header-logo-kawane-lab-e1708826503428.png" alt="川根本町ラボ" width="499" height="150">

この部分の画像のロゴを見てみるとclassに”site-logo-image header-site-logo-image”が指定されていますので、このスタイルに対して変更を加えればよいことが分かります。

試に子テーマのstyle.cssに以下を入力して意図的にロゴを消してみましょう。

/*画像ロゴさようなら!出てこないでください*/
site-logo-image.header-site-logo-image {display: none;}

すると、サイトのロゴが消えれば成功です。

コクーンcocoonを使用しているユーザーであれば上記の方法で意図的にCSSでロゴを非表示にする事が出来ます。

ワードプレスを使い、CSSでデベロッパーツールの操作方法と見た目の変更を行う方法の一例を紹介しました。

PHPとHTMLを組合せると何が出来るのか

PHPで出来る処理の範囲や内容が細かすぎてすべて網羅する事は出来ませんが、大体以下のような事が出来ると捉えて後は勉強しながら知識を蓄えるのが良いでしょう。

これはPHPポケットリファレンスというもので、PHPで使える関数や処理が網羅されたリファレンスです。

私もPHPのソースコードを編集する時は必ず使っています。

コクーンチャイルドfuncitons.php
ダッシュボード→外観→テーマフィルエディター→functions.php

PHPはサーバサイドの言語でHTMLやCSSはクライアントサイドのスクリプトです。

これはつまり、HTMLやCSSはサイトをまるごとダウンロードしてオフラインでネットを切った状態でも表示する事が可能ですが、お問い合わせフォームはサーバとのやり取りが必要なのでPHPでなければ実現できません。(PHPだけがサーバサイドの言語という訳ではない。Perlなどもサーバサイドの言語)

アクセスカンターなども分かりやすいです。

CSSやHTMLでは見た目だけなのでアクセスをカウントする事が出来ません。

PHPはサーバサイドの言語と書きましたが、これは自宅にLinux/Apache/MySQL/PHPをインストールすれば実現できますが、実際に運用するとなると管理が大変です。

そこで、殆どの人はワードプレスやPHPを使用するのにレンタルサーバを借りるとこになります。

そこで、最もお勧めのレンタルサーバですが、数多くのレンタルサーバを使ってきた筆者のおすすめはXserverです。

国内最安値と謡っていますが、その実力は本物でクレジットカードを使用したサーバ負荷の高いショッピングカートも通常のプランでも十分に動作する程です。

プログラミング言語であるPHPは言語仕様がひどい。将来性がないのか?

私は個人的な見解としてPHPはまだまだ需要がある言語だと思います。

最近はAIでPHPスクリプトを出力する事も多いですが、やはり基本的な使い方が分かったエンジニアが居ないと動かす事は出来ませんし、AIも完璧ではないのでやはりAIで作ったスクリプトを最終的にチェックする人も必要です。

先に何度か書いたように、汎用性や許容性の高さから誰でも習得しやすい言語でPHPの言語仕様がひどいと勘違いされがちですが、正しく使えばそんなことはないとおもいます。

因みに、私が学生でPHPを勉強始めたばかりの頃、本屋で初めて手に取ったのが独習シリーズです。

この独習シリーズはPerlのも持っていますが、本当に分かりやすいです。

例題や問題を解いていると自然とPHPが理解できるようになっています。

PHPの開発に必要なオブジェクト指向についてもきちんと記述されているので、PHP言語について勉強したい方やPHPプログラマーを目指すならおすすめの書籍です。

PHP言語はちゃんと理解しないとセキュリティ的に脆弱!注意点も

型の汎用性が高く、これがしばしばエラーの原因になったりもします。

ただエラーが出て表示されない位ならまだいいのですが、やり方によってはサイトのDBを全て消去されたり盗まれる。(保存された個人情報が盗まれる)

または、XSSの脆弱性により意図しない動作を埋め込まれる。(意図しないウイルスが仕込まれた別のサイトにリロードされたりとか)

// 意図しないサイトに勝手に飛ばされる
https:// jpprepper.com?user=<script>window.location.href('転送先URL');</script>

<?php 
// 表示する部分はHTMLをエスケープする
echo $hoge = htmlspecialchars("hogehoge,fugafuga", ENT_QUOTES, 'UTF-8'); 
?>

<?php 
// エスケープせずに単に変数の内容を表示した場合
echo $hoge; 
?>

上記の様に一見エラーではない処理も一歩間違えれば財産を失いかねない重大なミスにつながりかねないという事を覚えておいてください。

PHPを使うときに必要になる言語一覧は?

先に書いた通り、PHPだけでウェブサイトが作れる訳ではありません。

ウェブサイトを動かすにはPHP言語以外にも様々な言語が相互作用をして動いています。

絵本で例えるならHTMLやCSSがなければ文字だけで絵も装飾も無い小説のようなサイトになってしまいますが、PHPを使えば絵本に問い合わせフォームを付けてユーザーとコンタクトする事が出来ます。

更に、JavaScriptを使えば飛び出すような絵本を作る事が出来ます。

これらの言語を一人でコツコツ勉強するのは本当に大変ですので、基礎は自分である程度の事を学び後はスクールを使って効率的に学習する方法をおすすめします。

  • HTML/CSS
    サイトの見た目を整える為の言語。SEOに強いサイトを作る。
  • PHP
    サーバサイドの言語で、ショッピングカートやお問い合わせフォーム・アクセスカウンターなどの処理をする。
  • JavaScript
    文字をじわっと表示させたり、動かしたりとウェブサイトに様々な動作を加える事が出来る。

PHPがプログラミング言語じゃない?特徴や将来性を考察まとめ

最後にPHPがプログラミング言語じゃないという噂についてまとめます。

PHPはサーバサイドで動く言語であるのがHTMLやCSS、Javascriptにはない特徴です。

将来性はプログラミング自体はAIにとってかわられるかもしれませんが、AIに命令を伝える人や最終的なチェック要因が必要ですので、PHPプログラマが直ぐになくなるとは思えません。

2024年現在も実際ウェブプログラマーの求人はかなり多いようです。

PHP言語だけ習得してもそれ単体で使用する事はまずありませんので、並行してHTML,CSS,Javascriptの勉強が必要になります。

使用する環境やツール等の設定を始め、これらを独学で勉強するのはなかなかハードルが高いのでスクールを利用したり転職してプログラマーを未経験からスタートするのが第一歩です。

コメント

タイトルとURLをコピーしました