人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPのクラスで質問です。

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

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

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

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

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

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

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

よろしくお願いします。

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

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

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

よろしくお願いします。

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:Pear PHP Smarty ちゃご イメージ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● backupper
●35ポイント

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

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

連想配列の定義(=>)

$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ライブラリではない。 >
みたいな文が成立するので、それぞれの意味をしっかり把握していないと分かりにくいですよね。
◎質問者からの返答

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


2 ● pahoo
●35ポイント ベストアンサー

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

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

のように使います。


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

添え字=>値

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

◎質問者からの返答

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


3 ● masaboz
●10ポイント

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を使って値だけ入力すれば良いです。


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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ