タグ

ブックマーク / qiita.com/tadsan (8)

  • PHPからJavaScriptにデータを受け渡すときに考えること - Qiita

    PHPのstringは任意のバイト列を扱えますが、JavaScript/JSONはUnicodeで扱える文字しか扱えません PHPのint / floatはプラットフォーム依存ですが、JavaScriptのnumberは整数と小数を型レベルで区別しません JSONのarrayに対応する型はPHPのarrayのうちリストであるものです PHPは配列(リスト)と連想配列を型レベルで区別せず、どちらもarrayです リストはキーが0からの抜けがない連番になっている要素が0個以上の配列です array_is_list()関数で連想配列とリストを判別できます array_values()で連想配列をリストに変換できます array_filter()の結果はフィルタされたキーがスキップされるのでリストではありませんが、結果をarray_values()に通すことでリストにできます JsonSerial

    PHPからJavaScriptにデータを受け渡すときに考えること - Qiita
    yk5656
    yk5656 2023/01/03
  • このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita

    この記事ではPackagistで公開可能な形式のPHPのライブラリ(Composerパッケージ)を公開するための道具立てを紹介します。あと、現代のPHPerはツールを組み合せてさくっと開発しているんだという自慢です。 タイトルは「この TypeScript が Hello, world! のくせに慎重すぎる」と「この勇者が俺TUEEEくせに慎重すぎる」のぱくr… パロディです。 テンプレートエンジンのくせに型安全なんてなまいきな。 この記事の読みかた せっかくなので手を動かしながら自分でComposerパッケージを作成してみましょう。 今回の題材は「Hello worldを出力する」という革新的機能を提供する、とても画期的な実用ライブラリです。 記事名通り「慎重すぎる」ので、細かく刻んでGitで経過を保存しながら作業を進めていましょう。なんかよくわからない状態になったらgit reset

    このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita
    yk5656
    yk5656 2020/01/29
  • いま熱い最新スクリーンエディタmicro ことはじめ - Qiita

    microとは何か 最近注目を集めてるような気がするスクリーンエディタ、つまり文字ベースのターミナル(端末エミュレータ)で動作するテキストエディタです。そのようなエディタとしてはviやEmacs、近年ではnanoが知られてます。 microはそのようなテキストエディタの中でも最後発で、目下のところ活溌に開発されてるところです。この記事ではREADME.mdからいい感じに抜萃しつつ紹介します。 microはviやEmacsのような独特な操作体系ではなく、GUIのテキストエディタに近い操作性(キーバインド)を持ちます。SSHなど端末経由でのテキスト編集の必要に迫られたときに、新たな操作体系を覚え直す手間を最小限にしながら作業に取り掛かることができます。 2016年10月20日 追記 #端末(ターミナル)の設定を追加しました。特に、Shift+[←↓↑→]での範囲選択が機能しない場合に参考にして

    いま熱い最新スクリーンエディタmicro ことはじめ - Qiita
    yk5656
    yk5656 2016/10/10
  • 初心者を戒めるPHP - Qiita

    この記事は何か 挑発的な文言になってる箇所はあるものの、内容としてはそれなりにまじめに書いたつもり。むしゃむしゃしてやった。いまでは反芻してゐる。 PHPDocは必ず書け あらゆる再利用可能な手続きは、他人が容易に応用できるように型が明示的でなければいけない。メンバー全員が実装コード全てを把握できるものならそれが理想だけれど、残念ながら時間は有限だ。ヘッダだけを読んでメソッドの仕様が理解でき、またはコードを読む助けになるようなコメントが良い。 有名な事実を紹介すると、多くのコードは数か月(早ければ数日!)も経てば、他人が書いたコードに感じられるほど理解できなくなることがしばしばある。もちろん設計の練度にもよらうが、設計判断について注意を要した点などをコメントに残しておくことで、ひいては未来の自分の役に立てることができる。 お前の先輩は「PHPには型がない」などと知ったかぶって意味不明1なこ

    初心者を戒めるPHP - Qiita
    yk5656
    yk5656 2016/06/16
  • シェル、ターミナル、コンソール、コマンドライン - Qiita

    いろいろ混同されがちなやつ。筆者もまったく混乱してないとは主張しがたい。 この記事は初版を2014年1月に書きはじめ、いまのバージョンを2015年4月頃に書いてたけど、擬似端末/仮想コンソールあたりの理解が怪しいのでお蔵入りになってました。ので、そのあたりの説明は微妙。 コマンドライン(command-line) 文字でコマンドを打ち込んで操作するインターフェイスのこと。 シェル(shell) 人間様がOSを操作するためのインターフェイスのこと。貝のようにOSの核(カーネル)を守ってるからシェルと呼ぶんだって噂。 大別すると コマンドラインシェル と グラフィカルシェル がある。 Unixシェル UNIXやUNIX-likeなOSで利用されるコマンドラインシェル。現代ではGNU BashやZ Shellなどが知られる。 Shellにもいくつかの系統があるが、主にBシェル(Bourne Sh

    シェル、ターミナル、コンソール、コマンドライン - Qiita
  • モダンPHPアンチパターン - Qiita

    アンチパターンなので、見出しの内容はすべてバッドノウハウです。 前に書いたやつ PHPのモダンな開発環境を紹介する - Qiita PHP - Functoolsを作った - Qiita PHPのlist()はタプル展開のための機能 - Qiita 関係ないけどこれも: シェル、ターミナル、コンソール、コマンドライン 追記: 文中でとりあげた「怖い話」について、ちゃんと説明しました PHP - namespaceとBOMに何の関係があるのさ - Qiita ファイルの最後に?>を書く PHPコードは<?phpで始まり?>で締める。それがPHPの常識(キリッ ……そんなことはもう綺麗さっぱり忘れよう。PHPはテンプレートエンジンではあるが、Webアプリケーションを書く上では、もはやテンプレートエンジンとしての機能は求められなくなりつつある。 不要な?>を書いてはいけない理由は明確で、<?p

    モダンPHPアンチパターン - Qiita
    yk5656
    yk5656 2015/09/23
  • PHPのモダンな開発環境を紹介する - Qiita

    やあPHP! 最近なんだかまともだなぁ PHP開発の上で実用的なツール群について、RubyPythonほどには知名度がないので紹介したい。Windowsのことは知らないので、各自がんばってほしい。 筆者はもともとRubyの方から来たので、Rubyとの比較が多いのは留意されたい。 この記事の内容と直接関連はしないが、併せて読まれたい PHPのin_arrayは罠が多いので注意喚起が必要 - Qiita 準備 MacだとHomebrewがあると依存ライブラリを集めるのが楽でべんり。 これは個人の趣味の話なのだけれど、自分でインストールする実行ファイルは$HOME/local/binに置くのが好きだ。 筆者はZ Shellユーザーなので https://github.com/zonuexe/dotfiles/blob/master/.zshenv#L1-L13 のようにしてる。 PHPBrew

    PHPのモダンな開発環境を紹介する - Qiita
    yk5656
    yk5656 2015/02/09
  • 破壊的メソッド名には!をつけなければならない…なんて、誰が言ったの? - Qiita

    そんなものは迷信に過ぎない。 はじめに ここ数週間で何度か「破壊的メソッドなのに!がついてない」「!がついてないのに副作用がある」といった言説を何度か目にする機会があった。 「破壊的」と「非破壊的」 a.hoge(b)のようにメソッド呼び出しをしたとき、aの状態に影響を及ぼすメソッドを、Rubyでは一般的に「破壊的」と呼びます。メソッド呼び出しで前の状態を壊して、別の状態にしてしまふからです。 言葉で説明してもぴんとこないかもしれないので、「ふたつの配列をくっつけたい」といふ要望に対して、破壊的なパターンと、破壊的ではないパターンのコードを紹介します。 破壊ではないパターン # ふたつの配列を用意する a = [0, 2, 4, 6, 8] b = [1, 3, 5, 7, 9] c = a + b # aとbを連結してcに代入 p a #=> [0, 2, 4, 6, 8] p b #=

    破壊的メソッド名には!をつけなければならない…なんて、誰が言ったの? - Qiita
    yk5656
    yk5656 2014/12/12
  • 1