のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,831人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 127

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    651 : nobodyさん - 2013/04/28(日) 06:40:23.43 ID:??? (+57,+29,-6)
    毎回ブラウザ終了時にクッキー消してる人には大迷惑だな
    652 : nobodyさん - 2013/04/28(日) 06:52:30.49 ID:??? (+2,-10,+0)
    >>650
    長い。3行で。
    653 : nobodyさん - 2013/04/28(日) 19:10:31.55 ID:??? (+3,-30,-252)
    クラスのヒアドキュメント内での挙動について聞きたいです。

    // 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となります

    となってしまいます。ヒアドキュメント内でクラスを使うと
    最初に呼び出される仕様なのでしょうか?
    654 : nobodyさん - 2013/04/28(日) 19:13:02.19 ID:??? (+48,+30,+0)
    >>1
    655 : nobodyさん - 2013/04/28(日) 19:17:29.32 ID:mmUnQlFQ (+8,+14,+2)
    すみませんIDわすれてました
    656 : nobodyさん - 2013/04/28(日) 22:43:03.43 ID:??? (-23,-29,+0)
    >>655
    echo -> return
    657 : nobodyさん - 2013/04/28(日) 23:50:47.53 ID:3X4yk4QN (+6,+30,-54)
    質問の答えの前にまず言っておくがコーディング自体に大きな問題がある


    で、質問の答えだが、ヒアドキュメントのパースする際に
    まずはその中の命令を処理する必要があると思わないか?

    この結果には驚くような要素は何も含まれていないと思うよ。
    658 : nobodyさん - 2013/04/29(月) 00:02:01.61 ID:??? (+35,-30,-112)
    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)
    662 : nobodyさん - 2013/04/29(月) 00:27:56.12 ID:??? (+47,-30,-129)
    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;
    }
    }

    としてみましたが、ループしてしまいます・・・
    663 : nobodyさん - 2013/04/29(月) 00:59:39.61 ID:??? (+60,+27,-17)
    なぜ >>658 をクラスメソッドにしたら >>662 になるんだ・・・
    664 : nobodyさん - 2013/04/29(月) 02:22:19.12 ID:??? (-25,-20,-21)
    phpでオブジェ使ったことないわしがarraymap途中でプロパティが途中で配列じゃなくなったと勝手に予想
    665 : nobodyさん - 2013/04/29(月) 03:26:57.34 ID:??? (+54,+26,-22)
    安易にネットとPCを普及させたヤフーBBやPCショップにまで矛先いきそうな
    668 : nobodyさん - 2013/04/29(月) 10:06:27.00 ID:??? (+57,+29,-3)
    汎用性のかけらもないわけのわからないクラスですね
    669 : nobodyさん - 2013/04/30(火) 09:46:50.70 ID:??? (+39,-29,-38)
    cacheとはそもそもそういうもん。
    サーバーを冗長化するのは、負荷分散で、データの多重化ではないよ。
    データベースへのアクセスをメモリーを使って高速化するのが希望なら、tokyo tyrantを使いなさい。
    671 : nobodyさん - 2013/04/30(火) 15:21:11.06 ID:??? (+43,+9,-54)
    状況説明が下手すぎる

    6で失敗してることは確認したの?
    6で成功する環境が構築できていることは確認したの?
    672 : nobodyさん - 2013/04/30(火) 15:25:34.14 ID:??? (+71,+29,-52)
    そら、もともとの3台の設定のままなら、
    同じように失敗してるとこへ聞きにいって、同じこと繰り返すに決まってる。

    クラスタ纏めてるサーバーが1台あって死活まで管理してるならともかく、
    簡易的な分散なんだから。
    673 : nobodyさん - 2013/04/30(火) 15:38:05.83 ID:??? (+12,-30,-192)
    >>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)・・・
    674 : nobodyさん - 2013/04/30(火) 15:46:15.33 ID:??? (+68,+29,-118)
    下手にイチイチ死活チェックするより、てきとーなスクリプトで常駐監視させて
    Bを速攻で復旧させたほうがスマートじゃないだろうか
    数秒間落ちただけでDBが死ぬほどクリティカルじゃないんだろ?

    ハードのトラブルとかで長期間落ちる場合は、addServersのところを自動なり手動なりで
    書き換えてクラスタから切り離す。

    あとは>>669のようにNoSQLか。どう冗長化すりゃいいのか俺は知らんけど。
    675 : nobodyさん - 2013/04/30(火) 19:04:08.46 ID:??? (+46,+26,-5)
    >>670
    アクセスが1秒間に数百もあるようなシステムなの?
    676 : nobodyさん - 2013/04/30(火) 19:59:46.53 ID:??? (+1,-26,-11)
    そら秒間数十リクぐらいのシステムならMemcachedクラスタ構成にする必要ねーだろ
    DBそのまま叩いてもイケる
    677 : nobodyさん - 2013/04/30(火) 20:02:21.83 ID:??? (+53,+25,-22)
    そんなサイトがPHPって・・・
    作成者が2chで質問って・・・
    678 : nobodyさん - 2013/04/30(火) 20:04:01.91 ID:??? (+30,+7,-4)
    あ?PHPなめんな
    679 : nobodyさん - 2013/04/30(火) 20:06:21.67 ID:??? (+52,+29,-11)
    wikiとかアフィブログとかでもピークで秒間数百なんて簡単にいくだろ
    681 : nobodyさん - 2013/05/01(水) 04:11:57.11 ID:??? (+9,-18,-15)
    まさかelseifがくっついてるからとか??
    682 : nobodyさん - 2013/05/01(水) 04:12:19.66 ID:??? (+57,+29,-9)
    しらねえが括弧つけてくれ。
    見にくすぎる。
    683 : nobodyさん - 2013/05/01(水) 04:27:00.83 ID:??? (+27,-30,-111)
    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) {
    }
    684 : nobodyさん - 2013/05/01(水) 04:28:40.98 ID:??? (+52,+29,-2)
    うおくっつけててもええんか、、
    685 : 680 - 2013/05/01(水) 06:56:39.93 ID:??? (+69,-29,-41)
    >>683のコードのように{}を入れると正しく動作します。。
    理由がさっぱりです。。
    if~elseif~else文のときは必ず{}を入れろということでしょうか?
    686 : nobodyさん - 2013/05/01(水) 08:55:31.76 ID:??? (-3,-30,-113)
    >>670
    やりたいことが分かった。
    AddServerには、weightオプションがあるよ。
    ABCをそれぞれ、321にしなさい。Weightの重い順にアクセスする。
    weightがフラットだと、均等にアクセスするから、ABCのどれにアクセスするか分からない。
    一度アクセスすると、CならCにずーっとアクセスする。でないと、結果が取れないでしょ?

    あと、Daemon Toolsを調べなさい。落ちたmemcashedを自動的に再起動してくれる。
    687 : nobodyさん - 2013/05/01(水) 09:01:09.31 ID:??? (+29,-30,-74)
    >>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の受けだと思ったんです?
    688 : nobodyさん - 2013/05/01(水) 09:03:12.54 ID:??? (-6,-29,-1)
    pythonerなんじゃね?
    689 : nobodyさん - 2013/05/01(水) 10:30:44.81 ID:??? (+67,+29,-30)
    >>685
    自分でコード追ってみりゃわかる
    わからないうちは括弧入れよう(わかっても読みやすくするために入れるけどね)
    インデントは読みやすくするために必須だけど、間違ったインデントに騙されないようにね。
    690 : 680 - 2013/05/01(水) 12:46:23.79 ID:??? (+61,+29,-30)
    >>687,689
    有り難うございます。
    そういうことでしたか。勘違いしてました。
    ようやく理解できました。
    691 : nobodyさん - 2013/05/01(水) 15:51:42.82 ID:??? (-2,-30,-13)
    俺も基本括弧は入れるな
    括弧つけないのは

    ...
    ...
    if ($FLAG === 0) echo "error";
    ...
    ...


    こういう場合だけ
    692 : nobodyさん - 2013/05/01(水) 16:26:56.70 ID:??? (+57,+29,-5)
    トラブルを起こさない書き方をする
    これ常識ネ
    693 : nobodyさん - 2013/05/01(水) 16:32:05.68 ID:??? (+33,+10,-12)
    リーダブルコードを10回読め
    694 : nobodyさん - 2013/05/01(水) 17:44:31.14 ID:??? (+67,+29,-24)
    >>685
    その認識レベルなら必ず括弧入れるべき。
    面倒くさいのはわかるが括弧で区切りつけないと後々絶対同じような問題起こす。
    695 : nobodyさん - 2013/05/01(水) 18:50:59.11 ID:??? (+35,+8,+0)
    >>683はどこへ
    696 : nobodyさん - 2013/05/01(水) 18:53:25.95 ID:??? (+3,-30,-76)
    適当なエディタでインデントしなおせば分かりやすいかも。
    たとえば、こうなった。
    if ($a == 0)
        if ($b == 0) print "a";
        elseif ($a == 1)
            if ($b == 0) print "b";
            else
                if ($b == 1) print "c";
    697 : nobodyさん - 2013/05/01(水) 18:54:27.87 ID:??? (+3,-30,-62)
    あー。。全角スペースでごまかしますorz

    if ($a == 0)
      if ($b == 0) print "a";
      elseif ($a == 1)
        if ($b == 0) print "b";
        else
          if ($b == 1) print "c";
    699 : nobodyさん - 2013/05/01(水) 20:14:00.04 ID:??? (+46,+18,-3)
    試したらtrueになってるけど。
    そのコードどうなってんのよ。
    700 : nobodyさん - 2013/05/01(水) 20:20:42.60 ID:??? (-1,-29,-7)
    $hogeに 'hensuu' が入ってないだけってオチに思える。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について