トップページphp
1001コメント347KB

【PHP】下らねぇ質問はここに書き込みやがれ 27

■ このスレッドは過去ログ倉庫に格納されています
00011様2006/08/23(水) 00:54:52ID:uM5Jzzy0
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0487nobodyさん2006/08/30(水) 15:47:45ID:???
>>479
俺はそれやらされたからはげちまったんだぞ!(´;ω;`)
0488nobodyさん2006/08/30(水) 15:50:21ID:???
>>483
ありがとう
0489nobodyさん2006/08/30(水) 16:07:35ID:???
自分の書いたプログラムを他人に見せられるほど自信家じゃぁない
0490nobodyさん2006/08/30(水) 16:28:33ID:???
なんのこっちゃ
0491nobodyさん2006/08/30(水) 16:40:31ID:???
>>489
ソースはきれいに書こうな。
0492nobodyさん2006/08/30(水) 16:41:46ID:???
>>476
将来のことなんて誰も分からないだろ。俺らが止めろとか言うことじゃないと思うよ。
センス無いと思ってた奴が将来画期的なシステムを作り出すかもしれないし。
食えないと思ったら自分で気づくだろうし。
0493nobodyさん2006/08/30(水) 16:44:10ID:35ExyJAh
投票システムを作っているんですが、一人が何票も投票する、いわゆる「二重投票」をされない
ようにするにはどうすればよいでしょうか?
(そりゃぁ完全にそれを防ぐことは不可能だとは思うけど)

データの管理はデータベースを使用しています。

クッキーを使おうか、それとも投票者のIPを記録してみるか悩んでいます。
みなさんはどうしていますか?
0494nobodyさん2006/08/30(水) 16:44:32ID:F9+d4VtV
>>480 >>484 >>485 >>486 >>487
レスありがとうございます
そのような仕事は、大変なのですね

>>480さんの言われるとおり規模によるものでしょうから
一概には何とも言えないものであるとは思いますが
それ以前に、
他人の書いたプログラムを見るのは
>>484さんの仰るように相当な労力が掛かってくるのですね

>>485さん、>>487さん
貴重な体験を聞かせて頂いてありがとうございました
でも、そのようなお仕事をこなされたのですね
尊敬いたします

>>486さん、詳しく説明して頂いて感謝致します
1つのwebサイトなら納期1〜2ヶ月で計30万〜150万くらいが相場なのですかね?
要求定義書、基本設計仕様書、詳細設計仕様書、運用マニュアル、保守マニュアル、運用データ統計表について
あまり聞きなれないので少しググって見たのですが
運用データ統計表というのは、よく分かりませんでした。これは、どのようなものなのでしょうか?
基本設計仕様書というものと、基本設計書というのはほぼ同じものだということなのでしょうかね?
明確な違いが記述してあるサイトが無く、同じような意味合いで使われているようでしたので

長文失礼致しました
0495nobodyさん2006/08/30(水) 16:48:44ID:QW9pyzd4
やりたいこと:アップロードした画像を幅400pxに整形したい
コード:
<form method="post" action="./test.php">
テスト用<br />
<input type="file" name="test" id="test" /><br />
<input type="submit" value="送信" />
</form>
<?
if($_POST){
$tmp=$_FILES['test']['tmp_name'];
list($width,$height)=getimagesize($tmp);
$newwidth=400;
$newheight=400*$height/$width;
$newimage = imagecreatetruecolor($newwidth, $newheight);
$oldimage = imagecreatefromjpeg($tmp);
if(imagecopyresampled($newimage, $oldimage, 0, 0, 0, 0, $newwidth, $newheight, $width, $height)){
imagejpeg($newimage,'./test/2-1.jpg');
}else{
echo("複製失敗");
}
}
?>
実行結果:
ファイルをアップロードすると、下記の警告が出た後「複製失敗」が出力されます。
Warning: Division by zero
Warning: imagecreatetruecolor(): Invalid image dimensions
Warning: imagecopyresampled(): supplied argument is not a valid Image resource
参考にしたのはhttp://jp2.php.net/manual/ja/function.imagecopyresampled.phpのコードです。
よろしくお願いします。

0496nobodyさん2006/08/30(水) 16:55:28ID:???
>>495
これってPHPでやる必要あるのか?
0497nobodyさん2006/08/30(水) 16:56:24ID:???
Division by zero って0で割るときに出るエラーじゃなかったっけ。
大きさ出すときの計算間違ってない?
0498nobodyさん2006/08/30(水) 17:01:54ID:GN99dFvP
PHPでメール送信系の関数でメールを送信してしまう前に
指定のアドレスが存在するか調べる関数とかそれに似た効果をもつ
関数ありますか?みなさん何使ってますか。
0499nobodyさん2006/08/30(水) 17:25:02ID:???
>>498
正規表現で正しそうなアドレスを受け入れるだけかな。
DNS見に行ってドメインが存在するかどうか確かめるとかあるけど、面倒なんで。
送った後のエラーメールの処理をきちんとやる。
0500nobodyさん2006/08/30(水) 17:35:19ID:QW9pyzd4
>>496
このコードはテスト用に簡単に組んだものですので。。
1枚2枚ならFireworksで手動で作業しますが、数百枚単位で、しかも自動で
サイズ変更をしたいのです。
具体的には、画像アップロード掲示板のようなもので、サムネイル表示を
したいと思っています。

>>497
division by zero が出るのは、たぶんgetimagesizeのところで$width,$heightが
正常に取得できてないのでは?と自分なりに考えています。$widthが0なら
「0で割り切れません」が出ても当然ですよね…
PHPマニュアルでgetimagesizeの説明を見ると、引数にファイル名を取れる
はずなのに、なぜ????と悩んだ末、こちらに書き込んだ次第です。
0501nobodyさん2006/08/30(水) 17:38:37ID:???
>>500
変数の値くらい調べてから聞きなはれ
0502nobodyさん2006/08/30(水) 17:39:45ID:???
>>500
> 正常に取得できてないのでは?と自分なりに考えています

考えても何も解決しない。
なぜ echo $width; をやってみようと思わないのか?
0503nobodyさん2006/08/30(水) 17:41:12ID:???
>>500
そこらで転がっているサムネイラーじゃなくて?
検索で結構HITする筈なのだが
0504軟式PHP2006/08/30(水) 17:52:08ID:???
>>498
スパムの温床になるので、指定したアドレスが存在するかどうかは応答しなくなったサーバーが多くなったので
送信して確かめるしかないね。
0505nobodyさん2006/08/30(水) 18:05:19ID:???
お金を払うのでスクリプトを改造して欲しいというのはどこのスレにいけばいいですか?
0506nobodyさん2006/08/30(水) 18:06:40ID:???
>>505
それは2ちゃんじゃなくて会社に頼めばいいのでは・・・
0507nobodyさん2006/08/30(水) 18:12:36ID:QW9pyzd4
>>502
それが、
echo $width;
echo $height;
をスクリプトの途中に入れても、何も出力されないんです。
前後に<br />をつけてみたり、<span></span>をつけてみたりすると、<br />や<span></span>だけ
出力されます。

>>503
スミマセン、見当たりませんでした。
探し方が悪いようなのでもう少し探してみます…
0508nobodyさん2006/08/30(水) 18:19:04ID:???
配列にある要素が入っていた場合、
$hogeにその配列を入れるのはどのようなやり方(関数)が最適でしょうか?


$hoge = array(
'0'=>array('hoge','foo','yahoo'),
'1'=>array('foo','gahoo','doon','zoon'),
'2'=>array('too','qoo','echo','zoon'),
);

こんな配列があったとき、
fooという値がある配列をそっくりそのまま$hoge2へ移したいのですが
0509nobodyさん2006/08/30(水) 18:19:14ID:???
それ getimagesize でデータ拾えてないんじゃね?

var_dump(getimagesize($tmp));

してみた?
0510nobodyさん2006/08/30(水) 18:19:38ID:???
>>507
ググル先生「サムネイル php」にて検索
こんなんじゃなく、もっと高尚な事ならスマン
0511nobodyさん2006/08/30(水) 18:19:49ID:???
>>507
お金払えばやってあげるよ
0512nobodyさん2006/08/30(水) 18:27:21ID:???
>>506
そんなに複雑な機能をつけたいのではないので、
2chの識者の方々にお願いできれば、と思ったのです。
0513nobodyさん2006/08/30(水) 18:29:37ID:???
>>512
いくら出すの?
0514nobodyさん2006/08/30(水) 18:36:14ID:???
>>508
in_array
そしてarray_push
05154942006/08/30(水) 18:40:58ID:F9+d4VtV
あれからずっとググっていたのですが、
UI(ユーザインターフェイス)設計書とはどんなものなのでしょうか?
0516nobodyさん2006/08/30(水) 18:59:02ID:???
自クラス内のhoge関数を使用したい場合、

$func = "hoge";
$this->$func();

という記述は問題ないでしょうか?
0517nobodyさん2006/08/30(水) 19:01:44ID:???
>>513
相場がよくわからないのですが、実際に見積もりをして頂けたら。
05182006/08/30(水) 19:04:27ID:???

  ページャーすべてうまくいきました。 ありがとうございました^^
  ついでに今 全○件中 ○〜○件表示 っていうのもなんとかできました。

  昨日PHPのこと知っていろいろと模索しながらやりましたが、
  いろいろできるんですね。
  もう何冊も読破した人で、これはよかったという本があれば教えてください。
  明日、本屋いってきます。

  それと、これでメシ食おうなんておもってませんw

05195132006/08/30(水) 19:09:30ID:???
>>517
スクリプト見せてもらわないとなんともいえませんのでメールください。
手間にもよりますが1000円とかではたぶん無理です
0520nobodyさん2006/08/30(水) 19:43:32ID:nBzkjiOS
PHPでタイマー?のような関数ってありますでしょうか?

例えば、同じ書き込み内容を20時と20時10分にわけて送信すると行った感じです。
最初の送信をして10分立ってからもう一度送信するというような。
0521下らねぇ質問ですが、、、2006/08/30(水) 19:45:34ID:???
今CSVのデータをつかってサイトを構築してるのですが、
これをSQLなどのデータベースに移行するのは難しいのでしょうか?
むずかしいのなら業者に頼みますが、個人でもできる程度ならがんばりたいのですが・・・
0522軟式PHP2006/08/30(水) 19:51:19ID:???
>>520
素直にcron使ったほうがよさそう。

>>521
難しくない。データベースの種類を書いてないのでアドバイスしようがないが
大抵のDBにはインポート機能がついてる。PHPの質問じゃない気がするんだが…。
0523nobodyさん2006/08/30(水) 19:54:13ID:???
>>494
> >>486さん、詳しく説明して頂いて感謝致します
本職コンサルじゃないんで「多分そんな感じ」程度です。

> 1つのwebサイトなら納期1〜2ヶ月で計30万〜150万くらいが相場なのですかね?
あくまで推測です。コンサル自体の相場と作業分量と人的労力からこんなもん?と計算しただけ。
実際のとこはホントのコンサルに見積もってもらってください。

> 要求定義書、基本設計仕様書、詳細設計仕様書、運用マニュアル、保守マニュアル、運用データ統計表
いずれも「そのもの」の形の書類は無いです。これは大雑把にカテゴリ分けしただけで、
実際はそれぞれが複数の書類によって構成されることになると思います。
例えば基本設計の仕様書については、プログラムやDBテーブルなどの基本仕様書の他、
ページ遷移図、状態遷移図など多数の資料が添付されていないとダメでしょう。
運用データの統計は、1日のアクセス量、ピーク時のアクセス量、回線転送量、
1アクセス毎のCPU負荷、DBの総データ数、クエリー発行数など、実際の運用から
分かっているデータを統計して資料化しないといかんでしょう、ってことです。
アクセス量に関しては要求定義の中にも「当初見積もり」と「将来的な推定値」が
汲まれてなければいけないと思いますが、その上で実際の運用時のデータも必要です。
そこまでちゃんと資料化してないと「改変も考慮したレベルで仕様が把握されている」とは言えないと思います。

ま、通常のコンサルのやってる「システム再構築の前半部分の手順」そのものだと思うので
見積もり予測はそこから算出しています。
0524nobodyさん2006/08/30(水) 19:58:32ID:1H+VLBSI
>>520
出来なくはないが激しく迷惑
0525nobodyさん2006/08/30(水) 20:00:30ID:???
>>520
一般的にはcronで定期的にPHPを実行→指定時間なら送信
って作り方をする。
タイマーみたいなマネをするとそのPHPが10分ずっと動きっぱなしになってしまうので大迷惑。
0526nobodyさん2006/08/30(水) 20:02:23ID:???
>>515
画面のフォーム形式やボタンと操作方法、画面遷移などについて定義した設計書かと。
0527nobodyさん2006/08/30(水) 20:06:59ID:???
>>505
匿名掲示板でどうやってお金のやり取りをするのか興味あるなー
0528nobodyさん2006/08/30(水) 20:31:34ID:???
プラチナカードがきくPHP屋さんいますか?

youTUBEみたいなのつくって欲しいです。 おいくら?

0529nobodyさん2006/08/30(水) 20:48:20ID:???
ここは依頼スレじゃないです
0530nobodyさん2006/08/30(水) 21:12:46ID:???
>>529
おめーにきいてねー    おいくら?

0531nobodyさん2006/08/30(水) 21:24:45ID:???
3億円
0532nobodyさん2006/08/30(水) 21:53:36ID:???
>>508
$hoge2 = $hoge;
0533nobodyさん2006/08/30(水) 22:06:18ID:???
結果をセットしてあるクエリから決まった行番号から行番号までをPHPで取得したいんですが
どうすれば効率がよいですか?
今は$cntと$startと$endを作って
for($cnt=0;$date=mysql_fetch_object($hoge);$cnt++){
if($cnt>=$start && $cnt<=$end){・・・・・・・・・
こんな風にやってcntがstartからendまで表示させるようにしてるんですが
もっとよさそうな書き方があると思いまして
0534nobodyさん2006/08/30(水) 22:19:41ID:VJ9Gj9KK
意味不明
0535nobodyさん2006/08/30(水) 22:21:09ID:1H+VLBSI
>>533
どうせSQLを使うならSQL側で処理する方が良いですよ
検索結果からの順番ならLIMITでも使ってくださいな
0536nobodyさん2006/08/30(水) 22:21:32ID:???
行番号の範囲を指定してSELECTすれば良いんじゃないか?
0537nobodyさん2006/08/30(水) 22:28:26ID:???
ここはほんとレベル低いな。。。
0538nobodyさん2006/08/30(水) 22:32:00ID:???
>>537
スレタイ
0539nobodyさん2006/08/30(水) 22:55:46ID:H9L03cAN
関数の中から、
使ってるローカル変数のリストを取得することはできますか?

func(){
$hoge = 1;
$fuga = 2;
(処理)
}

処理を行うと、hogeとfugaを取得するような感じです。
0540nobodyさん2006/08/30(水) 23:08:40ID:???
get_defined_varsでアサーリできますた
0541nobodyさん2006/08/30(水) 23:33:30ID:3wkmyd6L
<?= $_GET['test'] ?> というプログラムで、
test.php?test=%00 と呼び出すと、\0 と表示されるのです。

別の言い方をすると、
<?= urlencode( $_GET['test'] ) ?> というプログラムで、
test.php?test=%00 と呼び出すと、%00 ではなく %5C0 と表示されるのです。

何とかならないでしょうか。
0542nobodyさん2006/08/30(水) 23:37:51ID:UvEI8vY7
レンタルサーバとかでphpが動作するがセーフモードとして

と書かれていますが、本屋さんに売っているphpの入門書どおりのphpのインストールしたやつと
何がちがうんですか?
0543nobodyさん2006/08/30(水) 23:40:59ID:???
>>542 特定の関数でファイルのオーナーを見るようになる
0544nobodyさん2006/08/30(水) 23:44:05ID:???
>>541
それはそうです。0x00はnull文字ですから¥0 が返されます。
0が欲しいなら test.php?test=%30 で呼び出さないと。
0545nobodyさん2006/08/30(水) 23:47:30ID:???
>>535
LIMITでうまくできました
ありがとうございます
05465422006/08/30(水) 23:48:07ID:???
>>543さん私にはむずかしいです。まだまだ勉強不足ってことですね
ちょっと調べてみましたけどいまいちわかりません。
あんまり使わない関数だらけなので、メールフォームや掲示板スクリプトなら気にすることもないですよね。
http://php.s3.to/man/features.safe-mode.functions.html

05475162006/08/30(水) 23:52:29ID:???
ぎぶみーあんさー
0548nobodyさん2006/08/30(水) 23:53:05ID:???
>>544 >>544 漏れはエスケープされていない\0というバイナリがほすぃのです。
もしくは引数でURLエンコードされた文字列を渡した場合、
展開しないで変数に入れる方法はアルでしょうか?
urldecodeで自前で展開すれば大丈夫なのです。

>>546 ファイル操作しなければ大丈夫です
0549nobodyさん2006/08/30(水) 23:53:15ID:???
>>493
IPでいいんじゃないの?
ある一定の短い期間に、同じIPから偶然別々の人が
その投票システムで投票する確率なんてかなり低いと思う。
0550nobodyさん2006/08/30(水) 23:57:47ID:???
>>439 クッキーのほうがよさげ。
クッキー食べないブラウザははじくようにして。
0551nobodyさん2006/08/31(木) 00:04:28ID:???
Oh, why not?
05525162006/08/31(木) 00:06:53ID:???
自己解決しました。
なんか基本を勘違いしてました。
0553nobodyさん2006/08/31(木) 00:24:08ID:???
うちの事務所のPCは、外に出る時のグローバルIPは全部いっしょだ
0554nobodyさん2006/08/31(木) 01:07:31ID:???
>>553みたいな環境もあるから>>550のいうとおりクッキーが一番
現時的かも
0555nobodyさん2006/08/31(木) 01:30:13ID:???
同一グローバルIPは、同じ地域のケーブルTV接続が丸ごと一緒だったりして難儀なんだよねー。
ただ、クッキーはブラウザでクリアして再投稿を繰り返せるからこれもどうかと思うけどね。
実際によくやられるし、これ。
こういう端末識別って難しいよ…
0556nobodyさん2006/08/31(木) 01:37:17ID:???
>>493
いっその事会員制にするって手もあるな。
ユーザID(メルアドでもOK)+パスワードで認証。
これが今のところ確実な方法じゃない?

でも、ユーザ登録の部分を作る手間と登録させるユーザの手間、そして
同じユーザが別のメルアドで登録してきたら防ぎようが無いという諸刃の剣
0557nobodyさん2006/08/31(木) 01:43:59ID:???
おまえらレベル ひっく ・・・

0558nobodyさん2006/08/31(木) 01:46:29ID:???
>>557
ではレベルの高い解決策を教えてくれたまえ
0559nobodyさん2006/08/31(木) 01:47:52ID:???
>>557
大丈夫か? しゃっくりには水をゆっくり飲むといいらしいぞ。
0560nobodyさん2006/08/31(木) 02:12:08ID:???
>>555 クッキーのクリア手間でしょ?
05615572006/08/31(木) 02:26:38ID:???
PHPごときの下級Pではしゃいでる奴まだいんだww

0562nobodyさん2006/08/31(木) 02:28:12ID:???
>>560
OperaやFirefoxではボタン一発だよ
0563nobodyさん2006/08/31(木) 02:36:17ID:???
>>561
かなりの高級言語だと思うぞ
0564nobodyさん2006/08/31(木) 02:40:06ID:???
多分CとかJavaとかとりあえずワザワザ毎回コンパイラ通さないと実行できない
言語はどんどん廃れていくだろうな。余程の速度を求められるシステム以外では
意味がないだろう。

おっと!インタプリタだってコンパイルしてるじゃんプギャーなんて突っ込みは無しだぜ!
0565nobodyさん2006/08/31(木) 02:50:03ID:???
>>557は下級言語の意味を知らないんだろ。
しょぼいからとかダサイからとかで、
下級言語とかそういうニュアンスじゃないぞ?
簡単に言えば、より人間がより理解しにくい言語を下級言語というんだ。
つまり人間が理解できないような難しい言語ほど下級言語なんだよ。
よく覚えときな。
0566nobodyさん2006/08/31(木) 02:58:33ID:???
>>565
上げ足取りのつもりは無いけど、本当は低級じゃないか?
0567nobodyさん2006/08/31(木) 03:00:32ID:sPSpAFNc
fwriteとfputsの違いがわかりません。
どちらを使っても機能はまったく同じなのでしょうか?
0568nobodyさん2006/08/31(木) 03:00:39ID:???
561のアレって下級「プログラム言語」じゃなく下級「プログラマ」なんじゃ・・・・
0569nobodyさん2006/08/31(木) 03:01:38ID:???
>>567
マニュアルに「fputs - fwrite()のエイリアス」とあるように、中身は全く一緒。
0570nobodyさん2006/08/31(木) 03:06:37ID:???
ありがとうございます。エイリアスとはそういう意味だったんですね。
0571nobodyさん2006/08/31(木) 03:55:32ID:???
>>568
後者ならPGといってもらいたいな。
まぁ何が言いたいかよくわからないやつだが、
夏も終わりだし暖かい目で見守ってやろうじゃないの。
0572nobodyさん2006/08/31(木) 04:05:57ID:???
「PHPごときの下級プログラマではしゃいでる」?
シャッチョサン、ニホンゴヘンデス
0573nobodyさん2006/08/31(木) 04:29:48ID:???
>572だとしても、「下級プログラマ」が何を指すのかさっぱりだ。
0574nobodyさん2006/08/31(木) 04:54:38ID:???
$カカロット=下級生物;
$べジータ=高等生物;

$phpぷろぐらま=$カカロット;
$C=$ベジータ
0575nobodyさん2006/08/31(木) 05:02:04ID:???
質問です。

$a = array("aaa","bbb","ccc");
$a = implode("",$a);
echo $a;

とやった場合にaaabbbcccと思ったとおりには出てくれるのですが、
これはPHPの正常な機能なのでしょうか?
$a = implode("",$a);この行で、$aが自身ではなく、
1つ前の$a = array("aaa","bbb","ccc");を評価しているようですが、
本当にこんなんでいいのだろうか?と思ってしまって・・・
プログラムはPHPが始めてなのですが、これは他の言語でも正常なのでしょうか?
05765752006/08/31(木) 05:06:36ID:???
すみません。日本語がおかしかったですね。
ようするに、曖昧な気がしてならないのですが、
このような使い方は普通にするのでしょうか?
普通は別々の変数に分ける気がするのですが、
前者の$aを使わない予定なら、こういう使い方もありかなと思いまして。
0577nobodyさん2006/08/31(木) 05:28:53ID:???
>>574
>$aが自身ではなく、 1つ前の$a を評価しているようですが

当たり前だろ。
変数はなぜ「変数」という名前なのか、よく考えてみたまえ。

ただまあ、配列から配列でない変数にする場合は、
同じ変数名のままだとなんとなく気持ち悪いけどな。
0578nobodyさん2006/08/31(木) 05:35:14ID:???
>>577
ちょ…、アンカー間違ってるぞ。カカロット。
0579nobodyさん2006/08/31(木) 05:46:21ID:???
>>575
PHPに限らずほとんどのプログラム言語でそういうもの。
$a = 式; の式の部分では1つ前の行までの状態を元に実行が行われ、
その結果が改めて $a = の部分で$aに格納され直すことで内容が更新される。
05805752006/08/31(木) 05:48:08ID:???
>>577
>変数はなぜ「変数」という名前なのか、よく考えてみたまえ。
なるほど。理解できた気がします。

>ただまあ、配列から配列でない変数にする場合は、
>同じ変数名のままだとなんとなく気持ち悪いけどな。
ではこういうケースでは分けることにします。

どうも回答ありがとうございました。
05815752006/08/31(木) 05:49:28ID:???
>>579
>PHPに限らずほとんどのプログラム言語でそういうもの。
これを聞いて安心しました。
PHPは曖昧だとか、よく他の掲示板で見るので、
こういうのがPHPの曖昧なとこかな?と勘違いしていました。

ご丁寧に説明していただきありがとうございます。
05825792006/08/31(木) 05:49:39ID:???
ただ、厳密な他の言語では上の$aと下の$aがデータの形式が違う(この場合は配列とスカラー)ことで
型エラーを起こす場合があるので注意。
PHPでは$aとするだけであらゆるデータ型を格納可能なので、そういった融通のある使い方ができる。
0583nobodyさん2006/08/31(木) 05:49:59ID:???
>575-576
> $aが自身ではなく、 1つ前の$a を評価しているようですが
ひょっとして、= を数学的な記号(左辺と右辺が同値)と勘違いしてないんだろうね?
ttp://jp.php.net/manual/ja/language.operators.assignment.php

> このような使い方は普通にするのでしょうか?
変数名に合った値なら、あり得る。
変数の数を減らすためだけに、流用するのは変だけど。
05845752006/08/31(木) 06:04:19ID:???
>>582
>$aと下の$aがデータの形式が違う(この場合は配列とスカラー)ことで
>型エラーを起こす
ということは、将来他の言語も触ることを想定すると、
きっちり分けたほうが良さそうですね。

>>583
>ひょっとして、= を数学的な記号(左辺と右辺が同値)と勘違いしてないんだろうね?
仰る通り、勘違いしていたかもしれまん。

>変数の数を減らすためだけに、流用するのは変だけど。
変数の名前付けが下手で、よく他の変数名と似てしまうため、
悩んだ末に、減らそうと思ってしまいました。
他人にソースを見せるわけではないので、
別にどんな変数名でもいいんですよね…
ちょっと意識しすぎていました。

ということで、他の言語にも融通がきくように、
データ形式が違う場合はこのような使い方をしないように注意したいと思います。
その前にデータの形式を理解していないので、そこから勉強してきます。

ご丁寧にどうもありがとうございました。
0585nobodyさん2006/08/31(木) 07:00:34ID:???
PHPから始めてCとかJavaやると型がうぜーと感じてしまう…
0586nobodyさん2006/08/31(木) 07:30:15ID:???
でもPHPって型が融通ききすぎて、関数の戻り値で型が変わることがあって面倒だよね。
配列戻りの関数でFALSEとか返されると、いちいち型チェックのコード挟まないと
変なとこで実行時エラーになっちゃうんだよなー。
■ このスレッドは過去ログ倉庫に格納されています