タグ

PHPに関するVoQnのブックマーク (21)

  • 三項演算子である条件演算子が右結合であることの利点・妥当性と可読性について - Guinea Pig

    条件演算子とは? 条件演算子とは、よく見るアレのことである。 bool b = true; string s = b ? "真" : "偽" ; // ここで出てくる ? と : が条件演算子 // ? の左が真であれば : の左を返し、 // ? の左が偽であれば : の右を返す。 // この場合 b が true なので (b ? "真" : "偽") は "真" を返す 右結合と左結合 んで、右結合、左結合というのは、同じ優先度の演算子が並んだ場合、それを右からまとめていくか左からまとめていくかと言うルールの話である。 // 左結合の例 int sub = 10 - a - b - c; // 左結合なので、以下の順番で解釈される // int sub = (((10 - a) - b) - c); // 右結合の例 x = y = z = 10; // 右結合なので、以下の順番で解

    三項演算子である条件演算子が右結合であることの利点・妥当性と可読性について - Guinea Pig
    VoQn
    VoQn 2016/11/22
    なるほどなー
  • フリーエンジニアのIT案件ならレバテックフリーランス

    2016年11月3日(祝)、大田区産業プラザPiOにて開催された国内最大のPHPイベント「PHPカンファレンス2016」。レバテックフリーランスでは、カンファレンスセッションの登壇者のひとり・和田卓人氏にインタビューを実施しました。 テスト駆動開発の先駆者として知られる和田氏ですが、今回の講演テーマは「PHP7で堅牢なコードを書く-例外処理、表明プログラミング、契約による設計」。あえてテスト以外のテーマを設定した理由をはじめ、PHPの優位性や今注目している言語、初心者エンジニアへのアドバイスなど、幅広くお話を伺ってきました。 <この記事の要約> 1. PHPの良い点は、ゆるふわな言語に見せかけて堅牢なコードも書けるところ。悪い点は、覚えることが多くて難しいところ。 2. テストを書いていればコードの品質が高いわけではない。また、テストが書けないくらい問題を抱えたコードでも、中から改善してい

    フリーエンジニアのIT案件ならレバテックフリーランス
  • PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...

    使える言語の幅を広げたいと思ってPHP カンファレンス 2014に参加してきました。徳丸さんの「安全な PHP アプリケーションの作り方 2014」は改めて自分のセキュリティの知識を確かめるのに大変有意義だったのですが、何より感動したのが Facebook の Paul Tarjan による「HHVM + Hack == PHP++」のセッションでした。 すごく簡単に僕が理解した限りで HHVM/Hack を紹介すると、HHVM とは PHP の処理系の一つの実装です。その特徴は JIT コンパイルにより超高速になっていることに加え、圧倒的な魅力は PHP の Extension(C 拡張ライブラリ)の多くが実装されていて PHP のメジャーなフレームワークが問題なく動作するということです。つまりもう実践で戦えるということ。そして、Hack というのは HHVM が処理できるもう一つの言語

    PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...
    VoQn
    VoQn 2014/10/12
    去年の時点でFacebookの98%をHackで書き直せてた、っていう話はすごいな。長年稼働してるシステムって色々あってそう手直しされづらい重苦しさあるのに
  • PHP: スーパーグローバル - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    VoQn
    VoQn 2014/07/02
  • PDOでの数値列の扱いにはワナがいっぱい(2) — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHP Advent Calendar 2013 in Adventarの18日目です。昨日は、takc923さんの「PHPのissetの罠」でした。 「PDOでの数値列の扱いにはワナがいっぱい」を書いたところ、以下のように結構反響がありました。 PDOでの数値列の扱いにはワナがいっぱい — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something http://t.co/kDJAWzdMqr | 先日思いっきりハマったところ。 — K.K. (@kkmym) December 16, 2013 他の方も書いてるけど、バインドで型を明示すればおk / “PDOでの数値列の扱いにはワナがいっぱい — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or somethin

    VoQn
    VoQn 2013/12/19
    ひどい… > “PDO::PARAM_INTはboolをintに変換(他は何もしない)”
  • PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ

    この投稿はPHP Advent Calendar 2013の12日目の記事です。 PHP恒例行事の参照と三項演算子のdisりですが、そろそろあさってな議論はやめませんかという話です。 今年のPHP-dis大賞といえばこちら。 PHPとかいう糞言語|いんまのブログ ※ 追記: これ書かれたのは2012年でしたすんません。 なんで君たちそんなコードが必要なのかね、と。結論から先言うと、きみたちがPHPが使えないって思うのは、そんな挙動に左右されるようなコードを書くからでしょ、だからCとかRubyとかそういう簡単な言語でわかった気になっている初心者はまったくもう...というわけでPHPの言語文法の基礎んとこ、いきますね。 まず、PHPのarrayは「値」です。もちろん文字列も「値」です。値は値なんだけど、それはミュータブルです。PHPのarrayもしくは文字列の代入は、一見すると、ポインタを使わ

    PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ
    VoQn
    VoQn 2013/12/12
  • spika hackathon というのをやった - id:k-z-h

    2013-10-21 spika hackathon というのをやった refs Spikaを公開して起こった事 - ヨーロッパで働く社長のブログ Spika Hackathon に参加してきた - Born Too Late お二人とも綺麗なことを書いているので僕はあんまり綺麗じゃないことを書こうと思います。あ、あと読ませる気全くないのでクソ読みにくいと思うので適当に流し読みするのが良いかと思われます。まず前提として、自分はこのプロジェクトにはビタイチ興味がないし、将来にも一切の期待をしていない。失礼な話ではあるが完全に事実だし、hackathon を主催したのもプロジェクトを良いものにしようという意図は全くなく、別の狙いがあってのことです。公開された Spika-Server のソースコードをざらっと読んで、これはもう貢献する価値無し、と判断したのですが理由としては大量の脆弱性やレガシ

    VoQn
    VoQn 2013/10/22
    ロマサガ3のメガホークみたいな記事だ
  • Critical PHP Remote Vulnerability Introduced in Fix for PHP Hashtable Collision DOS

    Critical PHP Remote Vulnerability Introduced in Fix for PHP Hashtable Collision DOS One Security Fix Introduces Another Today, Stefan Esser (@i0n1c) reported a critical remotely exploitable vulnerability in PHP 5.3.9 (update assigned CVE-2012-0830). The funny thing is that this vulnerability was introduced in the fix for the hash collision DOS (CVE-2011-4885) reported in December. The Vulnerable F

    VoQn
    VoQn 2012/02/03
    「hashdos脆弱性直したら,今度は任意のコード実行できる脆弱性入っちゃった(てへぺろ☆」ってPHPは… なんでいつもいつも…こう…
  • hiphop php でPHPからジェネレートされたC++コードを読んでみよう。 - お前の血は何色だ!! 4

    PHP advent calendar です。 クリスマス過ぎましたけど 12/26日をお送りします。(google docsに名前書き忘れていたんだよ) 前回 12/25日は、@yoya さんの「WindowsPHPbuild する」でした。 今回は、facebookの人が作った PHPC++ に変換して高速動作させるという hiphop php がジェネレートする C++ のコードを読んでみたいと思います。 C++は厳格な静的型づけの言語ですが、PHPは動的型づけの言語です。 これをどうやって、変換しているのか?という話です。 非常に長く、眠い話になりますが、寝ないで読んでいただけたら嬉しいです。 間違いなどありました、ぜひ教えてください。 hiphop php を入れよう。 そもそもhiphop php を入れるのはすごく大変です。 Scientific Linux

    hiphop php でPHPからジェネレートされたC++コードを読んでみよう。 - お前の血は何色だ!! 4
    VoQn
    VoQn 2011/12/28
    ためになる
  • CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2011年1月27日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 橋口誠さんから今話題の書籍パーフェクトPHP (PERFECT SERIES 3)を献いただきました。ありがとうございます。このエントリでは同書のCSRF対策の問題点について報告したいと思います*1。 書では、CSRFの対策について以下のように説明されています(同書P338)。 CSRFへの対応方法は、「ワンタイムトークンによるチェックを用いる」「投稿・編集・削除などの操作の際にはパスワード認証をさせる」などがあります。一番確実な方法は両者を併用することですが、ユーザ利便性などの理由から簡略化する場合で

  • 典型的PHPerの13の悪癖

    はてな匿名ダイアリーで不穏なことが書かれていたが、職場などで見かけない事も無いので解説をつけて内容を転載しておく。 典型的な“嫌なタイプ”のPHP使いの特徴を「典型的PHPerの13の悪癖」というタイトルでまとめてあるものだ。PHP育ちの叩き上げの人が陥りやすい問題も含まれていると思うので、紹介したい。 1. パスワード認証sshでサーバーにログインし、vimemacsで開発をする。 PHPerは、生産性が低く、セキュリティ的に問題のある開発環境を愛用しているケースが多々ある。セキュリティ向上の為にはsshは公開鍵認証で使うべきだし、生産性向上のためには、一般的にはローカルに開発環境を用意して、Eclipse/PDT等の統合開発環境を使うべきであろう。 2. SVNなどのバージョン管理システムで、使い方が分からないのでブランチを切った事が無い。 開発ツールの学習に無頓着なPHPerは少な

    典型的PHPerの13の悪癖
    VoQn
    VoQn 2011/09/21
    チャーミング(色んな意味で)
  • phpのインタビュー - phpインタビュー

    phpprogramming languageとして活動中。 PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

    VoQn
    VoQn 2011/09/14
    このいけ好かなさ,本物だわ
  • サーバーを作ろう

    2020 acl learning_to_recover_from_multi-modality_errors_for_non-autoregressiv...広樹

    サーバーを作ろう
    VoQn
    VoQn 2011/09/12
    PHPでストリーミングサーバー実装
  • PHP5.3.7のcrypt関数のバグはこうして生まれた

    昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

    PHP5.3.7のcrypt関数のバグはこうして生まれた
  • PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)

    PHP5.3.7のcrypt関数には致命的な脆弱性があります。最悪のケースでは、任意のパスワードでログインできてしまうという事態が発生します。該当する利用者は、至急、後述する回避策を実施することを推奨します。 概要 PHPのcrypt関数は、ソルト付きハッシュ値を簡単に求めることができます(公式リファレンス)。crypt関数のハッシュアルゴリズムとしてMD5を指定した場合、ソルトのみが出力され、ハッシュ値が空になります。これは、crypt関数の結果がソルトのみに依存し、パスワードには影響されないことを意味し、crypt関数を認証に用いている場合、任意のパスワードでログインに成功する可能性があります。 影響を受けるアプリケーション crypt関数を用い、ハッシュアルゴリズムとしてMD5を指定しているアプリケーション。 環境にも依存しますが、デフォルトがMD5の場合もあります。筆者のテスト環境

    VoQn
    VoQn 2011/08/23
    「たとえばPHPを使わない」はやっぱり正しいんだ!!
  • JavaScript is not available.

    Something went wrong, but don’t fret — let’s give it another shot.

    JavaScript is not available.
  • PHPUnit / Phing を MacOSX で実行できるようにして,NetBeans で開発するための設定メモ

    あらすじ 前回のエントリでMacOS マシンにも最新の PHPPHPUnit, Phing が入り,開発途中になって pear や pecl のライブラリをインストールできるようになったのだけど,このままだとまだ NetBeans でホイホイ開発できるようにはなってない.このエントリで残りの環境構築をやる /etc/php.ini をコピー 前回のビルドで,PHP は再インストールしたわけだけど,実は MacOS にはデフォルトの /etc/php.ini ファイルが無かったりする.(これは今回びっくりした) なので,pecl のライブラリなんかを呼び出せないままになっているのが確認できる.というわけで前回の PHP をビルドしたフォルダから php.ini-production なんかをコピーして編集する.(php.ini-development でも良いけど,別に PHP そのも

    VoQn
    VoQn 2011/04/15
    前回の続きを書いた
  • PHPUnit / Phing を MacOSX で実行できるようにする為の PHP ビルド・インストールメモ

    あらすじ PHP で開発するにあたって,「やっぱり複数人で開発するし,NetBeans とか IDE 使いたいよねー」的な話になったので,NetBeans を入れて,これまでリモートのサーバー上で Phing 使ってテストしてたのだけど,それをローカルマシンでやるにあたって,PHPUnit をインストールすることになった.バンドルされてる PHP も古いバージョンだし. しかし,SnowLeopard に標準でインストールされている PHP には --with-pear 付きでビルドされておらず,しかも,バンドルで付けられていたビルドオプションをコピペして,追加して ./configure しても,--with-jpeg-dir とかでコケるという愉快なトラブルでえらく時間かかった. というわけで,ビルドちゃんと出来るようになるまでの手順ログを書いておく 入れたい/使いたいモノ PHP 5

    VoQn
    VoQn 2011/04/09
    これにだいぶ時間を取られたのでメモした
  • Rubyのすゝめ #01 - ベンチマークテストとプロセス管理編 | GREE Engineering

    いつもエンジニアブログをチェックしていただいてありがとうございます。グリー株式会社でエンジニアをしている takano32 です。 読者の方々にはプログラマやエンジニアをしている方々も多いと思いますが、みなさんは何か手に馴染んだ道具を持っていますか? グリーについて言えば「グリーといえば、PHPMySQL」というイメージをお持ちの方も多いと思いますし、実際にシステムの核心部はPHPMySQLによって機能しています。PHPMySQLはグリーに欠かせない道具となっています。 ただ、グリーで働くエンジニアひとりひとりにはやはり個性があり、手に馴染んでいる道具も人それぞれです。 Pythonで社内システム向けのクローラを作成して情報を収集している方、C言語でグリーのシステムに適合するDNSサーバやMySQLプロキシ(g2proxy)を作成している方々などさまざまなエンジニアがグリーでは働いて

    Rubyのすゝめ #01 - ベンチマークテストとプロセス管理編 | GREE Engineering
    VoQn
    VoQn 2010/11/08
    顔写真で笑ってしまう
  • 34歳からの、PHPの手ほどき002|PHP|東京Webデザイナー日記リターンズ|crema design

    34歳からの、PHPの手ほどき001は、こちら» 前回保留になっていた、変数の型の話。 PHPの「変数に型がある」というよりも、「データに幾つかの型がある」(ということらしい)。代表的なものは、以下の通り。 数(少数・整数を含む) 文字列(「'(シングルクォート)」か「"(ダブルクォート)」で括った文字の列。「'」と「"」の違いは、後で教えると言われた) 論理(ブーリアン。TRUE[真]とかFALSE[偽]とか) その他(必要が出てきたときに覚えればよい) 初心者がよく間違えるのは、「10」=「じゅう」という数字と「"10"」=「文字列の『10(いちぜろ)』」の違い。 データの型によって、どのような演算ができるか異なる。 数字の「10」と「20」は加算できる(答えは「30」)が、文字列の「"10"」「"20"」は加算できない。 文字列の「"10"」「"20"」は、連結できる(答えは「"10

    VoQn
    VoQn 2008/04/22