2006年06月27日

値の交換(swap)について

PHPにはswapという関数はありません。
$aと$bの値を入れ替えたい場合って、結構ありますよね。

通常は、3番目の値を一時的に使用して、以下のようにするのではないでしょうか。

// Initial values.
$biggest = 1;
$smallest = 10;

// Instead of using a temporary variable...
$temp = $biggest;
$biggest = $smallest;
$smallest = $temp;



list関数をうまくつかえば、一行で書けます。

// ...Just swap the values.
list($biggest, $smallest) = array($smallest, $biggest);


ちょっと便利、かと。
list関数って普段あまり使われなさそうですが、たまには使ってみてはいかがでしょう。

参考:PHPドキュメントのlist関数のページ
posted by PHP初心者@blogger at 22:00| PHP | このブログの読者になる | 更新情報をチェックする

2006年06月20日

配列の値コピーについて

PHPは基本的にバージョンが上がっても
今まで作成したスクリプトはそのまま動くように作られています。

ですが、一部、PHP4と5で挙動が異なっていることが報告されている
ケースもあるようです。

たとえば、配列$a1を配列$a2にコピーしたい場合。
$arr2=$arr1 とすると
PHP4→値渡し(コピー)
PHP5→参照渡し
になってしまうそうです。

$arr2=array_diff($arr1,array());
とすれば、期待通りきちんとコピーされるようです。
※PHP4.3.11で確認しました

見た目おかしなプログラムになってしまいますが、PHPのバージョンが
上がることを見越して、予め手を打っておきたいですね。

参考:PHPマニュアルの「配列」の項目
posted by PHP初心者@blogger at 19:55| PHP | このブログの読者になる | 更新情報をチェックする

2006年06月12日

ホラー : セキュリティに注意!

久しぶりの更新です.
先日,PHPを勉強するためスクリプトを購入しました.
人が書いたスクリプトを読むのは勉強になりますね.
しかし,1つおかしいところを見つけました.
なんといくつかのページにGETを利用した,DBの中身を消去する関数が含まれたのです.知らない人に外から呼び出されたら・・・怖いですねー.ぞっとします.

このようなGETによる値の受け渡しにリスクがあることがわかったので,PHPの値の受け渡し方法について調べてみました.(下記の"参考")

今までGETの利点がわかっていなかったのですが,
”GETならURLさえ指定すればCGIスクリプトを動かすことができる”
ということはGETの大きな利点だなぁと思いました.

例えば,Googleでの検索結果のURLを友達に教えれば,同じ結果を共有することができます.(例:)Google検索結果


参考:
http://ns1.php.gr.jp/pipermail/php-users/2004-March/021445.html
http://ipl.sfc.keio.ac.jp/text/basic-2004-4/main_c12_s3.html
posted by PHP初心者@blogger at 17:36 | TrackBack(11) | PHP | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。