![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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("関数");
}
よろしくお願いします
No.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」にして外部からのアクセスを遮断するのがポイントになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ここで言う「アロー演算子」の役割を教えてください。 1 2022/03/26 02:38
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- SQL Server SQLについて質問です。 a表がありその表には従業員名を保存するname列があります。 LIKE演算 1 2022/05/17 17:49
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- 心理学 心理学のカテゴリーで割り算の質問というのも変なのかもしれませんが数学的な関心ではないので、心理学にし 1 2022/07/24 10:08
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- JavaScript javascriptで文字挿入でtoggleみたいなのはありますか? 2 2023/02/14 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETからVBAマクロ(引数)を呼...
-
protectedなのにアクセスできな...
-
PHPで文字列内に指定した文字が...
-
PHPでの画像の形式の変換
-
regsiter_globalsがoffの場合の...
-
VBA コレクションに2次元配列...
-
PHP☆ /test/ 配下に値があれば...
-
エラーの理由が分りません。Pri...
-
Dosブロンプトでtabを出力したい
-
【C#】DataGridViewの最大列数...
-
DTOとEntityの差は何ですか。
-
「取得先」という表現について
-
TreeViewのChild Node
-
phpでcookieがうまく保存されない
-
IPアドレスとMACアドレスを取得...
-
wordの差し込み印刷で文字...
-
Windowsのマクロプログラムで、...
-
Excel VBA:特定の文字列以降(...
-
VBA内でのGetPixelを使用した時...
-
VB or VBScriptでPCの製造番号...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
VB.NETからVBAマクロ(引数)を呼...
-
classの再定義エラーについて
-
VB6のコンボボックスのテキスト...
-
可変変数にアロー演算子を使いたい
-
PHPでの画像の形式の変換
-
VB.NETSystem.Xml 要素数を得る...
-
protectedなのにアクセスできな...
-
issetで変数の存在をチェックし...
-
vb作成したらでbeep音が鳴りま...
-
どういうプログラムを関数化を...
-
PHPの名前空間インポートについて
-
エラーの理由が分りません。Pri...
-
関数から関数を呼び出したとき...
-
PHP、ヒアドキュメント内でのIF...
-
protectedなのにアクセスできな...
-
PHPの変数値をリンクさせたい
-
関数の動きと記述方法の意味を...
-
アロー演算子について
-
PHPプログラム上で「URLを直接...
おすすめ情報