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

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

■ このスレッドは過去ログ倉庫に格納されています
00019092006/06/23(金) 01:59:03ID:lPdqGX0Z
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0799nobodyさん2006/07/04(火) 15:11:05ID:???
>>796
つ PHP-usersに入会

最近そんな話題が出てた。
0800nobodyさん2006/07/04(火) 15:13:11ID:???
使うのに手間が増えるので掲示板にそういう認証を用いるのはどうかと思うけどね
やはり入力文字で弾くのが良いかも
0801nobodyさん2006/07/04(火) 15:17:00ID:???
>>796
名前タイトルメッセージで、
mb_strlen == strlen
なら投稿をはじく
0802nobodyさん2006/07/04(火) 15:43:54ID:???
>>796
リファラをチェックして本来の投稿フォームからでなければ弾く。
08037962006/07/04(火) 15:58:59ID:BWAomZFI
>>797 >>800
認証のようなことは、確かにしたくはありません。

もちろん、今まで何も手を打たなかったわけではなく、
NGワード(COOLとかNICEとか)を設定して、それがあればerror()で止めていたのですが、
このところ毎日20件以上も来るようになり、毎回投稿内容が異なるので、NGワードも無力化してしまいました。

>>802
IPは当然その度に異なるので弾けませんし、リファラも世紀のものを引き下げてくることが大半です。
0804nobodyさん2006/07/04(火) 16:00:43ID:???
>>803
例えば、JavaScriptでフォームの一部を出力するようにすれば大分はじけると思うけど?
画像認証はダルイからほんとおすすめできない。
08058012006/07/04(火) 16:52:19ID:???
ちなみに漏れのサイトは、この方法で英語のURL書きまくった書き込みはピタリとなくなった。
韓国系?や、日本語入ったのはだめだけどな。
0806nobodyさん2006/07/04(火) 17:06:03ID:???
なるほど。
ctype_alnumでやってたけど,そっちの方が簡単っぽいな。
0807nobodyさん2006/07/04(火) 17:42:10ID:pNwfONld
php初心者なんですけど、くだらねぇ質問ですが、
phpはhtmlベースにかいて、<?php ?>で囲みまくるのか、
<?php ?>の中でechoとかprint使いまくって、html出力するのか
どっちが書きやすいですか?
0808nobodyさん2006/07/04(火) 17:45:22ID:???
>>807
すきにしろ
0809nobodyさん2006/07/04(火) 17:48:13ID:???
じゃーどっちが見やすいですか?
0810nobodyさん2006/07/04(火) 17:54:43ID:???
>>809
周りの人間10人にアンケートを取ったところ奇麗に5:5となりますた。

とでも答えれば満足?

どういう書き方が良いかなんて書き手の趣味にもスクリプトの内容にもよるんだから、
自分の主観で見やすいと思った書き方で好きに書けばいいじゃん。
0811nobodyさん2006/07/04(火) 17:57:18ID:???
ってか、テンプレートエンジン使え
0812nobodyさん2006/07/04(火) 17:59:57ID:???
>>811
テンプレートエンジンですか。調べてみます。
ありがとうございます。
0813nobodyさん2006/07/04(火) 18:01:21ID:???
>>812
フレームワーク使え。
0814nobodyさん2006/07/04(火) 18:34:24ID:???
PHPとCronでMySQLのデータベースのバックアップを丸ごとやりたいんですが
バックアップの部分をどうやって書いたらいいかわかりません
お願いします
0815nobodyさん2006/07/04(火) 18:44:27ID:???
>>814
シェルで一発でしょ
そして、スレ違い
0816nobodyさん2006/07/04(火) 18:56:38ID:???
>>814
MySQL Administratorでも使っとけ
0817nobodyさん2006/07/04(火) 18:57:08ID:???
>>815
phpでは無理なんですかね?
そして、どのスレならOKなんですか?
0818814=8172006/07/04(火) 18:57:57ID:???
名前忘れてました
お世話になります
0819nobodyさん2006/07/04(火) 18:59:44ID:???
>>817
Cronって言ってる時点で犬とかでしょ
PHPでも無理ではないが結局はシェル投げた方が早い
0820nobodyさん2006/07/04(火) 19:19:15ID:???
>>817
*で全部拾ってフィールド名とテーブル定義拾って
INSERT文にするなりすればいいのよ。
とりあえずmysqlの標準関数全部見たよね???
0821nobodyさん2006/07/04(火) 19:25:17ID:???
>>817
MySQLスレ。

MySQLから提供されてるツールを利用するのを、俺も薦める。
MyISAMだけならデータベース"ファイル"をそのまま
コピーしておくだけというのも結構良いぞ。
0822nobodyさん2006/07/04(火) 21:14:44ID:n70oEdEe
form actionで、phpのfunctionを指定することはできますか?
0823nobodyさん2006/07/04(火) 21:16:42ID:???
意味がわからん
0824nobodyさん2006/07/04(火) 21:17:59ID:???
>>822
変数渡してPHP側で振るよろし
0825nobodyさん2006/07/04(火) 21:21:00ID:n70oEdEe
form action="hoge.php"
はできます。
hoge.php内のfunction varがあるとして
form action="hoge.php var()"みたいにできないかなと思いまして。

0826nobodyさん2006/07/04(火) 21:30:44ID:???
$str = preg_replace("/(<(\w+)[^>]*>)([^<]*)/","\\1\\3</\\2>",$str);
タグの閉じ忘れをやろうとしているのですが
これ以外にスマートな方法はありますでしょうか?
また、<!--の閉じ忘れはどうすればよいでしょうか?
0827nobodyさん2006/07/04(火) 21:44:48ID:???
>>825
PHPでやりなよ。
0828nobodyさん2006/07/04(火) 23:33:25ID:???
>>825
hiddenなりでパラメータ渡して、hoge.phpの中でif文使って該当の関数を呼び出す。
0829nobodyさん2006/07/04(火) 23:40:50ID:9/r1waWb
ブラウザで、
ボタン1を押したら aaaa.txt
ボタン2を押したら bbbb.bmp
ボタン3を押したら aaaa.pdf
を印刷するような事をしたいんですが、どうするのが妥当でしょうか。

HTMLだけじゃ無理ですよね?PHPでこーいうのできますか?
0830nobodyさん2006/07/04(火) 23:44:53ID:???
YYYY/MM/DDの形式で入力された日付が現在と比べて、
現在か過去か未来かを判定するにはどうしたらいいのでしょうか。

0831nobodyさん2006/07/04(火) 23:51:54ID:???
>>829
サーバー、プリンタが手元にあるイントラネットなら印刷用のtmpファイルを作って、
system("lpr tmpファイル");等として、バッチ的に出すのが手かと。
0832nobodyさん2006/07/04(火) 23:52:04ID:???
>>830
if(date("Y/m/d") > 'YYYY/MM/DD'){
過去
0833nobodyさん2006/07/05(水) 00:24:16ID:???
>>830
strtotime関数
0834nobodyさん2006/07/05(水) 00:27:07ID:???
「\t\t\t\thogehoge\t\t\thogehoge\t\t\t」 となっているテキストの重複タブ部分をひとつの_に置換したいのですが、
$hoge = $ereg_replace("\t","_",$hoge) だと、「___hogehoge__hogehoge___」となってしまいます。
「_hogehoge_hogehoge_」にするにはどうすればいいのでしょうか?
0835nobodyさん2006/07/05(水) 00:28:30ID:???
当たり前のことを書いていました……。
$hoge = $ereg_replace("\t+","_",$hoge) でもだめです。
0836nobodyさん2006/07/05(水) 00:28:59ID:???
>>834
$hoge = preg_replace('/\t+/', '_', $hoge);

因みにスレ違いな。次からは正規表現スレで。
08378262006/07/05(水) 00:39:11ID:???
>>836

>>826もそうでしょうか?
0838nobodyさん2006/07/05(水) 00:43:49ID:???
>>837
それ以前の問題で、その方法は全くお勧めできない。

HTMLタグを許可するなら予めhtmlspecialcharsをかけてから許可するタグ・属性だけを元に戻すのが最善。
管理者専用であってもCSRFの可能性があるから全タグの無条件許可は止めとけ。
08398342006/07/05(水) 00:45:51ID:???
>>836
ありがとうございます。実際には \t が 10-20 個ほどついているテキストだったのですが、
数は減ったもののすべて置換はできませんでした。正規表現板に行ってきます。
0840nobodyさん2006/07/05(水) 00:52:12ID:???
$hoge = implode('\t', explode('\t', $hoge))

という手法はどうだろう。
08418302006/07/05(水) 00:56:17ID:???
>>832 >>833

最初YYYY/MM/DDの/を除いた後に比較しようと思ったのですが、
どうも煩雑になってしまったのでして。


ありがとうございます。
0842nobodyさん2006/07/05(水) 00:58:28ID:???
pregで\t+はどうよ?
0843nobodyさん2006/07/05(水) 00:59:11ID:???
>>842
>>836
0844nobodyさん2006/07/05(水) 01:13:02ID:???
PHP4.4.2で

$contents = file_get_contents("http://www.yahoo.co.jp/";);
print $contents;

てやると強制終了しちゃうんですが、なんか設定がおかしいんでしょうか?
4.3.9だと問題ないのに…
0845nobodyさん2006/07/05(水) 01:20:37ID:???
散々既出
08468442006/07/05(水) 01:42:02ID:???
そうでしたか…
一年ぶりにphpさわったんで全然事情を知りませんでした。
どうも失礼しました。
0847nobodyさん2006/07/05(水) 02:50:45ID:???
USE hoge;

-- --------------------------------------------------------

--
-- テーブルの構造 `hoge_hoge`
--

という内容をsql.txt に書き込んで、
$sql = file_get_contents("sql.txt");
mysql_query($sql, $conn);
すると以下のエラーが出ます、
phpmyadminなんかでこのsql文打っても問題ないのに
何が原因でしょうか? mysql_escape_string($sql)とか色々やってみたけど
だめぽです。
数時間苦しんでます。へるぷみー



You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ';



-- -----------------------------------------------------
0848nobodyさん2006/07/05(水) 02:58:37ID:???
>>847
SQL文の末尾に余計な空白か改行が入ってるんじゃないかな。
MySQLの古いバージョンだとエラーになるんだよね、それ。
0849nobodyさん2006/07/05(水) 03:01:54ID:???
>>847
MySQL 使いではないけど一般的な切り分け方

1. $sql の内容が本当に sql.txt になっているか表示させてみる
 ※sql.txt を読むディレクトリが意図通りになっているか
2. $sql に sql.txt と同じものを代入して query 発行してみる
 ※そもそも mysql_query が phpmyadmin と同じ SQL 文を受け付けるのか?
  http://jp.php.net/manual/ja/function.mysql-query.php
  を見るとセミコロンを含んじゃ駄目だってあるし、複数行も良いのか分からん
0850nobodyさん2006/07/05(水) 03:03:31ID:???
>>849 の自己フォロー
エラーメッセージに sql.txt の最初の数行が表示されてましたね。
じゃあ、2 だね。
0851nobodyさん2006/07/05(水) 03:46:59ID:pohb5aTE
質問させて下さい。
PHP5.1.4
WindowsXPsp2
apache2.2

と言う構成で運用しています。

PHPの構文についての質問なのですが、
大ループのような言う構文はあるのでしょうか。

Perlでは下記の構文です。
ROOP: {
〜
〜
}

私は「大ループ」と記憶しているのですが正式な名前が分からず
PHPマニュアルからもgoogleからも見つけることが出来ませんでした。

お力添えして頂けませんでしょうか。
0852nobodyさん2006/07/05(水) 03:48:14ID:???
>>847
PHPから実行するときはuse hogeの部分は事前にmysql_select_db("hoge")じゃないの?
そんなんmysql_queryで発行できないんじゃないか?
0853nobodyさん2006/07/05(水) 03:52:04ID:???
>>851
制御構造での「ラベル」かな。PHP ではないと思うけど
ネスとしたループ構造を抜けるためとかに使いたいなら
break に引数を付ければ実現できますよ。
ちなみに、ループは LOOP ね。
0854nobodyさん2006/07/05(水) 04:04:18ID:???
>>851
Perlはとりあえず置いといて、それがどういう動きをする構文なのか示した方がいいよ。
ちなみにPerlのそれは構文じゃなくて、ラベル+ブロックの組み合わせだと思う。
多重のループブロックの1番上に戻ったり抜けたりしたい場合、PHPではbreak 3;みたいに
ネスト数を指定したbreakやcontinueを使うようになってる。
08558512006/07/05(水) 04:49:55ID:???
レス有り難う御座います。
>>853
ラベルと言うんですね、初めて知りました。LOOPのご指摘有り難うございます。
恥ずかシィ。

>>854
目的は2通りありまして、どちらも通常のループ制御用途ではないのです。
1:見易くする為(セパレータやインデックス的用途)
メールフォームの入力データ妥当性チェックを例にしますと、
ルーチン:送信者名妥当性チェック
ルーチン:メールアドレス妥当性チェック
ルーチン:本文妥当性チェック
etc
と書きます。
ここで幾らサブファンクションに細かくわけても、ものによっては
if else 等の構文が複数入って大きなルーチンになるとゴチャゴチャします。
このような場合に、ラベルを使って、ココからココまでは、何のブロックか
と言うことを明示的に解りやすく書きたいのです。
コメント文は各構文の補足説明として使いたいと思っています。
08568512006/07/05(水) 04:50:30ID:???
連書き失礼します。

2:指定箇所まで処理を飛ばす。
if 〜
if 〜
if 〜

ルーチンA

1番目のifで真なら2番目以降は飛ばして
ルーチンAの行以降を読み込む。

if () {
if () {
if () {

}
}
}

このようにしても実現できますが可読性を
損ねてしまいますのでラベルを使えば解決できると考えました。
0857nobodyさん2006/07/05(水) 07:27:56ID:???
>>856
こんな風に書けば多少は見やすくなるかな?

try
{
  // 送信者名妥当性チェック
  if ($you == $hage) {
    throw new exception ($hage);
  }
  // メールアドレス妥当性チェック
  if ($omae == $hage) {
    throw new exception ($hage);
  }
  // 本文妥当性チェック
  if ($anata == $hage) {
    throw new exception ($hage);
  }

  /* ルーチンA */
}
catch
{
/* エラー時の処理 */
}
0858nobodyさん2006/07/05(水) 10:07:15ID:???
>>856
elseif
0859nobodyさん2006/07/05(水) 10:43:15ID:???
phpmyadminでローマ数字(�T・�U)などを含む値をインポートすると
?に文字化けしてしまうのですが、どうすれば回避できますか?
dumpファイルやmysql、phpmyadminの文字コードは全てUTF-8に統一しているのですが。
08608472006/07/05(水) 10:58:49ID:???
>>849
おっしゃるとおりっぽいですね。
となると解決策は、mysql_queryを行数文発行する、などが
あると思いますが、さすがにこれは厳しいです
phpからある程度のsqlを実行させる場合によい方法はないでしょうか?
0861nobodyさん2006/07/05(水) 11:01:25ID:???
>>860
> となると解決策は、mysql_queryを行数文発行する、などが
> あると思いますが、さすがにこれは厳しいです
なんで?

> phpからある程度のsqlを実行させる場合によい方法はないでしょうか?
system
0862nobodyさん2006/07/05(水) 11:56:24ID:???
PHPのCGIとPHPのApacheモジュールの違いって何ですか?
0863nobodyさん2006/07/05(水) 11:57:51ID:???
>>862
ネットスケープナビゲーターとインタネットエクスプローラーの違い
0864nobodyさん2006/07/05(水) 12:34:57ID:???
>>860
ループで回せばいいだけだろ
while($sql=fgets($fp)
{
mysql_query($sql, $conn);
}
0865nobodyさん2006/07/05(水) 12:39:54ID:???
>>862
CGIとして動くか、Apacheの拡張スクリプトとして動くかの違い
CGIが何かわからないなら

■参考

通信用語の基礎知識より"CGI" http://www.wdic.org/?word=CGI+%3AWDIC

・WWWで, WWWブラウザからの要求に対してサーバが別のプログラムを起動実行し, 結果をWWWブラウザに返す処理を行なうためのインターフェイス.
・イメージマップ, アクセスカウンタ, 訪問者登録, 掲示板(BBS)などを実現する際に利用されている.
・UNIXのshやその互換シェル, またはPerl, C, C++などが利用される.

■参考リンク
http://e-words.jp/w/CGI.html
http://www.tohoho-web.com/wwwcgi1.htm
http://www.tryhp.net/first.htm
http://www.web-terakoya.net/basic/a_1.html
http://homepage2.nifty.com/yoshi-m/makehp/cgi/lesson/cgi/1.htm
0866nobodyさん2006/07/05(水) 12:42:39ID:???
>>862
ApacheがPHPのスクリプトを実行するプロセスを起動して、その結果を受けって
処理する、というのと
Apache自身がPHPのスクリプトを読み込んで実行するという違い
0867nobodyさん2006/07/05(水) 13:04:54ID:???
用済みのセッションについて教えてください。

session_start();
$name = $_SESSION['name']; // ここで用済み

if (isset($_COOKIE[session_name()])) { // マニュアルから拝借
setcookie(session_name(), '', time()-86400, '/');
}
session_unset();
session_destroy();
session_write_close(); // この後もいろいろ続くので

こんな感じでさっぱりできますでしょうか
0868nobodyさん2006/07/05(水) 13:16:43ID:???
デストローイだとゴミが残るんだよね
08698602006/07/05(水) 14:02:44ID:???
>>864
その場合、改行を意識的に指定したSQL文でないと厳しくないですか?
(1行毎に内容が完結するSQL文を準備しなければならない)

system関数以外でよい方法はないでしょうか?
0870nobodyさん2006/07/05(水) 14:05:12ID:???
869は釣りだと思うんですが・・・w
08718672006/07/05(水) 14:29:29ID:???
>>868
あとはこの辺参考にすればすっきりでしょうか?
ttp://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#PHP_Session_end
0872nobodyさん2006/07/05(水) 16:58:27ID:???
2ch系掲示板サイトを運営してるんですが、
各板の上位5件のスレッドのリンクを生成、出力
というPHPを作りたいんですが、どうすれば良いでしょうか?

PHP ファイル 取得 リンク生成 等思いつく範囲の単語を入れてグーグルで調べてみましたが
答えは見つかりません
08738672006/07/05(水) 17:13:30ID:???
>872
2chでいうsubbback.htmlから5行読んだら?
0874nobodyさん2006/07/05(水) 17:14:51ID:???
>>872マルチ乙
0875nobodyさん2006/07/05(水) 17:17:50ID:???
>>869
mysql_queryは1行しか実行できない。

http://jp.php.net/manual/ja/function.mysql-query.php
ここのUser Contributed Notes
Predrag Supurovic
01-Dec-2003 09:52 と
samm at os2 dot ru
19-May-2004 06:15
参照
0876nobodyさん2006/07/05(水) 17:33:28ID:???
PHPとApacheを一通りインストールして

#!D:\php\php.exe
<?php
echo("test");
?>

が成功して、そのあとファイルを書き換えたら
急に動かずダウンロードをするようになった。
仕方ないからもう一度↑の内容に戻したら以下ずっと
実行せずにDLをするようになった。
どうやったら実行するようになりますか?
0877nobodyさん2006/07/05(水) 17:43:30ID:???
エスパーさん。お呼びですよ。
0878nobodyさん2006/07/05(水) 18:12:06ID:???
>>867
無駄な行が多いな。以下で十分だぞ。
ちなみに>>868の情報はウソ。もしゴミが残るというなら、具体的に実例を見せてみろ。

session_start();
$_SESSION = array();
session_unset();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
0879nobodyさん2006/07/05(水) 18:59:07ID:???
SW板から誘導されました

subject.txt → 特定スレの抽出 → datを数時間おきに取得

というような2ちゃんのdatを自動的に取得してくれる
過去ログ倉庫をブラウザではなくWeb上でやりたいんですが
スクリプトはありますでしょうか?もしくはヒントを下さい

特定スレの抽出は以下のようなスクリプトで出来ました
datを数時間おきに取得という部分で悩んでおります

<?
$fp=@fopen("http://鯖/板/subject.txt","r") or die("error");
$lines = file("http://鯖/板/subject.txt");
for ($i=0; $i<count($lines); $i++) {
if(stristr($lines[$i],"特定スレのスレタイ")){
list ($dat, $subject) = explode (".dat<>", $lines[$i]);
print "<a href=\"http://鯖/test/read.cgi/板/$dat/l50\" target=\"_blank\">$subject</a><br>";
}}
fclose($fp);
?>
0880nobodyさん2006/07/05(水) 19:18:32ID:???
>>879
ヒント 数時間に一度だけ回るアクセスカウンター
0881nobodyさん2006/07/05(水) 19:31:17ID:???
>>876
ダウンロードになるのはMIMEタイプが間違ってる可能性が高い。
php.iniの設定や置き場所は大丈夫?

ちゃんとしててそうなるなら
header('Content-Type: text/html; charset=Shift_JIS');
とか実行してみるとか
0882nobodyさん2006/07/05(水) 20:15:05ID:???
>>859について誰か教えてください
0883nobodyさん2006/07/05(水) 20:16:28ID:???
>>880
dat取得のヒントも頂けないでしょうか
08848672006/07/05(水) 20:19:29ID:???
>>878
ファイルが残るって意味だと思う。
>871参照

ところで
$_SESSION = array();
session_unset();
これは等価じゃないんですか?
0885nobodyさん2006/07/05(水) 20:41:22ID:???
>>884
空のファイルが残るくらいなら、別に問題は何もないよね。
0886nobodyさん2006/07/05(水) 20:48:12ID:???
PHPって何ですか?教えてください!
0887nobodyさん2006/07/05(水) 20:48:55ID:???
>>883
http://鯖/板/dat/番号.dat

あとはfsockopenでHTTP通信して差分取得できればベスト
0888nobodyさん2006/07/05(水) 20:53:03ID:???
以下のような感じで$this->aに値を追加したいのですが、参照は出来ても書き込む事が
できません。どうしたら良いのでしょうか?。

class abc{
var $a;
function abc(){
$p =& $this->a;
return $p;
}

function main(){
$p = $this->abc();
$p[] = 1;         ← こんな感じで$this->aに値を追加したい
}
}
0889nobodyさん2006/07/05(水) 21:11:48ID:???
$p[] = 1;
というのが非常に意味不明。

$p がクラス abc であるならば、
$p->a = 1;
みたいな形になるのでは?
0890nobodyさん2006/07/05(水) 21:13:19ID:???
しかも、
function main()に、
$thisがあるのも意味不明だ
0891nobodyさん2006/07/05(水) 21:14:45ID:???
>>888
ttp://www.php.net/manual/ja/language.variables.php
0892nobodyさん2006/07/05(水) 21:15:11ID:???
>>888
つ http://jp.php.net/manual/ja/language.oop5.php#op5.intro

これを見て勉強しろ。

class User {
var $test;
var $test2;
}

$user1 = new User();
$user2 = new User();
$user1->test = "user1's test";
$user1->test2 = "user1's test2";
$user2->test = "user2's test";
$user2->test2 = "user2's test2";
0893nobodyさん2006/07/05(水) 21:16:21ID:???
>>890
function main() はメンバ関数
0894nobodyさん2006/07/05(水) 21:18:00ID:???
>>888
メンバ変数に直接値を代入するのはあまりオススメしない
08958692006/07/05(水) 21:30:03ID:???
>>875
サンクス、それ使って実際のsql.txtの半分くらいは実行できました。
しかし、「{」が含まれる行でエラーが発生しました。
エスケープしてもエラーは変わらず、です。
あと一歩、どうかお助けを
08968882006/07/05(水) 21:31:04ID:???
マニュアルにある「$bar = &test(); // 無効。」という事で納得しました。

$a =& $b;
$a[] = 'a';
print_r($b);
というのをfunctionから返ってきたもので参照?したかったのですが無理なのですね

しかも、main()ってあったんですね・・・
http://php.s3.to/man/function.main.html
0897nobodyさん2006/07/05(水) 21:35:02ID:???
・・・・・・・・・・まあいいや('A`)
0898nobodyさん2006/07/05(水) 21:55:37ID:???
>>895
エラーになる SQL 文と、エラーの内容は?
0899nobodyさん2006/07/05(水) 22:11:44ID:???
参照について質問なのですが、PHP4や5で違いってあるでしょうか?
なんだかPHP4だと参照が崩れて、5だとうまくいくような・・・
※長くてすみません。
class E {
var $keyName;
var $value = "";
function E( $keyName ) {
$this->keyName = $keyName;
} }// ↑要素のクラス
class C {
var $array;
function C(){ $this->array = array(); }
function getE( $code ) {
return $this->array["$code"];
}
function setE( $e ) {
$this->array[$e->keyName] = $e;
} }// ↑要素を集めるクラス

$e = new E( "test" );
$c = new C();
$c->setE( $e ); // 要素を収集する
$e->value = "hello"; // オリジナル要素の値変更
$test = $c->getE( "test" );
if( $test->value == "hello" ) // 参照先の値を確認
// ここで参照しない場合がありました。
// 設定や何か環境でしょうか。アドバイスなどありましたら、お願いします。
■ このスレッドは過去ログ倉庫に格納されています