タグ

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

  • P++: 銀河に平和をもたらすための奇策と決着 - Qiita

    PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる というキャッチーな紹介をするP++: 静的型付けをめざすPHPという記事がそれなりに話題になり、このニュースは目覚しく革新的な内容で、多くのひとの目を引き付けました。 これは早まった理解であり、ほとんど誤報と言ってもいい内容でした。2019年8月15日には提案者人も、少くとも「P++」の計画を短期的に実現するととは非現実的であり時期尚早であることを認めています。 この記事では、PHP開発の現状、なぜ野心的なP++計画が提案され、事実上撤回されたかの経緯について紹介します。 [中立性のための表示] この記事の著者@tadsanはPHPの静的解析を強く推進する立場です。 PHPゆるふわCI入門 PHP型検査・夢と理想と現実) 三行で要約 PHPはバージョンを経るごとに「歴史的経緯」による負債が削ぎ落されてきた

    P++: 銀河に平和をもたらすための奇策と決着 - Qiita
  • 正規表現でPHPを脆弱にする (1) 「^ と $」 - Qiita

    みなさん正規表現は好きですか? 私は好きです。簡単に脆弱性を作り込めて、とても便利ですからね。 この記事ではPCRE関数(preg_match(), preg_replace()など)を利用して、みなさまにPHP正規表現のバッドノウハウを教示いたします。 先に結論を書きます 単独の文字列のマッチに $ を用いるのは予期しないパターンになるのでやめましょう。^は特に危険ではありませんが、^と$の組み合せではなく\Aと\zの組み合せを覚えましょう。ただし、m修飾子で複数行(マルチラインモード)で、行頭と行末にマッチさせたい場合を除きます。 文字列のマッチに ^ と $ のペアを利用する そうですね、例としてQiitaのようなユーザー登録サイトの表示名 @tadsan のような文字列を登録する前の検査をするとします。 要件としては、使用可能な文字は abcdefghijklmnopqrstuvw

    正規表現でPHPを脆弱にする (1) 「^ と $」 - Qiita
  • PHPのオブジェクトは参照渡しではないし、変数リファレンスは全然別物 - Qiita

    まだ参照渡しで消耗してたの? 僕はPHPerなのでPHPのことしかわからないけど、だいたいPHPで参照渡しのことを気にしても時間の無駄だし積極的に利用するべき場面が極めて限定されることはPHPのリファレンス(参照&)の傾向と対策、あるいはさよならに書いたので読んでほしい。 それとPHPマニュアルでは「参照渡し」ではなく「リファレンス渡し」と呼ぶが、どちらにせよ、わざわざ「渡し (call by-)」を付けて呼ぶ意義は乏しいので、これからは「変数リファレンス」として覚えてほしい。もうちょっと具体的なことはPHP: リファレンスとは? - Manualを読んで。 端的に言うと、PHPでは「オブジェクト引数はデフォルトで引数渡しされる」「オブジェクトのプロパティ(メンバー変数)は参照渡し」のような理解は誤解であり、完全に嘘です。 function setPrice1(array $a, floa

    PHPのオブジェクトは参照渡しではないし、変数リファレンスは全然別物 - Qiita
  • モダンPHPアンチパターン - Qiita

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

    モダンPHPアンチパターン - Qiita
  • 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
  • 1