PHPのコンソールから
息抜きコ~ナ~
わ~わ~
ということで、少しだけはずれてPHPの別の使い方です。
PHPというと、WEBサーバー(apache等)と連携して動かすのが一般的だと思いますが、PHPはコンソール(シェル)からも使うことが出来るんですよね。
ちなみに、Linux上での話です。Windowsは知りません。
まず、準備するのはPHPスクリプトです。
内容は以下のようにしました。
<?php
echo '今日も暑くてシヌ';
?>
ファイル名は、「test.php」としました。
では、シェルから起動してみます。
-----------------------
# /usr/bin/php test.php
今日も暑くてシヌ
-----------------------
こんな感じで起動できます。
モチロン、perlやシェルスクリプト同様に起動パラメータも使えます。
<?php
if (isset($argv[1])) :
echo $argv[1];
else :
echo '今日も暑くてシヌ';
endif;
?>
起動は、
# /usr/bin/php test.php やっぱりシヌ
やっぱりシヌ
さらに!
perlやシェルスクリプトを使ったことがある方は分かると思いますが、
1行目に
#!/usr/bin/perl
のような記述しますよね?
これ、「PHP」でも出来るんです。
#!/usr/bin/php
スクリプトの1行目に書いておきます。
ファイル内容は、こんなカンジ↓
----------------
#!/usr/bin/php
echo 'アツアツ';
----------------
次に、作成したPHPスクリプトに実行権をつけます。
chmod +x test.php
これで、準備は完了です。
# ./test.php
アツアツ
/usr/bin/php test.php
としなくても、起動できるようになりました。
perlや、シェルスクリプトなんてしらねーよ。なんて方はPHPでもスクリプト書いてみてください。
わ~わ~
ということで、少しだけはずれてPHPの別の使い方です。
PHPというと、WEBサーバー(apache等)と連携して動かすのが一般的だと思いますが、PHPはコンソール(シェル)からも使うことが出来るんですよね。
ちなみに、Linux上での話です。Windowsは知りません。
まず、準備するのはPHPスクリプトです。
内容は以下のようにしました。
<?php
echo '今日も暑くてシヌ';
?>
ファイル名は、「test.php」としました。
では、シェルから起動してみます。
-----------------------
# /usr/bin/php test.php
今日も暑くてシヌ
-----------------------
こんな感じで起動できます。
モチロン、perlやシェルスクリプト同様に起動パラメータも使えます。
<?php
if (isset($argv[1])) :
echo $argv[1];
else :
echo '今日も暑くてシヌ';
endif;
?>
起動は、
# /usr/bin/php test.php やっぱりシヌ
やっぱりシヌ
さらに!
perlやシェルスクリプトを使ったことがある方は分かると思いますが、
1行目に
#!/usr/bin/perl
のような記述しますよね?
これ、「PHP」でも出来るんです。
#!/usr/bin/php
スクリプトの1行目に書いておきます。
ファイル内容は、こんなカンジ↓
----------------
#!/usr/bin/php
echo 'アツアツ';
----------------
次に、作成したPHPスクリプトに実行権をつけます。
chmod +x test.php
これで、準備は完了です。
# ./test.php
アツアツ
/usr/bin/php test.php
としなくても、起動できるようになりました。
perlや、シェルスクリプトなんてしらねーよ。なんて方はPHPでもスクリプト書いてみてください。
制御構造
制御構造についてです。ほとんど、C言語と同じです。
PHP特有の書き方もあって面白いと思いますです。
今日は、if / while / do while / forの4つ。
PHPに限ったことではないですが、制御構造が分からないとまともなプログラムって書けないですよね。。。
あたりまえか・・・
他にもあるんですが、今日は絵も書いて疲れたのでこの4つにしました。
ちなみに、この絵はGIMPで書きました。ヘタクソですよねw
早く次に進みたいんですけど、制御構造だけメモっておきます。
1.if文
条件を指定して、処理を行うことができます。
変数がtrueの場合だけ次の処理を行うとかです。

if ($f == true)
{
echo 'trueです';
}
else
{
echo 'trueじゃないです';
}
//別の書き方
if ($f == true) :
echo 'trueです';
else:
echo 'trueじゃないです';
endif;
1-2.elseif文------------
if ($i == 0)
{
echo '0です';
}
elseif ($i == 3)
{
echo '3です';
}
else
{
echo '0でも3でもないです';
}
//別の書き方
if ($i == 0) :
echo '0です';
elseif ($i == 3) :
echo '3です';
else :
echo '0でも3でもないです';
endif;
?>
2.while文(前判定)
ある条件の場合に、処理を繰り返す(ループ)ことができます。
変数がtrueの場合は、次の処理を繰り返すなど。
while文で気をつけないと行けないことは、繰り返し処理の中でループを抜ける処理を忘れずに入れることです。
この処理が無いとループから抜けることが出来なくなって無限ループの出来上がりとなります。
※↓のコードでは、$fがtrueで初期化しているのでwhileループの処理を行いますが、
ループ内の繰り返し処理の中で、すぐfalseを設定しているので1回しかループしません。
$fがfalseで初期化されている場合は、$fがtrueではないのでループを行わない。
ループに入る前に$fがtrueか判定するので、前判定とか言ったりします。

$f = true;
while ($f == true)
{
$f = false;
}
//別の書き方
while ($f == true) :
$f = false;
endwhile;
3.do while文(後判定)
ある条件の場合に、処理を繰り返す(ループ)ことができます。
2.while文(前判定)と違うのは、ループ条件の判定を後から(ループ処理を1回行った後)に行うということ。
while文と同じく気をつけないといけないことは、ループを抜ける処理が無いと無限ループになるということです。
ループを抜ける処理は忘れずにいれる。

※↓のコードでは、$fがtrueで初期化していますが、ループの判定は後から行うので$fの値にかかわらずループ処理を行います。
ループ内の繰り返し処理の中で、すぐfalseを設定しているのでループをすぐに抜けます。
$f = true;
do
{
$f = false;
}
while ($f == true);
4.for文
ループに入る直前の処理と、ループ条件、ループする度に行う処理を指定して繰り返し処理を行うことができます。
個人的にはwhileより使いやすいイメージがあります。

難しいことは無いです。
$i = 0 でループに入る直前の処理をしています。
$i < 10 がループ条件です。
$i++ がループする度に行う処理です。
↓の例だと、$iが10より小さいがループ条件になってて、ループする度に$iをインクリメントしているので10回ループします。
for ($i = 0; $i < 10; $i++)
{
echo $i;
}
?>
明日は、残りの制御構造やって明後日からは作っていきます。
PHP特有の書き方もあって面白いと思いますです。
今日は、if / while / do while / forの4つ。
PHPに限ったことではないですが、制御構造が分からないとまともなプログラムって書けないですよね。。。
あたりまえか・・・
他にもあるんですが、今日は絵も書いて疲れたのでこの4つにしました。
ちなみに、この絵はGIMPで書きました。ヘタクソですよねw
早く次に進みたいんですけど、制御構造だけメモっておきます。
1.if文
条件を指定して、処理を行うことができます。
変数がtrueの場合だけ次の処理を行うとかです。

if ($f == true)
{
echo 'trueです';
}
else
{
echo 'trueじゃないです';
}
//別の書き方
if ($f == true) :
echo 'trueです';
else:
echo 'trueじゃないです';
endif;
1-2.elseif文------------
if ($i == 0)
{
echo '0です';
}
elseif ($i == 3)
{
echo '3です';
}
else
{
echo '0でも3でもないです';
}
//別の書き方
if ($i == 0) :
echo '0です';
elseif ($i == 3) :
echo '3です';
else :
echo '0でも3でもないです';
endif;
?>
2.while文(前判定)
ある条件の場合に、処理を繰り返す(ループ)ことができます。
変数がtrueの場合は、次の処理を繰り返すなど。
while文で気をつけないと行けないことは、繰り返し処理の中でループを抜ける処理を忘れずに入れることです。
この処理が無いとループから抜けることが出来なくなって無限ループの出来上がりとなります。
※↓のコードでは、$fがtrueで初期化しているのでwhileループの処理を行いますが、
ループ内の繰り返し処理の中で、すぐfalseを設定しているので1回しかループしません。
$fがfalseで初期化されている場合は、$fがtrueではないのでループを行わない。
ループに入る前に$fがtrueか判定するので、前判定とか言ったりします。

$f = true;
while ($f == true)
{
$f = false;
}
//別の書き方
while ($f == true) :
$f = false;
endwhile;
3.do while文(後判定)
ある条件の場合に、処理を繰り返す(ループ)ことができます。
2.while文(前判定)と違うのは、ループ条件の判定を後から(ループ処理を1回行った後)に行うということ。
while文と同じく気をつけないといけないことは、ループを抜ける処理が無いと無限ループになるということです。
ループを抜ける処理は忘れずにいれる。

※↓のコードでは、$fがtrueで初期化していますが、ループの判定は後から行うので$fの値にかかわらずループ処理を行います。
ループ内の繰り返し処理の中で、すぐfalseを設定しているのでループをすぐに抜けます。
$f = true;
do
{
$f = false;
}
while ($f == true);
4.for文
ループに入る直前の処理と、ループ条件、ループする度に行う処理を指定して繰り返し処理を行うことができます。
個人的にはwhileより使いやすいイメージがあります。

難しいことは無いです。
$i = 0 でループに入る直前の処理をしています。
$i < 10 がループ条件です。
$i++ がループする度に行う処理です。
↓の例だと、$iが10より小さいがループ条件になってて、ループする度に$iをインクリメントしているので10回ループします。
for ($i = 0; $i < 10; $i++)
{
echo $i;
}
?>
明日は、残りの制御構造やって明後日からは作っていきます。
PHPの変数・型
さっそく、プログラム書きたいところだけど
変数から見直してみたいと思います。
こうして見ると、忘れていたことが思い出せます。
とりあえず、これだけ覚えておけば次に進めます。
1.boolean(論理値)の使用例
$b = true;
$b = false;
2.integer(整数)の使用例
$i = 123456; //10進数
$i = -654321; //負(マイナス)
$i = 0123; //8進数
$i = 0x123; //16進数
3.float/double(浮動小数点)の使用例
$d = 1.23456;
※float/doubleは他にも使い方があるけど、ここではやめておきます。あまり使わないと思うので。
4.string(文字列)の使用例
$s = '文字列でござる'; //引用符 変数の展開はしない
$s = "文字列でござる"; //二重引用符 変数の展開をする
$s = <<< KOKOMADE //ヒアドキュメント 変数の展開をする
文字列でござる
KOKOMADE;
$s = <<< "KOKOMADE" //ヒアドキュメント 変数の展開をする
文字列でござる
KOKOMADE;
$s = <<< 'KOKOMADE' //nowdoc 変数の展開をしない
文字列でござる
KOKOMADE;
5.array(配列)の使用例
$a = array(1, 2, 3, 4, 5); //キーを省略
$a = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5); //キーを数値で指定
$a = array("A" => 1, "B" => 2, "C" => 3, "D" => 4, "D" => 5); //キーを文字列で指定
$a[] = 6; //配列に要素を追加
unset($a[5]); //配列から要素を削除
unset($a); //配列全体を削除
6.object(オブジェクト)の使用例
class c
{
$c_i = 100;
}
$o = new c(); //インスタンスオブジェクト
$o = (object)array("A" => 1, "B" => 2); //配列のオブジェクト化
7.resource(リソース)の使用例
$r = mysql_connect(); //mysqlへのリンク
mysql_close($r);
※resourceについては、書ききれないほどあるので、以下を参照
http://www.php.net/manual/ja/resource.php
※resource型は、作成したら破棄する必要があるのが特徴。忘れずに破棄する。
8.NULL(ヌル)の使用例
$n = NULL;
※$n は値が代入されていないとみなされる。
unset($n);
せっかくなので、このブログがまとまったらホームページにしたいなヘ(゚∀゚*)ノ
変数から見直してみたいと思います。
こうして見ると、忘れていたことが思い出せます。
とりあえず、これだけ覚えておけば次に進めます。
1.boolean(論理値)の使用例
$b = true;
$b = false;
2.integer(整数)の使用例
$i = 123456; //10進数
$i = -654321; //負(マイナス)
$i = 0123; //8進数
$i = 0x123; //16進数
3.float/double(浮動小数点)の使用例
$d = 1.23456;
※float/doubleは他にも使い方があるけど、ここではやめておきます。あまり使わないと思うので。
4.string(文字列)の使用例
$s = '文字列でござる'; //引用符 変数の展開はしない
$s = "文字列でござる"; //二重引用符 変数の展開をする
$s = <<< KOKOMADE //ヒアドキュメント 変数の展開をする
文字列でござる
KOKOMADE;
$s = <<< "KOKOMADE" //ヒアドキュメント 変数の展開をする
文字列でござる
KOKOMADE;
$s = <<< 'KOKOMADE' //nowdoc 変数の展開をしない
文字列でござる
KOKOMADE;
5.array(配列)の使用例
$a = array(1, 2, 3, 4, 5); //キーを省略
$a = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5); //キーを数値で指定
$a = array("A" => 1, "B" => 2, "C" => 3, "D" => 4, "D" => 5); //キーを文字列で指定
$a[] = 6; //配列に要素を追加
unset($a[5]); //配列から要素を削除
unset($a); //配列全体を削除
6.object(オブジェクト)の使用例
class c
{
$c_i = 100;
}
$o = new c(); //インスタンスオブジェクト
$o = (object)array("A" => 1, "B" => 2); //配列のオブジェクト化
7.resource(リソース)の使用例
$r = mysql_connect(); //mysqlへのリンク
mysql_close($r);
※resourceについては、書ききれないほどあるので、以下を参照
http://www.php.net/manual/ja/resource.php
※resource型は、作成したら破棄する必要があるのが特徴。忘れずに破棄する。
8.NULL(ヌル)の使用例
$n = NULL;
※$n は値が代入されていないとみなされる。
unset($n);
せっかくなので、このブログがまとまったらホームページにしたいなヘ(゚∀゚*)ノ


