fが返りました。このfはなんでしょう? 実は$hogeに格納された文字列の1文字目です。 つまり、$hoge["fuga"]の"fuga"が数値にキャストされ0になり、$hoge[0]が評価され文字列の1文字目が取り出されたわけです。で、最初の話に戻ってisset($hoge["fuga"])がtrueになったわけです。PHPの豆腐のような柔軟性にはほとほと困ったものです。 ですが、流石にPHPの中の人も「流石にねーわ」と思ったのか、PHP5.4.0からは挙動が変わりました。
概要 PHPプログラミングの世界では、ある一定のトレンドが「モダンPHP」として、一部の人によって (彼らの書籍やウェブサイト上で) 強烈に広められ、他のアプローチは、遅れていたり、愚かだったり、あるいは単に間違いだとみなされて、眉をひそめられています。 それらの人々は、彼らの物事のやり方を他人に追従させようと、飽くなき努力を続けているように見えます。 このウェブサイトは、PHP プログラミングに関する現実的な見解を示すために作られました。流行りのトレンド、理論、学問的な教示ではなく、経験と実践の帰着を書き記した視点です。 ウェブサイト PHP - The Wrong Way は生きたドキュメントですので、より多くの情報が明らかになるにしたがって更新され続けます。 お気軽にコントリビュートしてください。 翻訳 ドイツ語 英語 フランス語 日本語 インドネシア語 トルコ語 ペルシャ語 ポルト
配列のキーと要素との関係を維持しつつ、 array を昇順にソートします。 この関数は、 主に実際の要素の並び方が重要である連想配列をソートするために使われます。 注意: 比較結果が等しくなる二つの要素があった場合、それらの並び順は保持されます。PHP 8.0.0 より前のバージョンでは、ソートした配列におけるそれらの並び順は不定でした。 注意: この関数をコールすると、配列の内部ポインタは最初の要素にリセットされます。 パラメータ array 入力の配列。 flags オプションの第二引数 flags によりソートの動作を修正可能です。 使える値は下記の通りです: ソートタイプのフラグ: SORT_REGULAR - 通常通りに項目を比較します。 詳細は 比較演算子 で説明されています。 SORT_NUMERIC - 数値として項目を比較します。 SORT_STRING - 文字列として
PHPスクリプトから他のプログラムを起動して、その出力結果を得たいことがあります。PHPではexecやproc_openがあります。しかし、標準出力(stdout)と標準エラー出力(stderr)をうまく制御して出力を取得するのは、実はなかなか面倒だし、マニュアルを読みながら自分で一から実装するのは不毛です。 symfony/processを利用すれば、簡単で安全に外部プログラムを利用できるようになります。 パッケージ名 Packagist: symfony/process 作者 fabpot (Fabien Potencier) ライセンス MIT License バージョン v2.7.6 (2015-10-27) インストール Composerでインストールできます。 cd /your/project composer.phar require symfony/process 特徴 標
photoBy: http://redis.io/images/redis-300dpi.pngもうMYSQLやファイルキャッシュなんてやめましょうdebug を オンにしてる時、Redisセッションだとsetflashが消えてしまうなどうまく動かない。 なので 本番運営モード 0 かデバッグモードか で php セッション、 Redis セッションをどちらを使うか振り分ける。 VPSとかじゃないと使えないかもしれませんが、Redisは素晴らしい。 MYSQLなどのキャッシュと較べて速度は圧倒的に速くなります。 cakephpで使ってみるRedisがインストールされていて、phpredisも入っていることが前提です。 手動で sessionstart(); とかのコマンドを使っていると有効にならないので注意 cakephpがインストールされていることが前提 boostrap.php 70行
PHPExcel とは PHP でエクセルファイルを生成することができるライブラリです。PHPExcel を初めて使ったので今後のために使い方をメモしておきます。 インストール PHPExcel を下記よりダウンロードした zip ファイルを解凍して中にある Classes ディレクトリを任意の場所に置きます。 PHPExcel – OpenXML – Create Excel2007 documents in PHP – Spreadsheet engine – Home あとは PHPExcel を使う PHP でこの Classes ディレクトリにパスを通して使用するクラスをインクルードします。 set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/Classes/'); include 'PHPExcel.
The document discusses asynchronous programming in PHP using non-blocking I/O and event loops. It covers using asynchronous techniques like ReactPHP to scrape web pages concurrently without blocking. Promises and streams are also discussed as ways to handle asynchronous operations and pass data between components. Finally, messaging techniques like websockets and WAMP are presented as ways to buil
switch (PHP 4, PHP 5, PHP 7, PHP 8) switch文は、同じ式を用いてIF文を並べたのに似ています。 同じ変数を異なる値と比較し、値に応じて異なったコードを実行したいと 思うことがしばしばあるかと思います。 switch文は、まさにこのためにあるのです。 注意: 他の言語とは違って、 continue命令は switch にも適用され、breakと同じ動作をします。 ループの内部で switch を使用しており、 外側のループの処理を続行させたい場合には、continue 2 を使用してください。 注意: switch/case が行うのは、 緩やかな比較 であることに注意しましょう。 次の二つの例は、同じことを二つの異なった方法で書いたものです。 一つは、if と elseif文を、 もう一つはswitch文を使っています。 どちらも、出力は同じです。
PHP NG now nearly TWICE as fast as PHP 5.6 correction: php core developers have urged that it is improper to call this version “5.7” (despite the versioning file stating so) PHP 5.7 PHP NG is still in alpha development, however it is starting to show breathtaking performance improvements over 5.6 while maintaining virtually complete compatibility. Dmitry Stogov has been hard at work since his firs
【2021/10/15 追記】 この記事は更新が停止されています。実装の公開は GitHub のみにしました。 mpyw/EasyCrypt: A class that provides simple interface for decryptable encryption. Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
urlのパラメータを暗号化してみようとして、思わぬところで躓く。 下記は PHP 可逆暗号化 等で検索したら一番上に出てくるの暗号化方法 しかし、そのまま使うと・・・ function encryptedParam($input,$key = KEY_DEFAULT) $key = md5($key); //暗号化モジュール使用開始 $td = mcrypt_module_open('tripledes', '', 'ecb', ''); $key = substr($key, 0, mcrypt_enc_get_key_size($td)); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); if (mcrypt_generic_init($td, $key, $iv) < 0) { exit('error
2013.12.17 PHP の array_merge() や array_recursive() 等の違いをまとめました 以前、JavaScript でのオブジェクトのマージについてまとめましたが、 今回は似たような話で PHP の配列のマージについてまとめます。 PHP の配列のマージ方法には大きく3つあり、 "+" 演算子 array_merge() 関数 array_merge_recursive() 関数 あと、個人的に CakePHP をよく使っているので CakePHP の Hash::merge() メソッド この4つの方法について、挙動の違いを調べました。 一次元配列 実際にコードを動かしてみて、2つの配列をマージした結果を見てみます。 対象データはこちら。 <?php // 対象データ $a = array( 0 => 'blue', 1 => 'red', 'a'
PHPカンファレンス関西で基調講演の機会をいただく事ができました。私のタイトルは「全てを結ぶ力」というもので、結ぶ(ハイパーリンク)という原則を持つWWWとそれに関わる技術や私たち開発者の話しをしました。 国内外含めてカンファレンスに登壇するのはこれが二度目です。最初のカンファレンスは世界レベルのエンジニア達をインスパイアさせたいという 夢を持ち、最上級のカテゴリで応募しました。二回目の今回は基調講演として聴衆者を限定しないで多くの人々に話がしたいと思いました。 2014/06/28 10:30 AM 大阪産業創造館 最小のネットーワーク 最大のネットワーク 最初のウェブサイト 最初のPHP 最初のアプリケーションサーバー 最初のつぶやき 決意 インターネットの原則 ソフトウエアの背後にいる人々 私たち開発者 メディアシフト エピローグ 情報という宇宙でWebサイトという星を1つ作る。それ
Now, next, and beyond: Tracking need-to-know trends at the intersection of business and technology AI/ML Few technologies have the potential to change the nature of work and how we live as artificial intelligence (AI) and machine learning (ML). Future of the Firm Everything from new organizational structures and payment schemes to new expectations, skills, and tools will shape the future of the fi
昨日、恒例の第75回PHP勉強会が開催されました。今回はPHPStormとセキュリティのビッグネームによる講演がありいつもより興奮度の高い勉強会になりました。 当日のツイートのまとめはこちら 第75回 PHP勉強会へのツイート #phpstudy - Togetterまとめ その他のブログ記事は見つけ次第、こちらに。 - 第74回 PHP勉強会レポート@恵比寿 | TECH BLOG 20分枠 セッションの内容の録画です。スライドが見づらい際は下記の資料もあわせてご覧ください。 0:00 「それPHPStormでできるよ」 18:38 「文字コードの脆弱性はこの3年間でどの程度対策されたか?」 「それPHPStormでできるよ」 遠山さんからはPHPStormで何ができるのかをわかりやすく解説するセッションをして頂きました。参加者の中でも利用者が多いPHPStormですが、具体的な活用
比較するPHPフレームワーク 追記 codeigniterのライセンス元を追記 & ライセンスを詳しく調べていただいる方がいるのでそちらへリンク追加しました。 FuelPHP1.6, CodeIgniter2.0, CakePHP2.3のコントローラ部分と、DBへのクエリ部分を比較するためにとりあえず並べてみました。 Controller FuelPHP class Controller_Example extends Controller { public function action_index() { $data['css'] = Asset::css(array('reset.css','960.css','main.css')); return Response::forge(View::forge('welcome/index')); } } CodeIgniter clas
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
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く