前回の続き。 前回説明した、call_user_funcや call_user_func_arrayのように引数として、callback(疑似)型を受ける関数がいろいろあります。 mixed call_user_func( callback $function [, mixed $parameter [, mixed $...]] ) mixed call_user_func_array( callback $function, array $param_arr ) bool usort( array &$array, callback $cmp_function ) bool array_walk( array &$array, callback $funcname [, mixed $userdata] )「擬似的な型」とマニュアルに書かれているのは、実際にはそんな型はなく、コールバッ
趣味でやっている人のことは、まあ、いいとして(踏み台にされる可能性はあるけど)、仕事でPHPを使うときの注意を書いておこう。 コーディング規約を守る。組織にコーディング規約がないなら、Zend Framework PHP標準コーディング規約 [zend.com]を使う。オレ流コーディングスタイルは禁止。 内部コードにはEUC-JPかUTF-8を使う。入出力もできるだけShift JISを避ける。Shift JISを使う場合には2byte目に0x5Cを含む文字の動作を忘れずに確認する。 開発環境の警告レベルをE_STRICTにする。本番環境ではdisplay_errorsをオフにする。 register_globals、magic_quotesはオフにする。 type hintingを積極的に使う。 スコープの長い配列をクラスでラップする。 プレゼンテーションとロジックを分割すること。プレゼ
はじめに この記事で紹介する機能は、PHP4からPHP5にまだアップグレードしていない人にとっては、大いに心引かれる機能だと思います。それは、PHP5で新たにサポートされたリフレクションAPIです。リフレクションAPIを使用することで、変数、インターフェイス、関数、メソッド、パラメータ、クラスなどの詳細情報を入手できます。リフレクションAPIは機能が豊富で、多数のクラスやメソッドを利用してリフレクションを実現できます。 この記事ではまず、リフレクションAPIの概念について理解していただくために、リフレクションAPIのクラスとメソッドについて、短い例を交えて簡単に説明します。その後で、PHPで作成した実際的なサンプルアプリケーションを2つ紹介します。1つは、呼び出すメソッドを実行時に判別するアプリケーションで、もう1つは、PHPクラスの情報を示す整形されたHTMLドキュメントを自動生成するア
第28回PHP勉強会で表題の通りの発表をしてきました。 業務でPHP5を使う前に調査した内容を元に会場の方とやり取りをしながら進めていきました。 かなり時間をオーバーしてしまいましたが、色々な方から有益な指摘が頂けてよかったと思います。 なぜか株式会社ノッキングオンが会場の勉強会は体調が悪い事が多いんですが、なんとか持ち直しました。 PHP5再入門「例外処理の正しい利用について」発表資料をアップしました 以下、覚えている範囲での頂いた指摘です。 エラー処理の利用暦 trigger_errorの使用経験者は3割ほど PEAR_Errorの使用経験者は半分以上 Exceptionの利用範囲に関して フレームワークの提供する例外クラスを使う Exceptionの派生クラスは作らない Exceptionはあくまで復帰できないようなエラーに限るべき トップレベルのExceptionはcatchしては
リファクタリングはPHPに限った話ではないですが、PHPを使っている場合に「どういった兆候が現れるとリファクタリングした方が良いか」といった話がまとめられています。 I have had to go through a php application recently which has given me more than one headache and has required me to use all my possible patience. あまり目新しいものはないかも知れませんが、以下要点を訳してざっとまとめてみました。間違いがあれば指摘してください :-) グローバル変数 グローバル変数の上書きしている アプリケーション全体でスーパーグローバル変数($_REQUEST、$_POST、$_GET)を使っている 大量のブラケット 以下のようなコード <?php $variab
wiki.ciaweb.net This domain is registered for one of our customers. If this is your domain name, please visit this page to see how to register it as DNS zone into your account. Note: If you already have registered the DNS zone for your domain name, please wait for DNS propagation. Your web site will be displayed soon. It may take few minutes.
PHP の unserialize() の 多言語での実装 2006-02-28-1: [PHP][JavaScript][Perl][Ruby] を見ていて,PHP の serialize() は便利だから,もしかしたら他の言語でも実装があるのでは? と思ったら,案の定たくさんあった. - JavaScript http://www.phpguru.org/static/PHP_Unserialize.html http://www.phpguru.org/downloads/PHP_Unserialize/ - Perl http://search.cpan.org/dist/PHP-Serialization/lib/PHP/Serialization.pm http://hurring.com/code/perl/serialize/ - Ruby http://www.aagh.
現在関わってるサービスの一つでは、 PHP5 + Symfony構成を使っているのですが、 strictエラーを出さないようにしたいとの要望が来ました。 strictエラーはPHP5に準拠したプログラミングしてないと でてしまうメッセージ。 PHP4でも動くように作られているPEARはもちろんその対象と なってしまいます。 出力レベルを変更すれば良いのですが、 それはやりたくないないとの方針なので、 PEARをどうしても使いたい場合は移植する必要があったり。 これが簡単かなと思っていたら、結構大変なことに気づきました。 アクセス修飾子をすべてのメンバ変数、メソッドにつける 基本的にstrictで出る多くは、アクセス修飾子、 「public/protected/private」をつけていないことや 静的関数「static」をつけていないことに起因してます。 まずそれぞれを一つづつ確認し、付記
平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 本件に関するお問い合わせはこちらよりお願いいたします。
Zend PHP Certification Zend PHP Certification - Self Testの回答がChris Shiflett: Zend Certification Self Testに掲載されています。 いくつか見てみましたけど、くだらない設問ばかり。これだから言語の資格は嫌いです。どうせ勉強させるなら、トリビアなんかいらないからもっと実践的な内容にしようよ。The Zend PHP Certification Practice Bookを買わせたいだけなんじゃないかと(実際のテストにはもっと実践的な設問もあるののかもしれない)。 zend.co.jpのページには「PHP開発技術者のスキル証明書」なんて書かれていますが、最近のPHPプログラマなぞ「<?phpの次にclassと書くかどうか」だけでだいぶ足切りできる気がする。逆に言えば、Zend PHP Certi
PHPというか、PHP + Unixでやってみる並行プログラミングシリーズ ググってみてもKoshigoeBLOG: PHPで並列処理や個人的なメモと備忘録 2003年 11月くらいしかヒットしないPHPのプロセス制御(pcntl)をやってみるテスト。 JavaをパクってThreadクラスとRunnableインタフェースを書いてみた。(正確にはProcessクラス?) interface Runnable { public function run(); } abstract class Thread implements Runnable { private $status; private $isRunning = false; public function __construct(){ } public function __destuct(){ // callee, exitti
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く