- 754 名前:デフォルトの名無しさん mailto:sage [2023/10/15(日) 16:52:25.37 ID:BnU34f5b0.net]
- >>752
> ユーザー定義関数群を取りまとめたファイルを都度includeで読み込んで各ページで使ってます。これで事足りていてこの方式とクラスの違いが理解出来ていないという。 その方法でも間違いではないし、問題ない。 ただ(勘違いしてる馬鹿が多いが実は)クラスベースのオブジェクト指向と それ以前の(つまり今751がやってる)手法は連続的に繋がっていて、 そのまま進んでいけば自然とクラスベースのオブジェクト指向に辿り着くものなんだよ。 だから(本来は)わざわざ別に学ぶものでもない。 今現在の「クラス」はC++が定義したものであり、 C++の目的は「Cの糞コードを出来るだけ改変せずに何とかする」事だったから、当然なのだが。 そして > ユーザー定義関数群を取りまとめたファイルを都度includeで読み込んで が実はCの手法そのまんまで、大規模になるとこれが問題となったので「クラス」を導入しただけ。 「クラス」の意味を初心者が理解出来ないのは、使用方法が多岐に渡る為だ。 だから実態を掴みにくい。 だから逆に、単純に入ればいい。 大規模化したCで問題になったのは、「階層」がないこと。だからクラスで「階層」を付加した。 PHPの場合でも同様で、includeした関数はどこからでも呼べてしまい、階層がない。 それで、複数のincludeファイルで同じ名前の関数を定義してしまった場合、バグる。 これに対するアナログ的解決が、「接頭辞を付ける」で、実際PHPだとarray_xxxxとなっている。 ただしこれでも種類が増えると接頭辞内にも"_"を使いたくなってくる。 そしてxxxx_yyyy_zzzzでみたいな関数名になると、接頭辞がxxxxなのかxxxx_yyyyまでなのか見た目分からない。 だから接頭辞内に"_"を使うのは絶対禁止というアナログ解決も可能だが、 ここで明示的に階層を宣言し、"::"で区切る、つまり、array_xxxx は全部 array::xxxxにする、 というのが「クラス」を「階層」とした使い方。 これは751でも「次の一手」として理解出来るだろ。
|

|