return では、複数の変数を返せないので、値を配列にまとめて返すようにします
構文としては、
----------------
list($変数1,$変数2,$変数3) = 関数();
処理1;
処理2;
function 関数()
{
処理3;
$変数 = 処理4;
return array($変数1,$変数2,$変数3);
}
---------------–
というように、
受け取り側でlist();で帰ってきた配列を、変数に代入して受け取ります
つまり、関数内で return にarray();を使って複数の値を配列にして返しているわけですね
こうすれば、複数の値を返すことができます
ここで、例として今日の日付を返すものを作ってみました
<?php
list($year,$month,$day)=get_today();
print $year.’年’ . $month.’月’.$day.’日’;
function get_today()
{
$year=date(‘Y’);
$month=date(‘m’);
$day=date(‘d’);
return array($year,$month,$day);
}
?>
---------------–
list();は、
配列を 同じ順番で複数の変数に代入できます
そして、array(};
は、変数や数値、文字列を , で指定することで配列を作れます
カテゴリー: 未分類
引数のデフォルト値 その
デフォルト値を複数指定する場合、デフォルト値を指定した引数の右側に
デフォルト値を指定しない引数があると、なぜかダメです
例:
function check_member($username="gest",$pass)
はエラーになりますが
function check_member($username,$pass="gest")
はなぜかOKになります
理由はわかりませんが、そういうものみたいです
引数のデフォルト値
引数が設定されといる関数を
引数の指定なしで実行すると
Warning Missing argument
とエラーになります
引数がなくてもエラーがでないようにするには
引数のデフォルト値を関数側で設定します
こうすればデフォルト値で代替され
エラーになりません
構文は、
$変数=数値;
関数名($変数);
function 関数名($引数=値)
{
処理1;
処理2;
print $引数;
}
となります
例えば、
よくあるページで
ゲストさん、こんにちわ
とか
会員さん、ようこそ
と表示するなら、
<?php
check_member();
function check_member($username="gest",$pass="gest")
{
if($username=="gest" && "pass="gest"){
print "ゲストさん、こんにちわ";
}else{
print "会員さん、こんにちわ";
}
}
?>
という感じです
今回は、関数を作り
引数はデフォルト値を使ってみました
もうすこし改造すると、サインインみたいにできるかもしれません
関数 の 引数渡し
C言語でおなじみの引数渡しもPHPでできます
書式としては、
$変数 = 数値;
で、$変数に数値を格納して
関数名($変数);
で関数に数値が渡されます
そして
function 関数名($引数)
{
処理1;
処理2;
print $引数;
}
と使います
この 関数名($引数);のところで、
$変数の値が $引数に渡されます
英語で送られてきた荷物のラベルを、日本語のラベルに張り替えただけで、中身は同じ、
みたいな感じですかね
この場合、関数は箱、変数はラベル という感じです
このため、スコープ、つまり{} の中身の処理で使われる
$引数は、渡された数値になります
例を書くと
<?php
$shio=19;
check_gram($shio);
function check_gram($solt)
{
$aji = 50;
$aji_check($aji > $solt)?"塩";"砂糖"
print $aji_check ."を追加してください";
}
?>
このように、soltでもshioでも数値は変わりません
function関数
PHPのコードは上から処理されます
このへんはC言語と同じ
そして、PHPでもCやJavaみたいに関数をつくれます
それが function関数です
書式は、
function 関数名()
{
処理1;
処理2;
}
で関数を作成し、
関数名();
で実行できます
関数名は、変数名と同じく、数字は先頭にはつかえません
先頭から使えるのは
半角英数 と _ になります
例をあげると
”;
print “はろー”;
print ”font>”;
}
print_hello();
?>
これを実行すると、
はろー
と表示されます
require()の例
便利そうな関数
require();
のメモです
まず、読み込まれるファイルを作成[e:257]
<?php
$name="へべれけまる";
$message="詳細の報告をお願いします";
?>
これをdata.phpで保存[e:257]
---------------–
次に、読み込み側ファイルを作成[e:257]
require()でファイル名を指定する[e:257]
<HTML>
<HEAD>
<TITLE>PHPのテスト</TITLE>
</HEAD>
<BODY>
<?php>
require("data.php");
print "識別名 $name
";
print "$message
";
?>
</BODY>
</HTML>
すると、実行結果は、
識別名 へべれけまる
詳細の報告をお願いします
となります
つまり、変数に代入された状態になるわけですね
使い道は、メールマガジンや、大量のメール送信とかに使えるのでは?
たとえば、
---------------–
$name様
登録ありがとうございます
登録メールアドレス
$mailaddress
パスワード
$pass
---------------–
とすれば、あとはハウスリストできあがりですね
応用編としては、
include();
があります
include();
と
require();
の違いますは、エラーがでたときです
エラーがでたとき、include();はWarningを出して処理を実行します
でもrequire();は
Fatal Error
となり、処理が停止します
このため、require();を使うと、処理ファイルがないときに止まってくれます
あとは、
require_once();
と
include_once();
require_once();
は、機能は
require();
と同じだけど一度しか読み込まないのです
まさにonce
include_once();
も同様に、一度だけ読み込みとなります
今回の関数で思ったのは、世の中のDMやスパムも同様のシステムかなぁという感じです
ハンガリーも粉飾
ハンガリーもデフォルト懸念がでてます
ハンガリーは、財政赤字の対GDP比率が粉飾されていたようです
今回ギリシャの政権交代により、粉飾が明らかになったように、ハンガリーでも前政権な政策を点検していたところ、財政赤字の数値の異常に気づいたようです
ハンガリーは、ユーロ加盟を目指していて、ギリシャとは微妙に違いますが、
それでも懸念材料にはなるので、リスク回避要因として警戒したほうがよさそうです
さて、ユーロについてですが、ユーロは比較的新しい通貨で、1999年に発足しました
発足当時のレートは、対ドルで1.18
このレートを割ると売りが強まるかもしれません
日経、ダウともに極端な下げの場合、たいていはショートカバーが入りますし、
最近は売りが続いています
ショートカバーによる急反発に気をつけながら取引しましょう
PHPで別ファイルの処理を読み込
require()
でファイルの読み込みが可能になります
会員制Webサイトをつくるとき、単一のファイルだけでは無理なので、
同じような処理をあつめて、別のファイルに記述し、必要なときに読み込むと便利です
C言語のincludeみたいなかんじです
require("ファイル名");
でファイルを読み込みます
require "ファイル名";
でもOKです
また、
require $変数
というように、ファイル名を変数に格納しても動作するようです
PHP の 演算子 その
PHPでは実行演算子があります
`で囲んで使います
例えば、
<?php
$filelist = `ls -laF`;
print $filelist;
として、端末で実行すると、カレントディレクトリ内が表示されます
実行演算子 ` は、
セーフモードや
shell_exec()が無効だと使えません
ちなみに、これはLinuxの場合で、
Windowsなら、
ls -laF を dir に書き換えます
PHP の演算子
PHPでは代数演算子が使えます
$answer = 5 + 1;
print "5+1=$answer";
とすると
5+1=6
と表示されます
C言語でいう
int answer=5+1;
printf("5+1=%d",answer);
みたいな感じですね
あと、面白いのが文字列の連結代入
$data=’ipod’;
$name=data;
$name .=’ apple製’;print $name;
とすると、ipod apple製
となります