senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. weepjp (weepjp@at.weep.jp)'s status on Friday, 12-Jul-2019 17:26:20 JST weepjp weepjp

    $foo[baa] を $foo['baa'] にしていく作業。。。。

    In conversation Friday, 12-Jul-2019 17:26:20 JST from at.weep.jp permalink
    • せのお (妹尾 賢) likes this.
    • ぽぷんじゃ? (popnja@popon.pptdn.jp)'s status on Friday, 12-Jul-2019 17:27:22 JST ぽぷんじゃ? ぽぷんじゃ?
      in reply to

      @weepjp PHPのバージョン違い問題か何か?

      In conversation Friday, 12-Jul-2019 17:27:22 JST permalink
      weepjp repeated this.
    • weepjp (weepjp@at.weep.jp)'s status on Friday, 12-Jul-2019 17:28:46 JST weepjp weepjp
      in reply to
      • ぽぷんじゃ?

      @popn_ja

      バージョン問題もあるし、php.ini の設定の問題もあるかも知れない。

      おいらのどんくさいPHPの書き方するから。。。。

      In conversation Friday, 12-Jul-2019 17:28:46 JST permalink
    • まめも (mamemomonga@raspidon.mamemo.online@raspidon.mamemo.online)'s status on Friday, 12-Jul-2019 17:34:56 JST まめも まめも
      in reply to
      • ぽぷんじゃ?

      @weepjp @popn_ja そこでnode.jsですよ!

      In conversation Friday, 12-Jul-2019 17:34:56 JST permalink
      weepjp repeated this.
    • せのお (妹尾 賢) (senooken@social.senooken.jp)'s status on Saturday, 13-Jul-2019 01:37:32 JST せのお (妹尾 賢) せのお (妹尾 賢)
      in reply to
      バージョンが変わってエラーになった原因がわかりました。

      PHP 7.2.0からそれまでE_NOTICE扱い (PHP標準では無視のレベル) だったのが,E_WARNINGにエラーレベルが格上げされたのが原因です。
      https://www.php.net/manual/en/language.types.array.php#language.types.array.foo-bar

      手っ取り早く,エラーを回避したいならば,以下のコードのように,error_reportingを修正してエラーレベルからE_WARNINGを除外すればOKです。ただし,E_WARNINGは警告なので,この対処方法はオススメしません。

      <?php
      error_reporting(E_ALL & ~E_NOTIVE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
      $arr = array("fruit" => "apple");
      echo $arr[fruit] . "\n";

      $foo[baa]がだめな理由は以下に詳しく書いてあります。
      PHPでは,変数は$の前置が必須であり,それ以外は関数か定数のどちらかとみなされます。そのため,$foo[bar]は定数未定義のため,エラーとなるはずでした。しかし,配列のキーの場合,未定義定数の場合,昔のPHPは他にありえないので文字列だと解釈してくれていたようです。
      https://www.php.net/manual/ja/language.types.array.php#language.types.array.foo-bar

      どちらにしても,PHPの構文上,この記法はまずいので,リテラルの文字 (コード上に直接記す文字) は一重引用符 (') か二重引用符 (") で囲むことが必須です。

      一括置換で直すのが後のためだと思います。

      なお,PHPは今でも現代的なGoやRuby,node.jsと戦って勝負できるレベルの言語なので,PHPが古いなどの批判はあまり気にしなくてもいいと思いますよ。
      参考: http://isucon.net/archives/52502356.html

      PHPの新しい機能を使いこなして,古くて悪くなってしまったやりかたを変えればいいだけだと思います。
      どうしても気になるならば,乗り換えればいいとは思いますが…。
      In conversation Saturday, 13-Jul-2019 01:37:32 JST permalink

      Attachments



      1. ISUCON8 オンライン予選の利用言語比率 : ISUCON公式Blog
        from ISUCON公式Blog
        オンライン予選の利用言語比率を公開します。オンライン予選は528組の参加があり、起動に成功したチームは508組となりました。オンライン予選 利用言語比率利用率の全体ランキングは以下の通りです。Go   203組 40.0%Ruby  106組 20.9%Perl   70組 13.8%Pytho
      せのお (妹尾 賢) and weepjp like this.
      weepjp repeated this.
    • weepjp (weepjp@at.weep.jp)'s status on Saturday, 13-Jul-2019 01:49:22 JST weepjp weepjp
      in reply to
      • せのお (妹尾 賢)

      @senooken

      最近は、XAMPP を使ったテストで、この手のエラーに懲りて、 $foo['baa'] を心がけるようになったんですが、 #InstanceTicker は心がける前にやっつけで書いたものなので、こうなったわけです。

      調べて下さってありがとうございます。

      いやぁ、ここまで長文のリプライが送られてくると、Mastodon のトゥート欄が狭くなったり、漢字変換中スクロールが狂ったりすることを知る。。。
      メモ帳起動して書いてコピーして貼り付けたっていう。。。

      In conversation Saturday, 13-Jul-2019 01:49:22 JST permalink
    • せのお (妹尾 賢) (senooken@social.senooken.jp)'s status on Saturday, 13-Jul-2019 01:59:50 JST せのお (妹尾 賢) せのお (妹尾 賢)
      in reply to
      1個1個公式文書を当たって確認するのが結局のところ近道です。

      Mastodonを自分でインストールしたことはないのですが,表示が崩れるのですか?こちらのGNU socialは文字数制限は自分で決められ,文字数カウントを使いたいので,今は投稿上限10万文字にしています。長文が来ても,こんな感じでスクロールできるので特に問題ありませんが,Mastodonはそうではないのですか?
      https://social.senooken.jp/notice/2412809
      それは基本機能に問題あるように思いますけどね…

      そもそも文字数制限はくだらない機能だと思っています。こんなくだらない制限のために,重要なことが伝えられないなんてあほらしいです。仮に,こちらも文字数制限が500文字だったら,一度の投稿でのサンプルコードや根拠の掲載も難しく,何度も連投必要になり,お互い不便なだけです。

      まあ,ここでこんなこと書いてもあまり意味ないのですけど
      In conversation Saturday, 13-Jul-2019 01:59:50 JST permalink

      Attachments

      1. せのお (senooken@social.senooken.jp)'s status on Saturday, 13-Jul-2019 01:37:32 JST
        By せのお (senooken@social.senooken.jp) from social.senooken.jp
        バージョンが変わってエラーになった原因がわかりました。

        PHP 7.2.0からそれまでE_NOTICE扱い (PHP標準では無視のレベル) だったのが,E_WARNINGにエラーレベルが格上げされたのが原因です。
        https://www.php.net/manual/en/language.types.array.php#language.types.array.foo-bar

        手っ取り早く,エラーを回避したいならば,以下のコードのように,error_reportingを修正してエラーレベルからE_WARNINGを除外すればOKです。ただし,E_WARNINGは警告なので,この対処方法はオススメしません。

        <?php
        error_reporting(E_ALL & ~E_NOTIVE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
        $arr = array("fruit" => "apple");
        echo $arr[fruit] . "\n";

        $foo[baa]がだめな理由は以下に詳しく書いてあります。
        PHPでは,変数は$の前置が必須であり,それ以外は関数か定数のどちらかとみなされます。そのため,$foo[bar]は定数未定義のため,エラーとなるはずでした。しかし,配列のキーの場合,未定義定数の場合,昔のPHPは他にありえないので文字列だと解釈してくれていたようです。
        https://www.php.net/manual/ja/language.types.array.php#language.types.array.foo-bar

        どちらにしても,PHPの構文上,この記法はまずいので,リテラルの文字 (コード上に直接記す文字) は一重引用符 (') か二重引用符 (") で囲むことが必須です。

        一括置換で直すのが後のためだと思います。

        なお,PHPは今でも現代的なGoやRuby,node.jsと戦って勝負できるレベルの言語なので,PHPが古いなどの批判はあまり気にしなくてもいいと思いますよ。
        参考: http://isucon.net/archives/52502356.html

        PHPの新しい機能を使いこなして,古くて悪くなってしまったやりかたを変えればいいだけだと思います。
        どうしても気になるならば,乗り換えればいいとは思いますが…。
      weepjp likes this.
      weepjp repeated this.

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.