PHP・WEBプログラミング- ラボラトリー/リリース情報- 通販検索[anazon]- Youtube/動画- 2ちゃんブログまとめ- SEO対策- キーワードチェック辞書- 環境変数確認くん
ジャンプページ作成- リンクタグ作成- 技術書・リファレンス- 日本愛煙家ネットワーク - URL解析

メイン

データ型 配列について

配列とは、私にとって非常に馴染み難い存在でした。
文字列や整数とゆうのは、日常生活にもありふれているように思いますが、配列とゆうのは日常生活において極めて露出が少ないと感じます。

先述の「データ型はなんでしょう?」でも記載しましたが、
配列とは、データをまとめたデータとゆう性格を持っています。
具体的な記述の方法についてPHPにおいては、

$ArrayName[$Key]=$Value;

とゆう書式をとります。
$ArrayNameはその配列の名前
$Keyはその配列における1つの値を保持するキー名
$Valueはその配列のキーにおける値
をそれぞれ示します。

より具体的かつ理解が深まりそうな例をあげると。

野菜の値段[きゅうり]=120円;
野菜の値段[にんじん]=150円;
野菜の値段[たまねぎ]=220円;
野菜の値段[さといも]=180円;

とゆう具合です。
実際にPHP等のプログラム言語において、変数名に半角英数字以外の文字を使用することはできないとされていますが、敢えて日本語を母国語とする人達の理解を助ける為上記のような例を挙げました。

上記の例の意味するところは、「野菜の値段」とゆうデータの集まりである配列の中に「きゅうり」とゆうキーの中に「120円」とゆう値が入っている事になります。
こうして、一塊のデータとして扱う事ができるようになると、後々情報処理において、処理を効率化することが容易になることが多いように思われます。

乱数とはなんでしょう?

乱数とは「乱れた数」と書きます。英訳するとrandom numberです。
これを邦訳するとランダムな数字です。ぐんと解りやすくなったとゆうか感覚的になったと感じます。

乱数はプログラムではサイコロのような役割をします。
サイコロとは、すごろく等で使う正六面体の各面に1~6個の円形の印が付けられたあのサイコロです。

ボードゲームやカードゲームの世界には、目が20まであるサイコロや30まであるサイコロがあります。
プログラムで言う乱数とはあたかもこのようなサイコロを振ったかのように振る舞います。

実際にはゲームの分野ではある一定の偶然性が好まれる傾向があり。
テレビゲームの多くには、乱数を使用しているであろう場面が多く見受けられます。

例えば、主人公が敵のモンスターに与えるダメージの計算などがそれです。
より具体的な例を挙げてみましょう。

主人公の持つ攻撃力を10とします。
装備している剣の攻撃力は20とします。
これで主人公の攻撃力は30です。
次に敵のモンスターの防御力を5とします。

主人公と敵のモンスターが対峙します。

ものすごく単純に計算をすると、

[主人公の攻撃力:30]-[敵のモンスターの防御力:5]=[主人公が敵に与えるダメージ:25]

となりそうですが、攻撃する度にダメージの値が変わるゲームをかなり目にします。
第一、毎回ダメージが同じであれば、多くの場面が絶対勝てるとゆう安心感か、絶対負けるとゆう絶望感
で埋め尽くされてしまいます。
多くのゲームをする人達が望んでいそうな、ハラハラドキドキのスリル感とは程遠いものになってしまいます。実際にテレビゲームをしていて、絶対に勝てるゲームは、すべて見てしまった遊園地のような閉塞感を覚えてしまいます。好奇心を刺激してくれません。逆に絶対に勝てないゲームは、今より先に進めないとゆう絶望感が生まれます。どうにかして先に進もうと色々と試行錯誤をしますが、それが一切進展をみせなければ、ただの不毛な作業です。楽しい体験に対する期待感などとゆうのは通り越して、時間の無駄とゆう言葉すら浮かびます。なにしろ、現実逃避の手段であるテレビゲームに絶望感とゆう現実を突きつけられているのですから、ちぐはぐです。

ハラハラドキドキのスリル感をある程度維持する為にランダムとゆう要素を取り入れてみましょう。

([主人公の攻撃力:30]-[敵のモンスターの防御力:5])*[0.8~1.2]=[主人公が敵に与えるダメージ:???]

としてみます。最小が22.4、最大が30となる訳です。
これをモンスターの攻撃にも適応して戦闘を行えば、多くのプレイヤーはモンスターからの攻撃によるダメージは少なく、主人公の攻撃によるダメージは多くあってほしいと思うでしょう。

しかし、そうであるときも、そうでないときもある。

人間は「自分の運がいい」となると、自分は選ばれた人間だと感じ、上機嫌になるものです。
極論をゆうと、ある程度未熟なキャラクターでも極端に運がよければ勝利をつかむことが出来るかもしれないとゆう期待感が生まれるでしょう。

このように毎回毎回ある程度のスリルを与えながら新鮮味を維持する事ができるとゲームは楽しいものです。

PHP言語でよく使う命令:print_r

print_rは変数の中身を比較的見やすいように整形して出力してくれます。

print_r(変数名);

の形で使います。
これは変数のデータ型が配列(array)だった場合に力を発揮します。

例えば、
$ColorArrayとゆう配列にいろんな色を入れていきます。

$ColorArray[0]='red';
$ColorArray[1]='blue';
$ColorArray[2]='green';
$ColorArray[3]='yellow';

この配列の中身を確認したいときに以下のようにすると・・・

echo $ColorArray;

「Array」とゆう結果が返ってきます。$ColorArrayは配列とゆう事です。
echoでは配列名から中身を教えてはくれないのです。もし、配列の中身を知りたければ、キーと一緒に以下のように記述しなければなりません。

echo $ColorArray[0];

これで「red」と帰ってきました。しかし、これでは配列のキーを把握してなくてはなりません、キーを自動生成したり、数がすこし多いと手に負えません。

そこで

print_r($ColorArray);

とすると、キーと値をセットで出力してくれます。

Array ( [0] => red [1] => blue [2] => green [3] => yellow )

実際には、
Array
(
[0] => red
[1] => blue
[2] => green
[3] => yellow
)

と整形されています。

ブラウザで出力するとhtmlとして解釈されてしまうので、改行やタブが無視されてしまう為です。
htmlのpreタグやtextareaタグで囲むと整形された状態で出力されると思います。

echo と合わせて、デバッグの時や開発中びデータのチェックに非常に役に立ちます。

PHP言語でよく使う命令:echo

echoと書いてエコーと呼びます。値の表示を行います。
使用例は以下の通りです。

例1)
echo 'hello';

例2)
echo "hello";

例3)
$VarMessage='hello';
echo $VarMessage;

上記の3つとも同じように「hello」と表示される結果が得られます。
例1は「'」(シングルクォーテーション)で囲まれています。「'」で囲まれた部分はそのまま出力されます。
例2は「"」(ダブルクォーテーション)で囲まれています。「"」で囲まれた部分は解釈されるものは解釈して出力されますが、今回の例では特に解釈されるものがありませんので、例1と同じくそのまま出力されます。
例3は一旦$VarMessageとゆう変数にhelloとゆう文字列を格納し、次の行で呼び出しています。echo命令に変数を使う場合は、「'」や「"」で囲う必要はありません。もし、「'」で囲ってしまうと、「$VarMessage」とゆう文字列そのものが表示されて、期待した結果は得られないでしょう。これとは別に「"」で囲った場合は、$VarMessageが解釈される変数なので、「hello」と出力されます。

ちなみにPHPでは、変数の頭に$(ダラー)を付けます。$をつけ忘れてエラーが起きる事はよくある事です。めげないで頑張りましょう。

昔陥ったのが、改行についての扱いです。
改行を「\n」で現していたのですが、

echo '\n';

としてしまっていた為に、「\n」そのものが表示されてしまい出力結果は非常に長い1行のテキストになってしまいました。

echo "\n";

とすることで期待した出力結果が得られるようになりました。

さらに、「.」(ドット)を使って文字列を連結させる事ができる事から、以下の様な事もあります。

$Message='My name is '.$Name.' I like'. $Favorite."\n";

$Message="My name is $Name I like $Favorite \n";

上記の例は2つとも同じ$Messageになります。

PHPとはなんでしょう?

PHPとは、近年大変流行しているプログラム言語で、WEBプログラミング・WEB開発にはとても向いていると言われています。

実際に環境さえ揃ってしまえば、恐ろしく簡単に体感できます。

例えば、

<?php
phpinfo();
?>

と書いたファイルの拡張子を.phpにしてウェブサーバーにアップロードし、インターネット経由でアクセスするだけで、サーバーの診断書のようなものが得られます。

<?php

?>
で囲まれた部分以外は普通のhtmlやJavascriptを記述しても問題ありません。
つまり、htmlで作ったページにある1部分だけphpによって動的に変化する情報を記載したりすることができるのです。
これは私にとって非常に衝撃的でした。それまでは、全て複雑な命令と難解な文法によって書かれているであろうプログラムを全て一から書かなければならないと考えていたからです。
幸運な事に私はhtmlをある程度扱った事がありましたので、全体をhtmlで作ったページにたった数行追加するだけで、動的に変化するページを作成する事ができました。

また、htaccess等を使って.htmlファイルにもphpの動作実行権限を与えることにより、既存のリンク構造を変化させる事なく、機能を付与する事も可能になります。但し、この方法は全てのhtmlファイルにおいてphpのコードが存在するか否かの走査が行われる事を意味します。よって、ハードウェアに対して非常に高い負荷を発生させる事がしばしばある為、あまり推奨されてはいません。

データ型とはなんでしょう?

多くのプログラム言語には「データ型」とゆう概念が存在します。
これは文字の通り、「データの型」とゆう意味です。

大雑把に言えば例えばこんなことがあります。

「300」を[文字列(string)]とするか[整数(integer)]とするか・・・
「300」+「1」とした時に、文字列だと3001、整数だと301となってしまいます。

余りに大雑把な例で恐縮ですが、こんなことは今の殆どのプログラム言語では起きないようです。

しかし実際にあったのが、配列のキーを自然数にしていたとき、足し算をして1つ大きな自然数としようとした時にデータ型が文字列になっていた為に正常に処理が行われないとゆう事がありました。

データ型には言語によって違いはあるようですが、主に以下のようなものがあります。

論理型 (boolean)
FALSEとTRUEのうちどちらか、状態がYesかNoかの場合などに使われる。

整数 (integer)
少数でも分数でもない数値。-2や-1や0も整数。

文字列(string)
0~複数の文字の集合体。非常に奥が深い。

配列(array)
データ型を集めたデータ型。良く例えられるのが貨物電車。
1番目の車両には、この情報。2番目の車両にはこの情報といった具合に情報を一まとまりとして扱う。
車両名を「キー」と飛び、中に積んでいる情報を「値」と呼ぶ。

静的と動的について

静的・動的とゆう言葉を見たり聞いたりした事があるでしょうか?
日本語は難しいもので、「ドウテキ」「セイテキ」と発音するだけでは、ありとあらゆる漢字が当たってしまうように思われます。
漢字は表意文字の性質を強く持ちますので、間違えて覚えてしまったり、文脈から多数の候補が類推される場合、混乱を招きがちです。

是非「静的・動的」と漢字で覚えてください。

「静的・動的」とは、インターネット上のページの種類の事で、
静的とは、「条件にとらわれず常に同じ内容を表示する」ことで、
動的とは、「条件によってそれぞれ違う内容を表示する」ことです。

簡単な例を出してみましょう。

ある学校の設立記念日が10月10日だったとします。

これを学校のホームページ上に「10月10日は設立記念日です」と書かれていると静的です。
誰が何時どこから見ても設立記念日は10月10日だからです。

これに対して、「創立記念日まであとXX日です。」とゆうふうに、何時見たかによってXX日の部分が変わるような場合を動的と呼びます。

プログラム的な視点から見ると「どのような入力を」「どのようなプロセス(計算式)で」「どのような出力をしているか」によって、静的と呼ばれるか動的と呼ばれるか判断されている事が多いと思います。
ある側面から見ると静的だが、ある側面からみると動的といった場合や、一つの出力を要素毎に分けると静的な部分と動的な部分が混在している事はよくあります。

特にテンプレート部分の開発をしているとどこを動的に出力し、どこを静的に出力するべきかを把握しながら進めて行くことでかなり効率が良くなるかと思います。

テンプレートとはなんでしょう?

テンプレートとゆう言葉を聞いた事があるでしょうか?マイクロソフトオフィスを使っている方なら、「ワードのテンプレート」や「エクセルのテンプレート」とゆうふうに聞いた事があるかもしれません。

テンプレートとは、「何かを作る時の基となるもの」と言われています。
簡単な例を挙げると、役所への届け出や、携帯電話の契約の時等に記入する「申し込み用紙」がそれです。
大体分かり難いものですが、大まかに言って、「どこになんの情報を記入せよ」と書いてあります。
「ここに住所を」「ここにお名前を」「ここに生年月日を」といった具合です。

ウェブプログラミングでは、ある意味まったくこの通りです。
情報を出力(例えて言うなら完成した申込書)する時に「どこになんの情報を出力(記入)」したら良いかを書いた指示書です。

また、多くの場合、スタイルシートを外部参照させて、「どこがどのような大きさで何色なのか」といったビジュアルデザイン的な部分もテンプレートでまかなわれます。

データベースとはなんでしょう?

データベースとは、身近な例を挙げると、電話帳や辞書、携帯電話についているアドレス帳なんかが分かりやすいかと思います。ある一定のルール(50音順や数値の大小順)に従って情報が並んでいる情報のセットの事です。

ウェブプログラミングでは、色々なプロセスから情報にアクセスする事を可能にするため。文字列や数値を計算する部分以外の部分に関しては、プログラム部分とは別にデータベースとして情報を保存・記憶する事がスタンダードになっています。

プログラムとはなんでしょう?

プログラミング(特にウェブプログラミング)とは一体なんでしょう?
その正体は「条件に応じて計算し結果を出力する」事を目的として書かれた指示書であると解釈しています。

最近多く聴くのが、「コントローラー」「テンプレート」「データベース」の3つを連携させて、様々な情報を様々な形で出力するプログラムやシステムのスタイルです。
これは非常に応用範囲が広く、ネット通販や、デジタルコンテンツサイト、各種申し込み・届出受け付けといったほとんど全てのウェブサイトに適応します。


Warning: readfile(./../bottombox.html) [function.readfile]: failed to open stream: No such file or directory in /home/sites/chicappa.jp/users/greater.jp-webtool/web/mt/web-tool-japan/cat3/index.html on line 698

Infomation


リンク

ラボラトリー・WebToolJapan仮想研究所
WebToolJapanにおける取り組み・開発及び研究課題について
http://lab.web-tool-japan.com/
SEO測定
検索エンジンに最適化する際の重要なパラメーターを取得して表示します。 http://seo-measure.web-tool-japan.com/
リンクタグ作成ツール
検索エンジンに最適化する際の重要なパラメーターを取得して表示します。 http://linktag.web-tool-japan.com/
anazon
Amazonにより公開されているAWS(AmazonWebService)を使用し、XMLからXSL及びPHPを使用しHTMLを生成しています。 http://anazon.web-tool-japan.com/
技術書・リファレンス
プログラマー・エンジニアの初歩入門と技術向上を図る為、参考書・技術書・リファレンスの情報を掲載しています。 http://reference.web-tool-japan.com/
日本愛煙家ネットワーク
一人でも多くの喫煙者がマナーとルールを守る愛煙家になるように文化的啓蒙活動に取り組んでいます。 http://i-love-smoke.web-tool-japan.com/
ジャンプページ
任意の指定したURLへのジャンプページを提供。ページの概要も併記していますので、移動先の安全確認にもお役立てください。http://jump.web-tool-japan.com/
URL解析
任意のURLから得られる出力情報を元に文書解析・情報解析を行います。 ここでは、HTTPおよびHTMLの仕様と世界的な実際の使用状況をつき合わせて実用性の高いHTML解釈の用例を研究しています。 http://url.web-tool-japan.com/
キーワードチェック辞書
キーワードから関連語句や説明・意味などを表示します。 ここでは主に日本語の解析や言語体系についての研究を主体としています。 http://keyword.web-tool-japan.com/
環境変数確認くん
インターネット上を流通するプライバシーともいえる環境変数を確認する事ができます。
http://kakuninkun.web-tool-japan.com/

その他