プログラムを書いていると、入力値が辞書に含まれているかを調べたいようなことがあります。たとえば、ユーザーに都道府県名を入力させて、それが正しい都道府県名であるかどうかを調べたい、というようなことがあるかもしれません。 このような内容をPHPで書く際、キーに都道府県名を持つような連想配列を作る習慣がある人は多いはずです。これは典型的な連想配列の使い方といえるでしょう。 <?php $prefs = array( "北海道" => true, "青森" => true, // ... "沖縄" => true, ); if (isset($prefs[$input])) { // 都道府県名が正しい時の処理 } 一方で、in_array関数を使うやり方も考えられます。 <?php $prefs = array( "北海道", "青森", // ... "沖縄", ); if (in_array
「ママ向けNo.1アプリ」の 更なる成長を支える仕組み / startup-engineer-night-connehito
お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか?PHPポエム例外例外処理 導入 煽りタイトルすいません.PHP 7 のエラーや標準例外について,違いを整理し,使い分けを考察する記事です. 【引用】 PHP 7.0.0α2 の例外の例外の継承関係を可視化してみた by @ngyuki すべてを捕捉対象にする [Throwable] [Throwable] は, PHP 7 の throw 文でスロー可能なあらゆるオブジェクトが実装する基底インターフェイスです. [Error] および [Exception] はこれを実装しています.但し,PHPコードとして書かれるクラスが [Throwable] インターフェイスを直接実装することはできません. と
array_column() は、 配列 array の中から column_key で指定した単一のカラムの値を返します。 オプションで index_key も指定できます。 これを指定すると、 入力配列内のカラム index_key の値をキーとし、 カラム column_key を値とした配列が返されます。 パラメータ array 値を取り出したい多次元配列 (あるいはオブジェクトの配列)。 オブジェクトの配列を指定した場合は、public プロパティはそのまま取得できます。 protected や private なプロパティを取得したい場合は、そのクラスがマジックメソッド __get() および __isset() を実装している必要があります。 column_key 値を返したいカラム。 取得したいカラムの番号を整数値で指定することもできるし、 連想配列のキーやプロパティの名前
勤め先の社内勉強会で、PHP 7 で新たに導入された機能について紹介しました。発表資料を公開します。前半では PHP 7.0 で導入された機能について、後半では PHP 7.1 で導入されることになる機能について、それぞれ構文の拡張にあたる内容を中心にピックアップして紹介しました。 最近の PHP の話 from y-uti www.slideshare.net PHP の各バージョンで導入された新機能は、マニュアルの付録に記載されています。 PHP: 付録 - Manual 今後の PHP に導入されていく新機能は、PHP Wiki の RFC のページに記載されています。それぞれ PHP の internal メーリングリストで議論され、最終的には投票によって採否が決められます。メーリングリストは誰でも登録できます。また、アーカイブが公開されているので登録しなくても議論を追うことができ
【スライドにして106枚】PHP7.0 全46RFCの概要紹介 最近仕事のメモを取るのに、日付ベースでノートを保存出来る wri.pe というサービスを使い始めた YamaYuski です。 弊社はPHPに強い会社と自負していますが、これまで社内勉強会では PHP 7 について詳しく取り上げていませんでした。(もちろん社内プロジェクトで使えるかどうかのチェックなどはしています) これではいかんということで、社内でもPHP7の新機能や注意点をRFCベースで共有し、今後のアップデートに備えるべく、筆を取りました。 その結果、 重量級 な内容となってしまいましたよ。 スライドにして106枚。 (何故こんな枚数になった。) ということで、折角作ったのに社内にしか公開しないのはもったいない、ということで、ひとまとめにした内容を記事として書き起こしてみます。 ※今回はmarkdownを使って資料を書い
まずはPHP7リリースおめでとうございます!!! PHP 7.0.0 Released なんだか記念すべき日にAdvent Calendarを入れてしまって恐縮です。その割にすごい小ネタで書いてしまった…。 ここから本文 PHP7では宇宙船演算子<=>が導入されます。だいたいこういう意味の演算子ですね。 // <=>と同じ意味の関数 function compare($a, $b) { if ($a < $b) { return -1; } elseif ($a > $b) { return 1; } else { return 0; } } compare(1, 2); // -1; 1 <=> 2; // -1; ユースケース的にはusort(), uasort(), uksort()との組み合わせで用いられるので、この機会にPHPにおける配列の並び替えについてまとめてみることにします
いよいよ、PHP の次期メジャーバージョンの PHP 7 がリリースされます。すでに、RC4 が登場しており、来月予定されている本リリースが楽しみです。 PHP 7 には幾つかの新機能が盛り込まれているのですが、その中でも気になるのが、無名クラスです。 無名クラスとは 無名クラスは、クラスの定義をすることなく、オンザフライでオブジェクトを生成する機能です。匿名関数(ネイティブクロージャ)のクラス版だと思うとイメージしやすいです。 無名クラスは、new classで、生成します。下記が、そのサンプルです。ここでは、sayメソッドを持つ無名クラスを定義して、$objectに格納しています。$object の say メソッドを実行すると、'Hello'という文字列が出力されます。 <?php $object = new class { public function say() { echo
エラーや例外の取り扱いの変更 fatal error や recoverable fatal error の多くが、PHP 7 では例外に変換されるようになりました。 これらの例外は Error クラスを継承したもので、 このクラスは Throwable インターフェイスを実装しています。 この新しいインターフェイスを、すべての例外が実装しています。 エラーではなく例外がスローされるようになるということは、自作のエラーハンドラは呼び出されなくなるということです (Error 例外をキャッチしなかった場合は、fatal エラーが発生します)。 PHP 7 におけるエラーハンドリングの詳細な説明は PHP 7 のエラー を参照ください。 この移行ガイドでは、下位互換性のない変更点を列挙するだけにとどめます。 set_exception_handler() が常に Exception オブジェク
PHP5用のextensionは変更なしではPHP7上で動きません。#ifで分岐して両対応にするのも厳しい印象で、多くのextensionは別ブランチで開発しているようです(調べた範囲ではAPCu、msgpack、memcachedなどが別ブランチで開発しているようです)。 今回PHP7用の実験的なextension「php7_explorer」を書いてみました。書いてみてPHP5用のextensionとの違いを改めて実感したので、ざっくりの違いをまとめてみます。 「おまじない」を書かなくてよくなった PHP5までは、Zend APIのプロトタイプ宣言最後にTSRMLS_DCを、呼び出し時の引数リストの最後にTSRMLS_CCをつけるという「おまじない」が必要でした。これはZTS (Zend Thread Safety)サポートのため、必要なときだけ余計な引数を引き回すようなマクロ定義です
仕事で使っているPHPアプリケーションをPHP7 beta1で動かしてみたらそのままでは動きませんでした。 私が実際にはまった点を紹介します。 なお、PHP7の変更点についてはhnwさんの記事に詳しく網羅されているのでご一読ください。 PHP7で変わること - hnwの日記 Apacheのモジュール名が変わっていた ApacheにPHPを組み込むためのモジュール(俗にいうmod_php)のモジュール名・ファイル名が変更になっていました。 LoadModule php5_module modules/libphp5.so ↓ LoadModule php7_module modules/libphp7.so memcache extensionがインストールできない PHPからMemcachedを使うためのExtensionには2つあります。 memcache memcached memca
PHP7で2項演算子「??」が新設されます。左オペランドがnull以外の値であればその値を、そうでなければ右オペランドを返すようなものです。
(Last Updated On: 2018年9月26日)PHP 7から基本的なデータ型(整数型、浮動小数点型、配列型)タイプヒントが追加されます。直感的に書くコードと正しいコードには乖離があります。PHP7でタイプヒントを使う場合のベストプラクティスを紹介します。 タイプヒントとタイプヒントの問題点については前回のブログを参照してください。 PHP7タイプヒントの注意点 PHPはWebシステムで利用され、データベースやJSONなどの外部データとのやり取りが必要になります。PHP7のタイプヒントはデータ型変換を伴うので 入力データの形式/表現範囲 PHPデータ型の表現範囲 タイプヒント/キャストの動作 に注意する必要があります 入力データの形式 データベースの場合、入力データは基本的に”文字列”になります。データベースのデータ型をPHPなどの言語のデータ型と完全に一致するとは限りません。こ
An anonymous class is a class without a (programmer declared) name. The functionality of the object is no different from that of an object of a named class. They use the existing class syntax, with the name missing: var_dump(new class($i) { public function __construct($i) { $this->i = $i; } }); new class (arguments) {definition} Note: in a previous version of this RFC, the arguments were after the
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く