PHPを学ぼう!

▼PHPを学ぶチャプターです。


PHPプログラマ 緊急募集!

 

素材メニュー

 ◆Chapter 1

 ◆Chapter 2

 ◆Chapter 3

 ◆Chapter 4

 

制作ヒント

 ◆制作のヒント

 

レッスンメニュー

 ◆Chapter2 練習問題

 ◆Chapter3 DB練習問題

 

サイト運営者がPHPを学んだ
お勧めの書籍です!
これ一冊で基本的なPHPの仕組み、簡単なプログラムの作成、SQLiteを使ったデータベースなどかなり学べる要素が詰まっています!

↓↓↓ ↓↓↓

PHPレッスンブック―PHP5対応

新品価格
¥2,520から
(2013/2/24 04:38時点)

 

 

サイバーテロの技法について書かれた書籍です!
ハッカーの手法を知ることでご自身のサイトがハッカーに攻撃されたときそれを防ぐ手法を紹介しています。

↓↓↓ ↓↓↓

PHPサイバーテロの技法―攻撃と防御の実際

新品価格
¥1,890から
(2013/11/5 10:09時点)

 

 

★初年度100円! サブドメインやメールアカウントを無制限に設置できます。
PHPやCGIは勿論、WordPress、Movable Type Open Source、掲示板、ブログ、ショッピングサイトなどが簡単に導入できるので複数サイトを運営したい場合に便利なサービスです。

↓↓↓ ↓↓↓

 

PHPが動作するサーバー

 

はじめてのHP | 無料素材 | タグ辞典 | CSSガイドEX | PHPを学ぼう!

◆Chapter 2 - グローバル変数

これまで説明してきた変数については、もうご理解していただけてることでしょう。
変数は、そのページ内で利用するには問題ありませんが、カスタマイズ関数内で利用するとなると利用したい変数を読み込めるように設定する必要があります。
例えば次のようなカスタマイズ関数の場合、

<?php
  $hoge = "おら孫悟空だぁ~";
  function TestWrite(){
    echo $hoge;
  }
  TestWrite();
?>

エラーになります。
カスタマイズ関数からすれば、 関数の外にある $hoge の変数は外部のものと認識されるのです。
その為、関数内で設定された $hoge の変数とは別物の取り扱いになるで結果、$hoge は設定されていないうえ書き出そうとしているのでエラーになります。
以下のようにすると、問題なく文字を表示します。

<?php
  $hoge = "おら孫悟空だぁ~";
  function TestWrite($hoge){
    echo $hoge;
  }
  TestWrite($hoge);
?>

表示結果は、

おら孫悟空だぁ~

となります。
ちょっとわかり難いでしょうか・・・。
次のようにカスタマイズ関数の変数を変更してみるとわかり易いかもしれません。

<?php
  $hoge = "おら孫悟空だぁ~";
  function TestWrite($str){
    echo $str;
  }
  TestWrite($hoge);
?>

 

ちなみにカスタマイズ関数内で設定し、実行した場合には変数は設定されます。

<?php
  function TestWrite2(){
    $hoge = "おら孫悟空だぁ~";
    echo $hoge;
  }
  TestWrite2();
?>

 

PHPには、グローバル変数というものが用意されています。
次のコードの場合、書き出しがエラーになるのは理解できますね。

<?php
  $hoge = "おら孫悟空だぁ~";
  function TestWrite3(){
    echo $hoge;
  }
  TestWrite3();
?>

 

このカスタマイズ関数内に1行追加することで問題なく動作させることができます。

<?php
  $hoge = "おら孫悟空だぁ~";
  function TestWrite3(){
    global $hoge;
    echo $hoge;
  }
  TestWrite3();
?>

変数の前に "global宣言" とすることで、関数内側・外側関係なく利用することができます。

global $hoge;

しかし、グローバル変数の利用は余り推奨されていません。
その理由は、グローバル変数を多用することで後で何を設定したかわからなくなってしまいプログラムの修正で混乱してしまう恐れがあるからです。

 

グロバール変数に似たもので、スーパーグローバル変数というものがあります。
スーパーグローバル変数とは、あらかじめ用意されている変数のことです。
その特徴は、関数の内側・外側問わず、 "global宣言" なしに利用することができます。
サーバーとクライアント間のデータのやり取りに関して重要な役割を担っています。

 

前章でも説明しました "$_POST" や "$_GET" も、スーパーグローバル変数の仲間です。
"$_" がついた変数がスーパーグローバル変数だと思うとよいでしょう。

 

スーパーグローバル変数には、以下のものがあります。

変数名

説 明

$_GET, $_POST

ユーザーがブラウザから入力した情報

$_SESSION

セッション管理、複数のページ間の情報共有に用いられる変数

$_COOKIE

クッキーを管理するための変数

$_FILES

ファイルを管理するための変数

$_SERVER

スクリプト実行時のサーバー環境の管理

$_ENV

環境変数の管理

$_REQUEST

クライアントから入力された変数の一括管理。
$_GET、$_POST、$_COOKIE、$_FILESの値を持つ。

$GLOBALS

スクリプトで扱う全てのグローバル変数を管理
(アンダースコア(_)がない点に注意!)

 

各スーパーグローバル変数の解説につきましては、随時適所で紹介していきます。

 

 

練習問題

 

 

 

 

 

 

 

 

 

 

 

 

 

ex-mode.net | ツールEX | 素材EX | アフィモール | 初級者向 初めてのホームページ作り | Htmlタグ辞典 | 初めてのプランター菜園 | リンク・ボード
気のみ気のままなブログ | CSSガイドEX | ホビ★コレ | 班長日記!

▲UP

Copyright (C) ex-mode.net 2017. All Rights Reserved.