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

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

ただいまの
回答率

91.06%

  • PHP

    17237questions

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

アロー演算子、クラス、オブジェクトについて

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 195

raterate

score 6

アロー演算子、クラス、オブジェクトについて教えていただきたいです。

googleなどでいろいろ調べてみましたが、
自分が理解できるような回答は見つかりませんでした。

アロー演算子
→代入ではなく参照している?

クラス
→設計図?
( HTMLのCSSとの考え方は違う?)

オブジェクト
→HTMLでいうCSSのような役割を果たしているのか?
またインスタンスとも呼ばれている?

調べた内容は、
初心者でもわかるような回答ではなく、
ある程度の言葉等をわかっている状態での回答文でした。

上記言葉に対して教えてください。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • iwamoto_takaaki

    2018/01/04 16:44

    情報処理試験の勉強とかでしょうか?なんで調べることになったかによって応え方が違う気がします。

    キャンセル

回答 5

+4

素直に、本を買う、プログラミング講座を受けるなどの方法で、体系的な知識をつけることをおすすめします。

「クラス」や「オブジェクト」などはオブジェクト指向の基本となる概念ですので、このあたりをいい加減にしたまま先に進んでしまうと、あとあとまで影響することがあります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/04 15:21 編集

    教本を買っているのですが、意味は書いていなくて、
    接続するためにはこのような記述で接続!
    〜〜〜〜〜
    〜〜〜〜〜
    とずらずらーとしか書いていません。
    いきなり難しい言葉が出てくるので、前に進むことができない状況です。

    なんどもすいません。。

    キャンセル

  • 2018/01/04 15:22

    「習うより慣れろ」で、コードを書いて動くようにする中で感覚として身につけていく、という手段もなくはないですが、それが合うかは人によります。

    キャンセル

  • 2018/01/04 15:24

    わかりました。
    厳しいご指摘、誠にありがとうございます。

    キャンセル

  • 2018/01/04 15:26

    となると、その本自体が「他の分野のプログラミングをやっている人向けに、PHPだけ学ぶ」ような本だという可能性もあります。

    キャンセル

  • 2018/01/04 16:55

    maisumakunさんのように、
    phpだけ学ぶ本かもしれません。。。
    でも以後、気をつけながら参考書選びができそうです。
    ありがとうございます。

    キャンセル

+4

つきつめていくと概念の問題なので書いてある通り理解するしかないと思います
へんに説明しても余計わからなくなると思いますけどね・・・

うまく理解してもらえないかもしれませんが一応以下の通り

  • アロー演算子は「の(of)」です。

$a->bは$a「の」プロパティbを指します。
アロー演算子自体は参照でも代入でもなくあくまでも「の」でしかありません。

class hoge{
  function __construct(){
    $this->b=100;
  }
  function c(){
    return 300;
  }
}

$a=new hoge;
print $a->b;//参照
$a->b=200;//代入
print $a->b;//参照
print $a->c();//実行結果を参照
  • クラスは機能があつまったものです。

エクセルやワードなどアプリケーション的なものだと思えばよいでしょう。
私個人のイメージとしては自動販売機のような感じです。
自分はお金を入れてボタンをおすと、それに対応するものがでてくるし
正しい手続きをとらなければ、エラーがでたり、なにも起きなかったりします。

  • オブジェクトは「もの」です

上記例にあげたクラスhogeをうけた$aもオブジェクトの一つです
(この場合$aはインスタンスとなります)
オブジェクト自体は広義にも狭義にもいろんな意味をもちますので
全部ひっくるめても「(なんとなく)もの」と認識するしかありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/04 16:59

    yambe.jpさん
    いつもご回答誠にありがとうございます。

    コードについては、
    完璧に読めていないですが、
    記述していただき誠にありがとうございます。
    今後理解が深まったときに、読み直すことができそうです。

    >$a->bは$a「の」プロパティbを指します。
    >アロー演算子自体は参照でも代入でもなくあくまでも「の」でしかありません。
    →非常にわかりやすいです。勉強になります。

    >〜〜全部ひっくるめても「(なんとなく)もの」と認識するしかありません。
    →こちらも深く考えずに理解できそうです。


    前回質問した時のものと重なるのですが、
    【 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 】
    の読み方は、
    $dbhの内容で間違いがあれば、setAttribute属性を使用してエラーを出す。
    という読み方で良いのでしょうか?

    キャンセル

  • 2018/01/04 17:19

    > 【 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 】
    > の読み方

    DBへの接続情報のインスタンスである$dbhに対して
    setAttributeメソッドで、エラーモードに対して例外モードを設定している
    ・・・と考えるとよいでしょう。
    システム側(ライブラリ側)で用意されているメソッド名は大抵標準化されており
    setAttribute()はその名の通り「属性をセットする」メソッドだと容易に想像できる
    命名になっています

    キャンセル

  • 2018/01/04 18:53

    yambe.jpさん
    ご回答ありがとうございます。

    >>「例外モードを設定している」
    →意味がスッっと入ってきました。

    少しづつですが、理解ができている感じがします。
    毎回教えていただきありがとうございます。

    キャンセル

+4

オブジェクト指向とは概念が理解できないと、言葉だけ学んでも理解がすすみません。で、概念を理解しようとすると、ある程度のプログラミングができるか、プログラムを概念として捉えるスキルが必須となります。

カギは、オブジェクトの抽象化にあるんですが、その利便性や使用方法/パターンを理解するために、【経験が必要となるのです。

正直、片足がまだ初心者枠に入っているので、私も偉そうなことを言える状況ではないのですが、同じく結構な時間を悩んだので、記述しました。

多分一番の近道は、素の php である程度自在にコードが書けるくらいまでがんばり、その後、オブジェクト指向に関して、キチンと体系的に学び、さらに、フレームワーク等のきれいなプログラムを大量に読むことだと思います。

私は中途半端にいろいろ知識を仕入れたため、かなり遠回りしました。
がんばってください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/04 17:10

    te2jiさん
    とても貴重なご回答誠にありがとうございます。
    te2jiさんのおっしゃっている通りだと思います。
    自分は今自分がやりたいことに向かっているはずだと思いますが、
    今はそのやりたいことだけに必要な知識を勉強しております。
    (現段階では広く浅く)

    やはりどこかのタイミングで、
    ・時間をかけてじっくりやりこむ(経験を積む)
    ・一つ一つの考え方、概念を理解する
    を取り入れないといけないと感じました。

    貴重なアドバイスありがとうございます。

    キャンセル

+3

プロや指導者や苦労して理解した人たちの分かりやすい解説がたくさん溢れる中、それを読んでもわからない人にここでわかりやすく説明するのは至難の業です。
ですので別の方法をお勧めします。

一緒に勉強する初心者の仲間を見つけてください。
そして同じ教材で同じところを顔突き合わせて勉強しましょう。
これで余程のことがない限りマスターできるはずです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/04 16:54

    ご回答ありがとうございます。

    キャンセル

checkベストアンサー

+2

アロー演算子
→代入ではなく参照している?

これはインスタンスのメンバーを表現するための「書き方」です。
単なる文法だと思って覚えてください。
たとえば$cat->colorという書き方は「$catという変数に入っているインスタンスのcolorというメンバー」という意味です。

クラス
→設計図?
( HTMLのCSSとの考え方は違う?) 

はい。インスタンスの設計図のようなものです。
PHPのクラスは、HTMLに出てくるclass属性やCSSとは全く関係ない概念です。

オブジェクト
→HTMLでいうCSSのような役割を果たしているのか?

いいえ、CSSとは全く異なります。
オブジェクトは非常に広い意味を持つ単語であり「こういう意味だ」と断言はできません。
しかしPHPのオブジェクト指向入門という文脈では、インスタンスと同じ意味の単語だと思っておけばほぼ間違いありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/04 16:53

    ku__ra__geさん
    非常にわかりやすい回答誠にありがとうございます。
    これで文法を読むことやある程度の意味を理解しながら
    進めていけそうです。ありがとうございます。

    キャンセル

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

  • ただいまの回答率 91.06%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    17237questions

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