![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.1ベストアンサー
- 回答日時:
クラス・オブジェクトの概念について先に学んでください。
http://www.shigeweb.jp/php/project_p/?page=class …
回答1
オブジェクトを作るときに「必ず」実行しなければいけない処理がある場合、それはコンストラクタに書いたり、コンストラクタから呼び出したりします。
回答2
「それはそういうもの」として深入りしない方がいいように思います。C言語レベルでの記述を知ろうとすることはいいと思いますが、それ以前に「なぜ自動で実行できるのか不思議です」という疑問の本質が分かりません。それを言い出すと「PHPの型の自動変換ってC言語レベルでどう書いてるの?」「json_decode関数で一発でデコードできるけどどうなってるの?」などの疑問も無限に沸いてくることでしょう。
回答3
関数でも変数を保持することは出来ます。
「静的変数」
http://www.php.net/manual/ja/language.variables. …
しかし、これで出来ることには限度があります。
複数の関数(メソッド)間で1つの変数を共有しつつ保持したい場合、それはオブジェクトにしか出来ません。
私は実装例として静的変数を http://qiita.com/mpyw/items/c39b9ee695a5c2e74627 で利用していますが、正直1つの関数にまとめるにはこれぐらいの処理が限界だと思います。もっと処理を増やせばかなり見にくくなり、クラス化することが不可欠になるでしょう。
回答ありがとうございます
質問1と2は納得しました
質問3なのですがピンときません
>複数の関数(メソッド)間で1つの変数を共有しつつ保持
これがどうゆものかわかりません
10行くらいのコードで2つの違いを教えていただけると助かります
学習用の意味のないコードで結構です
関数でもグローバル変数を使えば同じことできるような気がして頭こんがらがっています
No.2
- 回答日時:
短いコードしか書いていない場合は、グローバル変数のデメリットになかなか気づかないかもしれません。
大きな規模のアプリを作る場合はグローバル変数なんか使ってたら弊害がありすぎてコーディングに苦労すると思います。
例えば、(普通はオートロードに任せてこんなことしませんが)
require_once('A.php');
require_once('B.php');
require_once('C.php');
として呼んでいるとして、A,B,Cともそれぞれ中でグローバル変数をバリバリ使っているとします。
「あれ・・・B.phpの中で$idって変数使ってたけどこれってA.phpの中にもあったっけ・・・影響ないのかな・・・」
とか思ったりしませんか?このように変数名が競合したりする問題を引き起こすのがグローバル変数です。PHP5.3から利用可能な「名前空間」を使えばこの問題は解消することが出来ますが、名前空間に甘んじてグローバル変数を多用するならば本末転倒です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- その他(プログラミング・Web制作) このpythonコードの意味教えて下さい! 2 2022/08/26 00:52
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入れ子になっているHTMLタグも...
-
PHPのif文でその処理を途中で抜...
-
インスタンス化に伴うメモリ消...
-
DBへの書き込みとメール送信を...
-
javascriptの値をPHPへ渡したい
-
PHPExcel処理速度が遅い
-
PHP内、ボタン押下と同時にリロ...
-
PHPが処理を途中でやめる。原因...
-
ページの一部だけリロード
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
パースエラーとは?
-
PHPでネットワークドライブのop...
-
CFileDialogの最初のディレクト...
-
[php初心者]サイトを見てデータ...
-
PHP session_destroyとsession...
-
VBSの「MsgBox」について
-
PHPからMSSQLへの接続結果の文...
-
存在しないメールアドレスかど...
-
i18n_convert と mb_convert_e...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPが処理を途中でやめる。原因...
-
phpの処理中に画面表示ををする...
-
関数の前にアットマークが付く場合
-
PHPで偶数と奇数を判断するには
-
symfonyのCriteriaで実行すると...
-
System関数で変数を受け渡す方法
-
条件演算子
-
入れ子になっているHTMLタグも...
-
文字列の10+10を20と表示したい
-
インスタンス化に伴うメモリ消...
-
PHPExcel処理速度が遅い
-
ページの一部だけリロード
-
携帯サイトの構築について
-
JSPでevalを使いたい
-
PHP内、ボタン押下と同時にリロ...
-
◆バックエンド処理の終了を知り...
-
csvファイルの読込みとソート
-
Cronで同じ処理を複数同時に実...
-
mysql データベース処理が途中...
おすすめ情報