タグ

phpに関するblueleのブックマーク (53)

  • 三項演算子である条件演算子が右結合であることの利点・妥当性と可読性について - 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
    bluele
    bluele 2013/02/20
    結合順序
  • Mac OS X LionでApacheとPHPを動かす | HAPPY*TRAP

    まずは、httpd.confからみていきましょう。 httpd.confの場所 /etc/apache2/httpd.conf httpd.confの編集 管理者権限が必要なのでsudoでエディタ(例ではvi)を実行します。 $ sudo vi /etc/apache2/httpd.conf PHPの有効化 httpd.conf内の以下の行のコメントアウトを解除(先頭の#を削除) #LoadModule php5_module libexec/apache2/libphp5.so ApacheとPHPの起動確認用に、 ドキュメントルートに簡単なPHPプログラムを作成します。 初期状態のApacheのドキュメントルートは/Library/WebServer/Documentsになるので、 その直下に、test.phpというファイルを作成します。 /Library/WebServ

    bluele
    bluele 2013/02/17
  • PHP: 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

    PHP: PHP マニュアル - Manual
    bluele
    bluele 2013/02/17
  • PHP: FAQ - 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

    PHP: FAQ - Manual
    bluele
    bluele 2013/02/16
  • PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記

    PHPerの問題点はPHPしか知らずに的外れなことを言うことだ」と、Javaしか知らなくて的外れなことを言っている連中にすら言われちゃってるPHPerのみなさん、こんにちは。 PHPは「使える道具」であることは事実です。しかし同時に言語仕様がウンコなのも事実。 ここでは、個人的にウンコだと思っているPHPの仕様を挙げてみたよ! htmlspecialchars() の名前が長すぎる これはほんとウンコ。おまえWebアプリのための言語やろが!なんでこの関数の名前がこんなに長いねん!こんだけ長かったらめんどくさがって echo $var としてまうやろが!WordPressのthemeでHTMLエスケープ忘れが多いのはおまえの名前が長すぎるせいだ! そんなわけで、全PHPerはこんな関数を定義するといいと思うよ。 ## echo $var; よりも短く h($var); と書ける! func

    PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記
    bluele
    bluele 2013/02/16
  • perlとphpで三項演算子の挙動が違う件 - omoonのブログ

    最高にはまった。そんなの有りか!と叫びたい。 perlでは、 my $p = 1; my $q = 1; my $r = $p ? 'p' : $q ? 'q' : 'foo'; print $r; とすると、「p」が返ってくるが、 phpでは、 <?php $p = 1; $q = 1; $r = $p ? 'p' : $q ? 'q' : 'foo'; print $r; ?> なんと、「q」が返る。 このあたりの解説によると、 <?php // ぱっと見た感じでは、これは 'true' と表示されると思うでしょう。 echo (true?'true':false?'t':'f'); // しかし、実際には上の出力結果は 't' です。 // なぜなら、三項演算子は左から右へ順に評価されるからです。 // 上のコードをもう少しわかりやすく書くと、このようになります。 echo ((tr

    perlとphpで三項演算子の挙動が違う件 - omoonのブログ
  • PHPの比較の素晴らしさ加減は正常

    if ("0x0A" == "10") { print '(´ε` )チュッ'; } チュッ。されちゃいます。 文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうってのは有名な話だよね。 文字列であっても整数と解釈できる文字列の場合は自動的に整数に型変換してくれる超便利機能があるってのは有名な話だよね。 だけどなんでコレが一致するかわけがわからんかった。 0x0Aは10進数で10になるので一致する。と、言いたいところなんですがそう単純な話じゃないんだ。 以下の例を目ん玉見開いて見て欲しい。 var_dump(0x0A); var_dump("0x0A"); var_dump((int)"0x0A"); var_dump((float)"0x0A"); var_dump(intval("0x0A")); 実行結果 int(10) string(4

    PHPの比較の素晴らしさ加減は正常
    bluele
    bluele 2013/02/15
  • PDOの真の力を開放する - PHPでデータベースを扱う(3)

    ちょっと遅れましたが、シリーズの第3回です。前回までに論じた内容をふまえて、簡単な実装を示します。↓前回までの内容はこちら。 DAOの悪夢 - PHPでデータベースを扱う(1) - 泥のように ドメイン駆動設計という救世主 - PHPでデータベースを扱う(2) - 泥のように 題材 「記事にタグを設定できるブログ」みたいなシステムを考えてみます。ブログ記事を示すEntryテーブル、タグを表すTagテーブルの二つを用意しました。MySQL WorkbenchによるER図(鳥足記法)は以下になります。 1つのEntryに対して複数のTagがある、1対多の関係です。同じTagが複数のEntryに関連するため、多対多の関係と見なすこともできそうですが、タグ程度だとあまり意味がないので、これ以上のテーブル分割はやめておきます。 Entryテーブルの主キーがentryIdと冗長な名前をしているのは、自

    PDOの真の力を開放する - PHPでデータベースを扱う(3)
    bluele
    bluele 2013/02/15
  • 独学PHP はじめよう、PHPでオブジェクト指向

    クラスを理解するうえで重要になってくるのがオブジェクトです。クラスとオブジェクトは似て非なるものです。オブジェクトとはクラスを元にしてつくられたコピーを指します。クラスでは「データを保持できる」という性質をもっているため、複数の処理でひとつのクラスにアクセスした場合、データの上書き(不整合)を引き起こす危険があります。そのため、処理に応じクラスのコピーを作成し、そのコピーに対してアクセスすることが考えだされました。実際に使う場合には、まずクラス体には手を加えず、オブジェクトと呼ばれるクラスのコピーを作成しそれを処理の対象としてプログラムを組んでいきます。 TOP インスタンス化 クラスのコピー(オブジェクト)を生成することを「インスタンス化」といいます。インスタンス化とは、クラスを扱うための「自分専用の領域」を確保する行為ともいえます。PHPでは、クラスのインスタンス化を次のようにnew

    bluele
    bluele 2013/02/07
  • PHPに演算子オーバーロードを実装する - id:anatooのブログ

    PHPに演算子オーバーロードを実装してみた。やってみたら思いの外サクッと実装できた。 例えば以下の様なコードが実行できる。オブジェクトが"__add", "__sub", "__mul", "__div" というメソッドを持っていたらそれに対応する演算子がオーバーロードされる。 <?php class Hoge { function __construct($value) { $this->value = $value; } function __add(Hoge $right) { return new Hoge($this->value + $right->value); } function __sub(Hoge $right) { return new Hoge($this->value - $right->value); } } $hoge = new Hoge(1) + new

    PHPに演算子オーバーロードを実装する - id:anatooのブログ
    bluele
    bluele 2013/02/07
  • トップページ - 録画予約システムepgrec

    What's news 2011年10月1日からBSに新チャンネルが追加されました。対応するにはepgrec、epgdump、さらに必要に応じてレコーダーコマンドのアップデートが必要です。epgrec、epgdumpの対応版と、PT2向けのrecpt1のパッチ済みのファイル群をsourceforgeにアップしているので、お使いください。なお、黒friioも新チャンネル対応のコマンドがあるっぽいです。Linux板を参照するといいでしょう。 2010年4月6日テスト版をアップしました。人柱向けです。詳しくはフォーラムのこの投稿を読んでください。 2010年3月22日版の一部不具合などを修正するパッチをアップロードしました。無理にパッチを当てる必要はありません。 2010年3月22日版をアップロードしました。 最新版に合わせてepgrecの使い方を改訂しました。いちど目を通しておくとなにかの役に

    bluele
    bluele 2013/01/30
  • PHPのarray系関数ちゃんと使ってる?foreachとの比較 - new takyam();

    PHPで配列の処理をする時、foeachをよく使います。これは私だけではなく、恐らく多くのPHPerがそうだと思います。 しかしながら、PHPには多くのarray_xxxx系標準関数(以下:array系関数)が用意されており、標準関数で行える事は標準関数で処理したほうが、スマートで、高速です。 初級編 初級編では、超多様するin_array()などの基礎的なものはスキップして、たまに使うレベルのものをいくつかご紹介したいと思います。 array_sum() まずは、配列の中の数値の合計を返してくれるarray_sum関数です。 array_sum() http://php.net/manual/ja/function.array-sum.php <?php $ary = array(100, 200, 300); //この配列の合計が欲しい場合 //foreachの場合 $sum = 0;

    PHPのarray系関数ちゃんと使ってる?foreachとの比較 - new takyam();
    bluele
    bluele 2013/01/17
  • CakePHP+Paypal決済モジュール

    CakePHPに組み込むPaypal決済(エクスプレス チェックアウト)のモジュールを御紹介いたします。 Paypalの決済処理をCakePHPのモジュールにしました Paypalには様々な決済方法が用意されていますが、最もスタンダードなソリューションは「エクスプレスチェックアウト(Express Checkout)」です。「ウェブペイメントスタンダード」も機能的にはほぼ同じですが、カートシステムを構築するのであればAPIの使えるエクスプレスチェックアウトを使う方がよいでしょう。 Paypalの決済処理はやや複雑です。エクスプレスチェックアウトを使ったCakePHP用のモジュールを作成しましたので、ご紹介いたします。 ※ご利用の場合にはPaypalのマニュアルも確認しながら行ってください。 Modelの用意 まず、Model「Paypal.php」を用意します。このモデルを用いて、決済の処

  • PayPal APIの使い方 - SandboxのアカウントでCheckout Expressを試してみた - hrendohの日記

    PayPalのAPIを使った基的な課金の方法について調べたので、基的なサンプルを動かすところまでメモしました。 PayPalの開発者向けの情報は、Developer Network x.com(https://www.x.com/)にあります。 ここで紹介する例は、まず、PayPal Sandboxにテスト用アカウントを作成します。次に、x.comのサンプルコードでExpress Checkoutを利用した基的な課金システムのソースコードをウィザードで生成することができるので、そのコードを動かしてみました。 Sandbox PayPalは、実際にお金のやりとりをしないでAPIの動作を確認するための開発用のアカウントを作成できる、PayPal Sandboxを用意しています。 Sandboxアカウントの作成 PayPal Sandboxを利用するにはまずPayPal Sandboxのア

    PayPal APIの使い方 - SandboxのアカウントでCheckout Expressを試してみた - hrendohの日記
  • これは凄い。JavaScriptで作られたPHP VM·php.js MOONGIFT

    php.jsはJavaScriptで作られたPHP VMです。PHPコードをJavaScriptに変換して実行します。 世の中には色々変わったことを考える人がいます。Webブラウザでデフォルトで実行できるプログラミング言語がJavaScriptだけなんて許しがたい、そう考えたPHPプログラマーが生み出したのがphp.jsです。その名の通り、PHPの実行エンジンをJavaScriptに実装したというとんでもないソフトウェアになります。 確かに実行できています。PHPのコードからJavaScriptに変換を行っているようです。 配列、クラスさらにvar_dumpまで実装されているのが興味深いです。 かなり突っ込んだPHPの処理もできている模様です。これは面白い。 ダブルクオートの中に変数を入れて普通に出力できているのが興味深いです。 php.jsではPHPのコードがそのまま実行できます(もちろ

  • 6分でわかる最近のPHP ― 2012夏

    さて夏がやってきました。夏と言えばPHPということで、昨年に引き続き、最近のPHP事情をご紹介。 1. PHP5.4リリース PHP5.4が2012年3月にリリースされました。 Traits や Short array syntax(配列の短縮構文)、array dereferencing(foo()[0]) などのPHP言語拡張、PHPコマンドで起動するビルトインサーバ、そしてパフォーマンスの改善など大きな変更が加えられています。 言語自体の機能追加も注目ですが、ビルトインサーバは多くの人にとってメリットになるでしょう。これを使えばPHPアプリケーションの動作確認のためにApacheやnginxなどのhttpdサーバを自分のPCに入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

    bluele
    bluele 2012/08/05
  • CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)

    CGI環境でPHPを動作させているサイトには、リモートからスクリプト実行を許してしまう脆弱性があります。php.netから提供されている修正リリース(PHP 5.3.12 / PHP 5.4.2)は不完全なため、該当するサイトは至急回避策を導入することを推奨します。 概要 CGIの仕様として、クエリ文字列に等号を含めない場合は、クエリ文字列がCGIスクリプトのコマンドライン引数として指定されます。 例えば、http://example.jp/test.cgi?foo+bar+bazという呼び出しに対しては、test.cgiは以下のコマンドラインで呼び出されます。 test.cgi foo bar baz この仕様を悪用して、CGI版のPHPにコマンドライン引数としてPHPのオプションを指定できます。例えば、http://example.jp/test.php?-s というリクエストは、-s

    CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)
  • PHPカンファレンス関西2012

    PHPカンファレンス関西」のご案内 今年も「PHPカンファレンス」を関西で! 昨年関西発の大型イベントとして開催された 「PHPカンファレンス」を今年も開催します! 今年は内容の充実もさることながら、マルチセッションで、規模も拡大。 皆様の参加をお待ちしております。 Ustreamで中継します(4階イベントホール)

  • php プログラマのための Python チュートリアル — phpy 0.1 documentation

    php プログラマのための Python チュートリアル¶ このドキュメントは、すでに php でのプログラミング経験がある人に、 Python を知ってもらうためのものです。 Python の標準ドキュメントには、すでに他の言語でプログラミングを経験したことの ある人にとっては十分なチュートリアルがあります。 (日語チュートリアル) なので、このドキュメントでは Python の言語機能を網羅するような解説はしません。 php プログラマが注意すべき部分やイディオムを紹介することで、チュートリアルを 補強するものです。

  • PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp

    2010年9月24日・25日に開催された「PHPカンファレンス2010」にあわせて、PHP開発者のRasmus Lerdorf氏が来日されました。日を訪れるのは2度目という氏に、PHPの現状とその根底にある思想についてお話を聞きました。 現在の仕事について 大垣:昨年 Yahoo! Inc.を退職されましたね。現在はどのような仕事をされているのでしょうか? Rasmus:WePayという起業したばかり小さな会社にいます。WePayはカリフォルニアにある、グループで支払いを行う処理を行うベンチャー会社です。 大垣:グループで支払いを行う、というのは、どういうことですか? Rasmus:グループで何かを買いたいときに、グループとしてお金を管理したいですよね。例えば、大学で学生が集まってプレゼントを買いたいという場合があります。どんなものでも構わないですが、10人が集まって共同でオンラインショ

    PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp