私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 127
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>650
長い。3行で。
長い。3行で。
クラスのヒアドキュメント内での挙動について聞きたいです。
// 222を出力するクラスaaa
class aaa{
function aaa_m(){
echo "222<br>";
}
}
// クラスaaaを継承したクラスbbb
// ヒアドキュメント内でクラスaaaのメソッドを出力
class bbb extends aaa{
function bbb_m(){
echo <<< EOF
111<br>
{$this->aaa_m()}
333<br>
EOF;
}
}
$bbb = new bbb;
$bbb->bbb_m();
クラスbbbのメソッドbbb_mを使うと
111、222、333とならぶはずが
222、111、333となります
となってしまいます。ヒアドキュメント内でクラスを使うと
最初に呼び出される仕様なのでしょうか?
// 222を出力するクラスaaa
class aaa{
function aaa_m(){
echo "222<br>";
}
}
// クラスaaaを継承したクラスbbb
// ヒアドキュメント内でクラスaaaのメソッドを出力
class bbb extends aaa{
function bbb_m(){
echo <<< EOF
111<br>
{$this->aaa_m()}
333<br>
EOF;
}
}
$bbb = new bbb;
$bbb->bbb_m();
クラスbbbのメソッドbbb_mを使うと
111、222、333とならぶはずが
222、111、333となります
となってしまいます。ヒアドキュメント内でクラスを使うと
最初に呼び出される仕様なのでしょうか?
>>655
echo -> return
echo -> return
質問の答えの前にまず言っておくがコーディング自体に大きな問題がある
で、質問の答えだが、ヒアドキュメントのパースする際に
まずはその中の命令を処理する必要があると思わないか?
この結果には驚くような要素は何も含まれていないと思うよ。
で、質問の答えだが、ヒアドキュメントのパースする際に
まずはその中の命令を処理する必要があると思わないか?
この結果には驚くような要素は何も含まれていないと思うよ。
array_mapを使って下記のような関数をつくってたのですが、
クラスファイルで使いたいと思い、作り直しを試みているのですが
function hout($d) {
if (is_array($d)) {
return array_map('hout', $d);
}
else {
$d = htmlspecialchars($d, ENT_QUOTES);
}
}
以下がオブジェクトで
Class Hout
publice function __construct($d)
クラスファイルで使いたいと思い、作り直しを試みているのですが
function hout($d) {
if (is_array($d)) {
return array_map('hout', $d);
}
else {
$d = htmlspecialchars($d, ENT_QUOTES);
}
}
以下がオブジェクトで
Class Hout
publice function __construct($d)
Class Hout
{
private $d;
public function __construct($data)
{
$this->d = $data;
if (is_object($this->d)) {
$this->d = get_object_vars($this->d);
}
}
public function htmlsc()
{
var_dump($this->d);
if (is_array($this->d)) {
return array_map('Hout::htmlsc', $this->d);
} else {
$this->d = htmlspecialchars($d, ENT_QUOTES);
}
return $this->d;
}
}
としてみましたが、ループしてしまいます・・・
{
private $d;
public function __construct($data)
{
$this->d = $data;
if (is_object($this->d)) {
$this->d = get_object_vars($this->d);
}
}
public function htmlsc()
{
var_dump($this->d);
if (is_array($this->d)) {
return array_map('Hout::htmlsc', $this->d);
} else {
$this->d = htmlspecialchars($d, ENT_QUOTES);
}
return $this->d;
}
}
としてみましたが、ループしてしまいます・・・
phpでオブジェ使ったことないわしがarraymap途中でプロパティが途中で配列じゃなくなったと勝手に予想
安易にネットとPCを普及させたヤフーBBやPCショップにまで矛先いきそうな
cacheとはそもそもそういうもん。
サーバーを冗長化するのは、負荷分散で、データの多重化ではないよ。
データベースへのアクセスをメモリーを使って高速化するのが希望なら、tokyo tyrantを使いなさい。
サーバーを冗長化するのは、負荷分散で、データの多重化ではないよ。
データベースへのアクセスをメモリーを使って高速化するのが希望なら、tokyo tyrantを使いなさい。
状況説明が下手すぎる
6で失敗してることは確認したの?
6で成功する環境が構築できていることは確認したの?
6で失敗してることは確認したの?
6で成功する環境が構築できていることは確認したの?
そら、もともとの3台の設定のままなら、
同じように失敗してるとこへ聞きにいって、同じこと繰り返すに決まってる。
クラスタ纏めてるサーバーが1台あって死活まで管理してるならともかく、
簡易的な分散なんだから。
同じように失敗してるとこへ聞きにいって、同じこと繰り返すに決まってる。
クラスタ纏めてるサーバーが1台あって死活まで管理してるならともかく、
簡易的な分散なんだから。
>>671
すみません・・・
> 6で失敗してることは確認したの?
Yes
> 6で成功する環境が構築できていることは確認したの?
addServers(array(A,C))なら期待したとおりに動きます。
>>672
こんなコード書いてやってみましたが、確かにval1は取れませんね・・・そういうもんなのか(´Д`)
$m = new Memcached();
$servers = array(
array('localhost', 11211), //Memcachedが動いている
array('192.168.0.201', 11211), array(...), array(...), ... //存在しないサーバー100個ぐらい適当にぶっこむ
);
$m->addServers($servers);
$m->set('key1','val1',time()+100); //多分localhostじゃないとこに書き込もうとしてる
var_dump($m->get('key1')); // bool(false)・・・
すみません・・・
> 6で失敗してることは確認したの?
Yes
> 6で成功する環境が構築できていることは確認したの?
addServers(array(A,C))なら期待したとおりに動きます。
>>672
こんなコード書いてやってみましたが、確かにval1は取れませんね・・・そういうもんなのか(´Д`)
$m = new Memcached();
$servers = array(
array('localhost', 11211), //Memcachedが動いている
array('192.168.0.201', 11211), array(...), array(...), ... //存在しないサーバー100個ぐらい適当にぶっこむ
);
$m->addServers($servers);
$m->set('key1','val1',time()+100); //多分localhostじゃないとこに書き込もうとしてる
var_dump($m->get('key1')); // bool(false)・・・
下手にイチイチ死活チェックするより、てきとーなスクリプトで常駐監視させて
Bを速攻で復旧させたほうがスマートじゃないだろうか
数秒間落ちただけでDBが死ぬほどクリティカルじゃないんだろ?
ハードのトラブルとかで長期間落ちる場合は、addServersのところを自動なり手動なりで
書き換えてクラスタから切り離す。
あとは>>669のようにNoSQLか。どう冗長化すりゃいいのか俺は知らんけど。
Bを速攻で復旧させたほうがスマートじゃないだろうか
数秒間落ちただけでDBが死ぬほどクリティカルじゃないんだろ?
ハードのトラブルとかで長期間落ちる場合は、addServersのところを自動なり手動なりで
書き換えてクラスタから切り離す。
あとは>>669のようにNoSQLか。どう冗長化すりゃいいのか俺は知らんけど。
>>670
アクセスが1秒間に数百もあるようなシステムなの?
アクセスが1秒間に数百もあるようなシステムなの?
そら秒間数十リクぐらいのシステムならMemcachedクラスタ構成にする必要ねーだろ
DBそのまま叩いてもイケる
DBそのまま叩いてもイケる
if ($a == 0) {
if ($b == 0) {
}
} elseif ($a == 1) {
if ($b == 0) {
}
} else {
if ($b == 1) {
}
}
なんだこのクソみたいなコードは・・・
if ($a == 0 && $b == 0) {
} elseif ($a == 1 && $b == 0) {
} elseif ($b == 1) {
}
if ($b == 0) {
}
} elseif ($a == 1) {
if ($b == 0) {
}
} else {
if ($b == 1) {
}
}
なんだこのクソみたいなコードは・・・
if ($a == 0 && $b == 0) {
} elseif ($a == 1 && $b == 0) {
} elseif ($b == 1) {
}
>>670
やりたいことが分かった。
AddServerには、weightオプションがあるよ。
ABCをそれぞれ、321にしなさい。Weightの重い順にアクセスする。
weightがフラットだと、均等にアクセスするから、ABCのどれにアクセスするか分からない。
一度アクセスすると、CならCにずーっとアクセスする。でないと、結果が取れないでしょ?
あと、Daemon Toolsを調べなさい。落ちたmemcashedを自動的に再起動してくれる。
やりたいことが分かった。
AddServerには、weightオプションがあるよ。
ABCをそれぞれ、321にしなさい。Weightの重い順にアクセスする。
weightがフラットだと、均等にアクセスするから、ABCのどれにアクセスするか分からない。
一度アクセスすると、CならCにずーっとアクセスする。でないと、結果が取れないでしょ?
あと、Daemon Toolsを調べなさい。落ちたmemcashedを自動的に再起動してくれる。
>>680
その式の解釈は
if ($a == 0)
{
if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";
}
だからです。 なんで elseif のが 一個目のifの受けだと思ったんです?
その式の解釈は
if ($a == 0)
{
if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";
}
だからです。 なんで elseif のが 一個目のifの受けだと思ったんです?
>>685
自分でコード追ってみりゃわかる
わからないうちは括弧入れよう(わかっても読みやすくするために入れるけどね)
インデントは読みやすくするために必須だけど、間違ったインデントに騙されないようにね。
自分でコード追ってみりゃわかる
わからないうちは括弧入れよう(わかっても読みやすくするために入れるけどね)
インデントは読みやすくするために必須だけど、間違ったインデントに騙されないようにね。
俺も基本括弧は入れるな
括弧つけないのは
...
...
if ($FLAG === 0) echo "error";
...
...
こういう場合だけ
括弧つけないのは
...
...
if ($FLAG === 0) echo "error";
...
...
こういう場合だけ
>>683はどこへ
適当なエディタでインデントしなおせば分かりやすいかも。
たとえば、こうなった。
if ($a == 0)
if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";
たとえば、こうなった。
if ($a == 0)
if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";
あー。。全角スペースでごまかしますorz
if ($a == 0)
if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";
if ($a == 0)
if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【PHP】下らねぇ質問はID出して書き込みやがれ 129 (1001) - [98%] - 2013/9/18 1:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 124 (1001) - [98%] - 2013/1/10 6:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 121 (1001) - [98%] - 2012/8/14 7:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 137 (995) - [98%] - 2023/1/30 18:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 128 (1001) - [98%] - 2013/8/4 14:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 117 (1001) - [98%] - 2012/4/23 19:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 123 (1001) - [98%] - 2012/11/20 5:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 126 (1001) - [98%] - 2013/3/19 13:15
- 【PHP】下らねぇ質問はID出して書き込みやがれ 125 (1001) - [98%] - 2013/2/4 13:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 120 (1001) - [98%] - 2012/7/25 6:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 107 (1001) - [98%] - 2011/7/2 2:15
- 【PHP】下らねぇ質問はID出して書き込みやがれ 110 (1001) - [96%] - 2011/9/29 22:31
- 【PHP】下らねぇ質問はID出して書き込みやがれ 102 (1001) - [96%] - 2011/1/25 4:34
- 【PHP】下らねぇ質問はID出して書き込みやがれ 119 (1001) - [96%] - 2012/6/21 11:46
- 【PHP】下らねぇ質問はID出して書き込みやがれ 104 (1001) - [96%] - 2011/3/18 9:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 103 (1001) - [96%] - 2011/2/14 19:50
- 【PHP】下らねぇ質問はID出して書き込みやがれ 132 (1000) - [96%] - 2014/6/18 20:58
トップメニューへ / →のくす牧場書庫について