PHPのクラスで質問です。


PHPプログラムでクラスを組むに当たってプログラムに出てくるこの 

-> 矢印みたいなものですが

これってどういう意味があるのでしょうか?

-> と => の違いも曖昧でわかりません。

代入の事かと最初は思ったのですが何か色々ありそうなのですが

この ->  と => の矢印が出てくるケースを全て把握したいのですが

この 矢印 について知っていることがあったら教えてください。

よろしくお願いします。

また別になってしまうのですが、

クラスとSMARTY,ライブラリとPear、フレームワークが頭の中でごちゃごちゃになっています。
これらを分かりやすく初心者の私でも分かるように教えていただいてよろしいでしょうか?。

実際の職場の現場ではこのように使われていると教えていただくとイメージがしやすいです。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2008/09/23 02:22:37
  • 終了:2008/09/30 02:25:02

ベストアンサー

id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/09/23 07:17:54

ポイント35pt

"->" はクラスに対して用いられ、

オブジェクト->メンバ変数

のように使います。


"=>" は配列に対して用いられ

添え字=>値

のように使います。foreach文とarray関数で使うことが多いです。

id:aiomock

ご回答ありがとうございます。とても勉強になります。

2008/09/23 10:00:47

その他の回答(2件)

id:backupper No.1

backupper回答回数95ベストアンサー獲得回数102008/09/23 04:50:55

ポイント35pt

->と=>にシンタックスの概念上の関連は全くありません。

=> は連想配列のキーと値を関連づける演算子で、->はクラスのインスタンスからメソッドを呼び出す演算子です。

連想配列の定義(=>)

$hash = array('Japan' => 'tokyo', 'USA' => 'Washington DC' 'Thai' => 'bangkok');

$hash['Japan'] #tokyo

メソッッドの呼び出し(->)

class AClass {
  function say($comment) {
    echo $comment . "¥n";
  }
}

$a = new AClass();
$a->say('hello world'); #hello world

このそれぞれ1パターン以外はありませんよ。

  1. クラスはOOPを実現する為のシンタックスに過ぎませんが、機能を汎用化するのに適しています。基本的にクラス単位でモジュール化され、それがライブラリとして利用できます。
  2. SMARTYはライブラリの一つです。
  3. PEARはPHPのライブラリアーカイブ(ライブラリを集めた所)で、pearコマンドを使って管理(インストール等)が出来る様になっています。
  4. フレームワークは共通処理の枠組みをパッケージ化した物で、ライブラリの観点から見ると、特定の処理の共通部分を一般化したライブラリの集合で、お互い連動する為に一つもの物として扱われます。

実際の職場での使い方ですが、上記の概念を指し示すとき以外の使い方はありません。それ以外は誤った使い方と言えます。

恐らく、上位概念と下位概念がこんがらがっているのだと思います。

PHPのテンプレートライブラリであるSMARTYはクラスで実装されており、WEBアプリケーションフレームワークのテンプレートとして利用される事が多いが、PEARライブラリではない。 >
みたいな文が成立するので、それぞれの意味をしっかり把握していないと分かりにくいですよね。
id:aiomock

ご回答ありがとうございます。とても勉強になります。

2008/09/23 10:00:43
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/09/23 07:17:54ここでベストアンサー

ポイント35pt

"->" はクラスに対して用いられ、

オブジェクト->メンバ変数

のように使います。


"=>" は配列に対して用いられ

添え字=>値

のように使います。foreach文とarray関数で使うことが多いです。

id:aiomock

ご回答ありがとうございます。とても勉強になります。

2008/09/23 10:00:47
id:masaboz No.3

masaboz回答回数122ベストアンサー獲得回数62008/09/24 16:56:30

ポイント10pt

1.Smarty

Smartyはライブラリというよりはテンプレートエンジンです。

PHPコードがロジックでSmartyはデザインです。

通常はPHPコードはHTMLタグの途中に<php?~?>のように埋め込んで画面表示をコントロールするが、

Smartyを使えば、PHPコードのロジック部分とデザイン部分を分離させて、

HTMLタグの途中に<php?~?>のようなPHPコードを埋め込む必要がなく、そのままSmartyの{$変数名}(専用のデリミタ)を埋め込んで

画面表示をコントロールすることができる。

しかし、Smartyは特別なインストールが必要になりますし、ほとんどのレンタルサーバ業者(さくらやロリポップなど)は

Smartyを使用することをサポート対象外としているため、自分でインストールする必要があります。

Smarty自体の需要が少ないからサポート対象外にしたと思います。それにしても、Webや書籍による解説が少ないのも現状です。

Smartyを使用すると慣れない限りはコードが複雑化になりやすいです。Smartyを使用するよりはCSSを使用して構築した方が

手っ取り早いかもしれません。また、SmartyはPHP版のCSSだと考えても良いと思います。


2.ライブラリ

ライブラリはPHPならPEARとPECLが代表的ですね。

前者はPHP言語で作成したライブラリで、後者は他言語であるC言語で作成したコードをPHP上で走らせるライブラリですね。

PerlならCPANが代表的です。もちろん、どの言語にもライブラリが存在します。

両者とも、あるプログラムを動かしたい時、面倒なコードを記述するよりも、ライブラリを用いることで、

面倒なコードを書く必要がなく、すぐプログラムが作れます。

ライブラリとは、目的のプログラムを動作するためのレディメード(既製品)のようなものだと考えてください。


3.クラス

例えるとテレビとリモコンですね。テレビを操作するために、リモコンが必要となる。テレビが対象物(オブジェクト)で、リモコンがクラス(Class)で、そのリモコンの各キー(電源ON/OFF、チャネル切替、ビデオ切替、音声大小、消音など)がメソッド(method)ですね。

テレビのスイッチを入れたいのなら、リモコンというClassを用いて、そのリモコンの各キーである電源ON/OFFというメソッドを使えばいいわけです。


4.フレームワーク

開発作業の効率を上げるためのソフトウェアです。PHPならZendやcake、symfonyが有名です。PHPプログラムを作成するのに、そのままコードを書かなければならないが、フレームワークを使えば、コードを書く必要がなく、GUIで操作する感じ。つまり、MySQLのコードをそのまま書くのではなく、直感的にExcelを使って値だけ入力すれば良いです。


=>とか->は上記の回答で十分だと思いますので省略します。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません