サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やる気の出し方
www.shigeweb.jp
型 ここまでのサンプルで、「"HODENASU"」等の「文字列」や「2」等の「数値」、『「true」と「false」』の「真偽値」が登場しました。これらはいずれも具体的な「値」ですが、種類が違います。この、種類の違いは、「型」と呼ばれるものの違いです。 型とは 「"HODENASU"」は「文字列」であり、「2」は「数値」、『「true」と「false」』は「真偽値」です。で、プログラムの中では、文字列は文字列として扱われ、数値は数値として扱われ、真偽値は真偽値として扱われます。文字列が文字列として扱われるには、その値が文字列であると認識されていなければならないわけで。まず、以前書いたサンプルを見ると、「echo " <em>hello,HODENASU!!</em>";」という一文があります。この中の「" <em>hello,HODENASU!!</em>"」の部分は「文字列」だと見れ
イテレーション イテレータ/「Iterator」インターフェイス 配列やオブジェクトのプロパティは、「foreach文」によって反復(イテレーション)して走査する事が出来ましたが、これは「foreach文」が“「コレクション」を走査する機能”を持っていたからです。一方「for文」や「while文」は同じ反復文であってもそのような機能を持たないため走査が出来ません。「コレクション」とは、配列やオブジェクト(のプロパティ)の様な、“要素の集まりを持つ構造体”の事です。 “走査する機能”の具体的な内容は、配列の内部ポインタ(現在配列の何処を指しているかを示すもの)の移動や、ポインタが指す要素の有効性(ポインタが指す位置に要素があるか否か)のチェック等です。「foreach文」で配列を走査しようとすると、まずポインタが先頭要素を指すように初期化し、ループが開始されます。ループごとに現在ポインタが指
コンストラクタとデストラクタ デストラクタって・・・何??? 「コンストラクタ」は“オブジェクトの生成時に自動的にコールされる特殊なメンバ関数”でした。これはPHP4にもありましたが、PHP5になって「デストラクタ」という愉快な仲間が新登場しました。で、「デストラクタ」は“オブジェクトが消滅する時に自動的にコールされる特殊なメンバ関数”です。 PHP5式コンストラクタ/デストラクタ PHP4では、クラス名と同じ名前のメンバ関数を定義すると、それが「コンストラクタ」になりました。PHP5でも、互換性のためにPHP4と同様にして「コンストラクタ」をつくれますが、“PHP5式”では「__construct()(アンダーライン2本で始まる)」が「コンストラクタ」となり、また「__destruct()(アンダーライン2本で始まる)」が「デストラクタ」になります。 ちなみに、“PHP4式”のコンストラ
オブジェクト引数のクラス指定 関数もしくはクラスのメンバ関数が要求する引数がオブジェクトである場合、関数の定義時に引数の型にクラス名を指定すると、指定したクラスのインスタンスであるかをチェックし、問題がある時点で「E_ERROR」エラーを発生するようになります。以下のサンプルと結果をご覧下さい。 <pre> <?php class ANIMAL{} class CAT extends ANIMAL{} class DOG extends ANIMAL{} class MACHINE{} function animal_func(ANIMAL $obj){ echo '$obj must be an instance of \'ANIMAL\'.', "\n"; echo '$obj is an instance of \'', get_class($obj), "'.\n\n"; } fu
インターフェイス “インターフェイス(interface)”とは? “インターフェイス(もしくはインタフェース)(interface)”という言葉は、直訳すると“境界面”になります。一般的にこの“境界面”は物(もの)と人の間にあるもので、物が人に対して提供するコミュニケートの手段の事です。相変わらず意味が解かりません。 ある物がある機能を持っていて、その機能を使うかどうかの決定権を人間様に委ねる場合、人間様は物がその機能を持っている事を知っている必要があります。が、その機能がどういった仕組みでその機能を実現しているかまでは知る必要がありません。物は人間様に、自分がある機能を備えているという事実を知らせ、実行手段を提供するだけでいいのです。で、この、物が人間様に機能の存在を知らせると共に提供する実行手段が“インターフェイス”です。人が物の機能を使う時、必要な知識は機能の名前と意味だけです。人
クラス クラスとは 「クラス」は、『「メンバ変数(プロパティ)」という変数と「メンバ関数(メソッド)」という関数を内部に持つ』という特殊な構造をした、「オブジェクト型」の値、「オブジェクト」の構造を定義するものです。“論よりコード”ということで、まずは以下のサンプルと結果を見て雰囲気を掴んで下さい。 <?php class HODE{ var $dog = "wan"; var $cat = "nyan"; var $cow = "mou"; function func(){ echo "HODENASU!!!"; } } $obj = new HODE(); echo $obj->cat; echo "<hr />"; $obj->func(); ?> nyan HODENASU!!! まず、「class HODE{ 定義 }」の部分で、「HODE」という名の「クラス」を定義しています。
抽象メソッド/抽象クラス abstract修飾子 クラス定義時の、メソッドを定義する時に、メソッドの中身(処理部)を書かない方法があります。これはメソッドの名前を宣言するだけで、不完全な定義です。この不完全なメソッドを「抽象メソッド」と言い「abstract修飾子」で宣言します。 「抽象メソッド」を含むクラスは、必然的に「抽象クラス」となります。「抽象メソッド」を含まないクラスでも、クラスを「abstract修飾子」で宣言すると、「抽象クラス」となります。「抽象メソッド」を含むクラスは必然的に「抽象クラス」となるのですが、必ずクラスを「abstract修飾子」で宣言しなければいけなくなります。「抽象メソッド」を含むクラスを「アブストラクト」に宣言しないと「E_ERROR」エラーを発します。 「抽象メソッド」は、処理部を備えない不完全なメソッドなので、必ず処理部を実装しなければなりません。派
スタティックメンバ/クラス定数 インスタンスメンバとクラスメンバ/スタティック(静的)メンバ PHP4では、「::演算子(コロン2個)」を使う事で、クラスのインスタンスを生成しなくても、静的にクラスのメンバ関数(この場合「クラス関数」と言う)をコールすることが出来ました。また、メンバ変数の参照は出来ず、静的にコールするクラス関数内でメンバ変数を参照する事も出来ませんでした(これは、メンバ変数を参照するために「変数$this(オブジェクト自身へのリファレンス)」を使用する必要があるが、静的にコールする場合はオブジェクトが存在しない為)。 PHP5では、ちょっとした小細工をする事でメンバ変数の参照が出来るようになります。 メンバ変数を静的に参照する場合は、そのメンバ変数の定義時に、アクセス制限修飾子とは別に「static修飾子」を付与してやります。また、この「スタティック修飾子」はメンバ関数に
例外処理 例外処理ってなに? 「例外処理」というのは、「例外」が投げられた場合の処理の事です。わけが解かりませんね。まず「例外」って何なのか?大雑把に言うと「エラー(問題)」の事です。通常は、エラーが発生したら「エラーですねちゃんちゃん」とそこで処理を中断するか何事も無かったかのようにスルーしてしまう所を、「例外処理」では、実行中にエラーが発生した場合の処理を記述しておいて、エラーが発生した場合でも処理の中断はせず、発生したエラーを「例外」として“投げ”、記述しておいた“エラー発生時の処理”を実行します。この“エラー発生時の処理”が「例外処理」であり、これを実現するのが「例外処理機能」です。この説明で理解できたら天才ですね(何)。 要するに、何か問題が発生した場合に“エラーですから!切腹!”するのではなく、“エラーみたいですよ”と報告し、その報告を受け取って何かしらの処置をするのが「例外処
リフレクション PHP5になって、「リバースエンジニアリング(ここでは“スクリプトを解析する行為”を指す)」を行う為の機能、「リフレクション」が搭載されました。 「リフレクション」によって、関数やクラス、メソッド等を解析する事が出来ます。例えば、指定したクラスの構造(継承するクラス名や実装するインターフェイス名、備えるプロパティやメソッド等に関する情報)の出力、指定したインターフェイスを実装するか等のチェック、備えるメソッド名等の取得が行えます。 リフレクタ/「Reflector」インターフェイス/「Reflection」クラス スクリプトの解析は、関数なら関数用に、クラスならクラス用に定義されたクラス、各種用「リフレクタ」を使用して行います。 「リフレクション」に関係するインターフェイス・クラスは、以下のような継承関係で定義されています。 Exception | +--- Reflect
変数 へ、変数ぅ?? 変数とは何ぞや。前回の「PHPとは」のページで記したサンプル内の「echo " <em>hello,HODENASU!!</em>";」は、「『<em>hello,HODENASU!!</em>』と出力しろ。」という命令であると書きましたが、これを分解すると、「echo」と「" <em>hello,HODENASU!!</em>"」と「;」の3つに分ける事が出来ます。これら3つが何なのかですが、 まず1つ目の「echo」は、「パラメータ(引数)に指定した文字列を出力する」という命令、PHPの言語構造です。 2つ目の「" <em>hello,HODENASU!!</em>"」は、「echo」のパラメータ。 3つ目の「;」は、「1つの文の終わりを告げるもの」です。 で、ここで問題になるのが2つ目の「パラメータ」です。今回のサンプルでは、パラメータに二重引用符「"(ダ
日付・時刻関数 関数一覧 checkdate() / date() / getdate() / gettimeofday() / gmdate() / gmmktime() / microtime() / mktime() / strtotime() / time() 機能一覧 タイムスタンプを得る / 日時を書式化する / 日時の妥当性をチェックする タイムスタンプを得る まず、「タイムスタンプ」とは「サーバ上での、1970年1月1日00時00分00秒 GMT からの経過秒数」を表す整数の事です。よって、「タイムスタンプを得る」という事は、「1970年1月1日00時00分00秒からの経過秒数を得る」という意味になります。 GMT(グリニッジ標準時)とは? 「time()」関数が返す「タイムスタンプ」は「1970年1月1日00時00分00秒 GMT からの経過秒数」ですが、この中の「GMT
演算子 演算子(オペレーター)とは 「演算子(オペレーター)」は、『演算の対象となる「被演算子(オペランド)」(関数の引数に当たるもの)を評価(計算する事)し、その結果を返す』という処理を行うものです。既に何度も登場している「代入演算子」の例で説明すると、「$hode = "HODENASU";」という一文の場合、演算子は真ん中の「=(イコール)」で、演算の対象となる被演算子は左辺の「変数$hode」と右辺の「"HODENASU"」という文字列です。 今回の「代入演算子」が行う処理は、「左辺(第1オペランド)の“値を格納できるもの(変数)”に右辺(第2オペランド)の値を代入し、代入した値を返す」というものです。これを踏まえて以下のサンプルと結果をご覧下さい。 <html> <body> <?php $nasu = $hode = "HODENASU"; echo $hode."<hr />
関数ミニリファレンス PHPには、予め1000以上もの関数が用意されています。このらずもねー数の関数によって、面倒な所は意識する事無く容易にスクリプティングが出来るようになっています。 ここでは、最低覚えておいた方が良いであろう関数の、サンプルを交えたリファレンスを書いています。 目次 はじめに 日付・時刻関数 文字列関数 マルチバイト文字列関数 配列関数 ファイルシステム関数 その他の関数(割と重要) PHPオプションと情報に関する関数 変数用の関数 PageTop
マルチバイト文字列関数 関数一覧 mb_convert_encoding() / mb_convert_variables() / mb_strimwidth() / mb_strlen() / mb_strpos() / mb_strrpos() / mb_strwidth() / mb_substr() / mb_substr_count() 機能一覧 文字エンコーディングを変換する / 指定した幅に文字列を丸める/文字列の幅を得る / 文字列の長さを得る / 文字列A内の文字列Bの有無と位置を調べる / 文字列の一部を得る / 部分文字列の出現回数を得る 文字エンコーディングを変換する mb_convert_encoding()関数 string mb_convert_encoding(string 文字列, string 変換後エンコード[, mixed 変換前エンコード]) 「文
配列 配列って何なんですか? 配列はね、基本的に変数なんだよ 「配列」は基本的に変数なので、配列の名前は変数名を付ける様に付けます。 配列は好きなだけ値を格納出来るのです 通常の変数は、1つの値しか格納する事が出来ませんでした。変数のイメージは「文字列から数値やらなんやら何でもかんでも、その大きさにフィットするサイズになって1つだけ入れる事が出来る魔法の箱」でした。で、PHPの「配列」のイメージは、「この「魔法の箱」を抱えた「手」が無数に生えた千手観音様」です。 どういうことか?要するに、配列には無数の値を格納出来るという事です。では、配列を定義する方法を示したサンプルと結果を以下に。 <html> <body> <?php $animals = array(1 => "dog", 2 => "cat", 3 => "cow"); echo $animals."<hr />"; echo
特殊メソッド/オートロード PHPには、「__construct()」(コンストラクタ)や「__destruct()」(デストラクタ)の他にも、その名前で定義されたメソッドは“呼ばれ時”になると勝手にコールされるという「特殊メソッド」があります。また「特殊関数」があります。 何れも「__(アンダーライン2本)」で始まるメソッド名または関数名です。PHPでは「__(アンダーライン2本)」で始まるメソッド名または関数名を、“特殊な関数”として予約していて、「__(アンダーライン2本)」で始まる関数名を付けないよう推奨されているので、付けない様にしましょう。 これらの「特殊メソッド・関数」を定義する場合、“引数の数と返り値の型を決められた形態通りに定義”しなくてはなりません。そうしないと機能しないし、コールされる際に「E_ERROR」エラーを発するか、場合によってはサーバがダウンします。 特殊メ
PHPのインストールと設定 さっさどダウンロードしてぱっぱどインストールしてしまいすぺっさぁ。 まずはダウンロード まず、Windows用のPHPを下記のサイトの「Downloads」のページからダウンロードします。 ■PHP(PHPの本家サイト) 「Downloads」に行くと「Windows Binaries」という個所があるので、そこの 「PHP 4.*.* zip package(PHP4)」もしくは「PHP 5.*.* zip package(PHP5)」 というリンクをクリックして、色んな国旗が並んだページに飛び、その中からお好みの国旗の横にあるリンクをクリックします。すると、 「php-4.*.*-win32.zip(PHP4)」もしくは「php-5.*.*-win32.zip(PHP5)」 というファイルのダウンロードのダイアログが現れるので、見付け易いようにデスクトップに
配列関数 関数一覧 array() / array_chunk() / array_keys() / array_merge() / array_pad() / array_pop() / array_push() / array_reverse() / array_search() / array_shift() / array_unshift() / array_values() / arsort() / asort() / count() / each() / end() / in_array() / krsort() / ksort() / list() / natsort() / next() / prev() / reset() / rsort() / sort() 機能一覧 配列を生成する / ポインタが指す要素とキーを得る / 配列カーソル(ポインタ)の移動 / 複数の変数
プロジェクトP PHPと、関連する技術についてのページです。PHPは基本的にHTMLを生成させる目的で使うものなので、このページの内容を理解するには最低HTMLの基本を習得している必要があります。まだHTMLが解からないという方は、こちらのサイト辺りで習得する事をお勧めします。 【謝辞】 当ページの関数リファレンス等を作成するにあたっては、本家のマニュアルを参考にさせて頂きました。PHPマニュアルの作成に携わった方々へサイト上から感謝の意を表します。 目次 PHPの基本 プログラム未経験でも習得出来るように構成した(つもりの)、PHPで“何かが出来る”位のレベルになる事を目標としたPHP入門講座です。 PHPのインストール 自分のパソコンにPHPのテスト環境を構築する事を目的とした、Windows(Windows Me)への、ApacheサーバとPHPのインストール及び諸設定方法を解説する
変数2 ここでは、「変数」のページで解説し切れなかった、変数の残りの部分、「定義済みの変数」と「リファレンス」について解説します。 定義済みの変数 PHPでは、スクリプトにアクセスした時点で、幾つかの変数が自動的に定義されます。これらの変数は「スーパーグローバル変数」と呼ばれる連想配列で「$_SERVER['SERVER_NAME']」の様に格納されます。 この「スーパーグローバル変数」は、“スーパー”と言うだけあって、どこからでもアクセス出来ます。関数内からでも、グローバル変数を関数内で参照する際に使う「global修正子」を使うことなく参照出来ます。スーパーグローバル変数には、次の9つがあります。 $GLOBALS スクリプトのグローバルスコープの中で利用可能な全ての変数(「$_SERVER」等のスーパーグローバル変数も含む)へのリファレンス(下の方の「リファレンス」で解説)を格納。配
PHPの基本 ~ ほでなすでも解かるPHP講座 ~ このページは、最低限必要なPHPの基礎知識をマスターし、PHPで“何かが出来る”位のレベルになる事を目標とした入門講座です。 この講座は、HTMLの基本を理解している事を前提として執筆してあります。また、JavaScriptをちょっとだけ使える位のレベルであれば問題無いと思いますが、PHPはおろかプログラミング自体未経験な方でも理解出来るよう心掛けたつもりです。ちなみに、管理人自身のレベルが大学の時の「プログラミング入門」なる講義でHTMLを初めて使い、その後JavaScriptをちょっと嗜み、PHPも最近知って遊んでる程度ですので、びびらなくても大丈夫です。 【注意事項】 本講座は、PHPの全てを網羅する訳ではありません。また、管理人自身がPHPを完全に理解しているわけでもないので、思い付きや思い込みで記述した個所に重大な誤りがあるかも
「.htaccess」ファイルでの設定 「.htaccess」ファイルとは Apacheの設定ファイル「httpd.conf」やPHPの設定ファイル「php.ini」で色々設定しましたが、設定の変更を有効にするにはサーバを再起動する必要があり、契約中のサーバの設定をこれらで設定変更する事は出来ません。契約中のサーバの設定を行いたい時に使用する事が出来るのが「.htaccess」ファイルです。このファイルには、制限がありますがサーバの設定を書き加える事が出来ます。アクセス制限などにも使われます。 「てゆーか名前が変なんですけど。」 「.htaccess」というファイル名ですが、ファイル名というか拡張子しかありません。Windowsでこのような名前を付けるには「新規作成」→「テキスト文書」→「名前の変更」のような方法では付けられないので、適当な名前で作ったファイルを開いて「名前を付けて保存」で
続・PHPの基本::PHP5の基本 PHP4からPHP5になって、クラス・オブジェクト関係の仕様が大きく変更・機能強化され、また「例外処理」その他の機能が追加されました。 このページは「PHPの基本(PHP4対応のPHP基本講座)」のページの続編(PHP5の基本編)です。このページでは、PHP5で変更・追加された各種機能について解説しています。 目次 オブジェクトの代入 【clone()命令】 メンバのアクセス制限 【public、protected、private】 スタティックメンバ/クラス定数 【::演算子、static、self、parent、const】 コンストラクタとデストラクタ 【__construct()、__destruct()】 特殊メソッド/オートロード 【__*()メソッド、__autoload()関数】 オブジェクト引数のクラス指定 例外処理 【try、thro
次のページ
このページを最初にブックマークしてみませんか?
『【 shigeweb.jp 】 へようこそ!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く