電子書籍の厳選無料作品が豊富!

php素人です

アロー演算子についてわかりやすく教えてください
クラスとか使ったことありませんのでアロー演算子をみるとパソコンの前から逃げ出したくなります



質問1
アロー演算子を使うときはクラス内の変数などにアクセスするときだけですか?(普通はclassを使わない場合、アロー演算子は使わないのですか?)

質問2
他のファイルから呼び出す場合はrequire_onceなどをつかってからアロー演算子でよびだすのですか?

質問3
PDOもrequire_onceなどで呼び出してからつかってるのですか?

質問4
下記のようにclassを定義する前にnewでオブジェクトを出現させても大丈夫なんですか?

質問5
アロー演算子とはクラスから変数や関数を使うためのものですか?下記の場合、
$hoge変数にclass numberdayoの処理が詰まっているってことでしょうか?


$hoge = new numberdayo();
$hoge ->number = 2;
$hoge ->numberdayo();

class numberdayo{
public $number;

function numberdayo(){
print($this -> number);
}

}


質問6
別の質問ですが、classをつかってない単なる関数functionは定義する前に呼び出せますか?

hoge();
function hoge(){
print("関数");
}


よろしくお願いします

A 回答 (1件)

回答1



クラスのプロパティ・メソッドへの静的アクセス 「::」
HogeClass::$hoge;
HogeClass::hoge();

オブジェクト(クラスのインスタンス)のプロパティ・メソッドへの動的アクセス 「->」
$obj = new HogeClass;
$obj->hoge;
$obj->hoge();

回答2

他のファイルにクラスが定義されている場合はrequire_onceでの呼び出しが必要です。
オートローディングという手法もあります。
http://php.net/manual/ja/language.oop5.autoload. …

回答3

PDOクラスはC言語レベルでコーディングされたエクステンションです。
コードが読み込まれる前にすでに使える状態となっています。

回答4・回答6

ifブロックの中で定義されている場合を除き、後ろに定義を書いていても前で使うことが出来ます。
ただし分かりにくくなるのでお勧めはしません。

回答5

>> 変数や関数

「プロパティやメソッド」が正しい呼び名です。

>> $hoge変数にclass numberdayoの処理が詰まっているってことでしょうか?

「static」とついているもの以外の内容が詰まっています。
それらには「->」でアクセスできます。
「static」なものに関しては回答1で述べたようにクラス名に対して直接「::」でアクセスします。

なお

>> function numberdayo() {
>>  print($this->number);
>> }

よりも

public function numberdayo() {
 print($this->number);
}

とちゃんと「public」を頭につけたほうが望ましいでしょう。
省略はもちろん「public」を意味するんですが。
またクラス構成として、インスタンスを作った後に$numberを外部から変更されたくなければ

class numberdayo {
 private $number;
 public function __construct($number) {
  $this->number = $number;
 }
 public function numberdayo() {
  print($this->number);
 }
}

$hoge = new numberdayo(2);
$hoge->numberdayo();

として「コンストラクタ」で代入を行い、プロパティ自体は「private」にして外部からのアクセスを遮断するのがポイントになります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
一歩前にすすめました

お礼日時:2013/10/01 14:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!