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

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

    php覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    651 = :

    毎回ブラウザ終了時にクッキー消してる人には大迷惑だな

    652 = :

    >>650
    長い。3行で。

    653 = :

    クラスのヒアドキュメント内での挙動について聞きたいです。

    // 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 = :

    >>1

    655 :

    すみませんIDわすれてました

    657 :

    質問の答えの前にまず言っておくがコーディング自体に大きな問題がある


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

    この結果には驚くような要素は何も含まれていないと思うよ。

    658 = :

    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 = :

    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 = :

    なぜ >>658 をクラスメソッドにしたら >>662 になるんだ・・・

    665 = :

    安易にネットとPCを普及させたヤフーBBやPCショップにまで矛先いきそうな

    668 = :

    汎用性のかけらもないわけのわからないクラスですね

    669 = :

    cacheとはそもそもそういうもん。
    サーバーを冗長化するのは、負荷分散で、データの多重化ではないよ。
    データベースへのアクセスをメモリーを使って高速化するのが希望なら、tokyo tyrantを使いなさい。

    671 = :

    状況説明が下手すぎる

    6で失敗してることは確認したの?
    6で成功する環境が構築できていることは確認したの?

    672 = :

    そら、もともとの3台の設定のままなら、
    同じように失敗してるとこへ聞きにいって、同じこと繰り返すに決まってる。

    クラスタ纏めてるサーバーが1台あって死活まで管理してるならともかく、
    簡易的な分散なんだから。

    673 = :

    >>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 = :

    下手にイチイチ死活チェックするより、てきとーなスクリプトで常駐監視させて
    Bを速攻で復旧させたほうがスマートじゃないだろうか
    数秒間落ちただけでDBが死ぬほどクリティカルじゃないんだろ?

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

    あとは>>669のようにNoSQLか。どう冗長化すりゃいいのか俺は知らんけど。

    675 = :

    >>670
    アクセスが1秒間に数百もあるようなシステムなの?

    676 = :

    そら秒間数十リクぐらいのシステムならMemcachedクラスタ構成にする必要ねーだろ
    DBそのまま叩いてもイケる

    677 = :

    そんなサイトがPHPって・・・
    作成者が2chで質問って・・・

    678 = :

    あ?PHPなめんな

    679 = :

    wikiとかアフィブログとかでもピークで秒間数百なんて簡単にいくだろ

    681 = :

    まさかelseifがくっついてるからとか??

    682 = :

    しらねえが括弧つけてくれ。
    見にくすぎる。

    683 = :

    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 = :

    うおくっつけててもええんか、、

    685 = :

    >>683のコードのように{}を入れると正しく動作します。。
    理由がさっぱりです。。
    if~elseif~else文のときは必ず{}を入れろということでしょうか?

    687 = :

    >>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の受けだと思ったんです?

    689 = :

    >>685
    自分でコード追ってみりゃわかる
    わからないうちは括弧入れよう(わかっても読みやすくするために入れるけどね)
    インデントは読みやすくするために必須だけど、間違ったインデントに騙されないようにね。

    690 = :

    >>687,689
    有り難うございます。
    そういうことでしたか。勘違いしてました。
    ようやく理解できました。

    692 = :

    トラブルを起こさない書き方をする
    これ常識ネ

    693 = :

    リーダブルコードを10回読め

    694 = :

    >>685
    その認識レベルなら必ず括弧入れるべき。
    面倒くさいのはわかるが括弧で区切りつけないと後々絶対同じような問題起こす。

    695 = :

    >>683はどこへ

    696 = :

    適当なエディタでインデントしなおせば分かりやすいかも。
    たとえば、こうなった。
    if ($a == 0)
        if ($b == 0) print "a";
        elseif ($a == 1)
            if ($b == 0) print "b";
            else
                if ($b == 1) print "c";

    697 = :

    あー。。全角スペースでごまかしますorz

    if ($a == 0)
      if ($b == 0) print "a";
      elseif ($a == 1)
        if ($b == 0) print "b";
        else
          if ($b == 1) print "c";

    699 = :

    試したらtrueになってるけど。
    そのコードどうなってんのよ。


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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