[PHP-users 10942] 参照渡し引数を配列に入れて変更する方法
aiko
php-users@php.gr.jp
Fri, 18 Oct 2002 11:02:23 +0000
こんにちは。
プログラムの初歩的な質問だと思うのですが…
(というかアルゴリズムの問題…)
どなたかにスマートな書き方を教えて頂きたくてメールしました。
以下のような”年月日時分秒”を得る関数を作成し、
月日時分秒が一桁だった場合は、頭に0を追加したいと考えています。
その際、
if( $mm < 10)
{
$mm = "0". $mm
}
の様な処理を年月日時分秒すべてに書くのは要領が悪いと思い、
以下のソースのように配列に入れることにしました。
//******************************************************************
function GetDate_yymmdd( &$yyyy, &$mm, &$dd, &$h, &$m, &$s )
{
$aDate = getdate(); // 当日日付をGET
$yyyy = $aDate['year'];
$mm = $aDate['mon'];
$dd = $aDate['mday'];
$h = $aDate['hours'];
$m = $aDate['minutes'];
$s = $aDate['seconds'];
$aAddZero = array( $mm,
$dd,
$h,
$m,
$s );
// 一桁の場合頭に"0"をつける
for($i=0; $i < count( $aAddZero ); $i++ )
{
if( $aAddZero[$i] < 10 )
{
$aAddZero[$i]="0".$aAddZero[$i];
}
}
}
//******************************************************************
上記のソースでは
引数を参照渡しにしているため、配列の中身が変更されるだけで
実際の引数の中身は変更されません。
(まあ、当たり前なのですが…)
cでいうポインタの様な考え方を使えば、
”配列の中身が変更されたら、引数も直接変更される”
様なプログラムが書けると思うのですが…
そのようなことはphpで実現可能なのでしょうか。
まあ、ひとつひとつif文で分ければ済むことなのですが。
「私ならこういう風に書く」という意見でも良いので、どなたかご教授お願いしま
す。
_________________________________________________________________
会員登録は無料 充実した出品アイテムなら MSN オークション
http://auction.msn.co.jp/