質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Zend Framework

Zend Frameworkは、PHP5で記述されたWebアプリケーションフレームワークです。Zend Frameworkには守らなければならない開発の規定というものは存在せず、MVCなどの複数のコンポーネントを提供しています。

PHPUnit

PHPUnitは、PHP向けのユニット・テスト向けフレームワークで、手動では手間のかかるテスト作業を自動化し、繰り返し実行することが可能です。

Q&A

解決済

1回答

2654閲覧

ソースコードの意味が理解できない

fgfnabwym

総合スコア78

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Zend Framework

Zend Frameworkは、PHP5で記述されたWebアプリケーションフレームワークです。Zend Frameworkには守らなければならない開発の規定というものは存在せず、MVCなどの複数のコンポーネントを提供しています。

PHPUnit

PHPUnitは、PHP向けのユニット・テスト向けフレームワークで、手動では手間のかかるテスト作業を自動化し、繰り返し実行することが可能です。

0グッド

0クリップ

投稿2015/08/02 12:22

ソースコードの意味が理解できません。
メソッド名やソースコードの一部をそのまま検索したのですが、いまいち分かりません。
一か所ではなく複数ヶ所あります。

1の$this->bootstrap = array($this, 'appBootstrap');なんですが、arrayを使って$this配列にデータを代入しているということで合っていますか。

2 $this->frontController
3 ->registerPlugin(new Bugapp_Plugin_Initialize('development'));ですが、3の ->registerPlugin(new Bugapp_Plugin_Initialize('development'));の先頭にthisを付けないのはなぜですか。$this->frontController->registerPlugin(new Bugapp_Plugin_Initialize('development'));を見やすく改行しているだけですか。
registerPlugin()メソッドを使い、プラグインのオブジェクトを作成して登録ということらしいですが、Bugapp_Plugin_Initializeクラスのdevelopmentという名前のオブジェクトを作成ということで合っていますか。

以上の3点を教えて下さい。
よろしくお願いします。

php

1 public function setUp() 2 { 31 $this->bootstrap = array($this, 'appBootstrap'); 4 parent::setUp(); 5 } 6 7 public function appBootstrap() 8 { 92 $this->frontController 103 ->registerPlugin(new Bugapp_Plugin_Initialize('development')); 11 } 12 13

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1の$this->bootstrap = array($this, 'appBootstrap');なんですが、arrayを使って$this配列にデータを代入しているということで合っていますか。

一つ一つ分解して考えましょう。
まず$thisはそのクラス自身を指します。自分自身です。
$this->bootstrap
になると自分自身が持つbootstrapという変数を指していることになります。
$this->bootstrap = array($this, 'appBootstrap');
になると自分自身が持っているbootstrapに配列を代入しています。
array($this,'appBootstrap');
は配列の0番目の要素に自分自身、1番目に'appBootstrap'の文字列を代入しています。
※配列は左から、0番目・1番目と2番目、、、と数えます。

3の ->registerPlugin(new Bugapp_Plugin_Initialize('development'));の先頭にthisを付けないのはなぜですか。

これは見やすくするために改行をしているだけです。

registerPlugin()メソッドを使い、プラグインのオブジェクトを作成して登録ということらしいですが、Bugapp_Plugin_Initializeクラスのdevelopmentという名前のオブジェクトを作成ということで合っていますか。

new演算子でオブジェクトを生成すると同時に、コンストラクタで初期化を行っています。
初期化の処理を行う関数のことを「コンストラクタ」と呼びます。(厳密に言うと関数ではないですが、似たようなものと考えてください。)
ここではBugapp_Plugin_Initializeの初期化処理に対して'development'という文字列を渡しています。Bugapp_Plugin_Initializeは受け取った'development'文字列を利用して初期化をします。
参考:PHP コンストラクタ

恐らくクラスの仕組みが完全に理解できていないので混乱されているのだと思います。
クラスとオブジェクト指向について下記ページで復習してみてください。
PHP クラス

投稿2015/08/03 14:05

ShoheiTai

総合スコア897

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fgfnabwym

2015/08/06 15:17

ShoheiTaiさん、回答ありがとうございました。 詳しく、また分かりやすく教えてくださり、助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問