タグ PHP の記事

Laravel のキューの dispatchAfterResponse() の仕組みのまとめ

PHP のフレームワーク Laravel が提供するキューのジョブオブジェクトに というメソッドがあります。 少し前にこの仕組みについて調べたのですが、ウェブ上で参考になる情報があまり見つかりませんでした。 今回はこの 周りの仕組みについてかんたんにまとめておきます。 対象…

PHP-FPM のリクエスト処理後のタイムアウトの仕組みのまとめ

少し前に PHP の FPM (FastCGI Process Manager) のリクエスト処理後のタイムアウトの仕組みについて調べたのでかんたんにまとめておきます。 FPM で PHP を動かすと、 という関数が利用できます。 この関数はリクエスト処理を完了するためのも…

PHP の Multiple access type modifiers are not allowed というエラーの対処方法

PHP の小ネタです。 PHP のコードを実行しようとすると次のようなメッセージの Fatal error が出て処理が止まることがあります。 これはクラスのメソッドやプロパティのアクセス修飾子( / / )を複数重ねて付けていると発生するエラーです。 エラーはクラス定義…

PHP で文字列が正の整数かどうかを判定する方法

PHP で 与えられた文字列が正の整数と解釈できるかどうかをチェックする方法 についてです。 尚 PHP のバージョン で動作確認をしました。 バージョンが違うとそのまま使えないこともあると思うので、参考にされる際はご注意ください。 PHP だとこんな単純なことでも手間がかか…

PHP で小数点以下の桁数を指定して切り上げ・切り捨てする方法

PHP で少数点以下の桁を指定して数値を切り上げ・切り捨てする方法についてです。 尚、今回動作確認には PHP のバージョンの を使用しました。 組み込み関数 PHP では、数値を丸めるための組み込みの関数として次のものが用意されています。 名前から想像がつくとおり …

PHP の static と self の違い

PHP の と の違いについてです。 基本中の基本なのですが、 PHP を書かない日が続くとどちらがどちらなのか忘れてしまい調べ直すことしきりなので、メモとして残しておきます。 まとめ は 実行時 のクラスを指す は 定義時 のクラスを指す 詳細説明 は実行時の文脈で…

PHP で callable なプロパティを呼び出す方法

PHP の小ネタです。 PHP において「 callable なオブジェクト が別のオブジェクト のプロパティとして格納されているときに、 をどのように呼び出せばよいのか」についてです。 サンプルとして、インスタンスが callable な クラスがある場合を考えます。…

PHP で入れ子の配列の中身を再帰的に変更する方法

PHP で入れ子の配列の中身を再帰的に変更する方法について説明します。 PHP でコードを書いているとときどきやりたくなることがあるのですが、サッと実装できずに時間がかかったりするのでやり方をまとめておきます。 課題 入れ子の配列 があり、その中にキーが で、値が配列になっ…

PHP の整数の最大値周りの挙動

PHP の整数の最大値周りの挙動についてまとめてみます。 整数の最大値に関連する定数 PHP には整数の最大値に関連した定数として次の 3 つがあります( PHP の最新バージョンが 7.2 である 2018 年 5 月時点の認識です)。 : integer のバイト数( PH…

PHP の Flysystem の使い方まとめ

PHP でファイル操作のためのシンプルな API を提供する Composer パッケージ「 Flysystem 」の使い方をまとめてみました。 Flysystem は「さまざまなストレージを共通のインタフェースで扱えること」が大きな特徴のひとつですが、ローカルのストレージに…

PHP の型キャストの挙動のまとめ

PHP には、他の言語にもよくある「型キャスト」( typecasting )の機能があります。 正しく使えればきっと便利な機能なのですが、 PHP の場合は直感的ではない挙動をする場合がかなり多いので、使うときは細心の注意が必要です。 代表的なパターンを以下にかんたんにまとめ…

Sublime Text 3 のパッケージ ComposerPackageInfo をリリースしました

「 ComposerPackageInfo 」という名前の Sublime Text 3 用パッケージをリリースしました。 ComposerPackageInfo - Package Control gh640/SublimeComposerPackageInfo - Git…

When to use call_user_func() and 'funcname'() in PHP?

There are 2 ways to call a function whose name is set at runtime in PHP. One is and another is . At a glance these 2 methods are completel…

PHP のエラーログを標準出力や標準エラーに出す方法

PHP のエラーログを標準出力や標準エラーに出す方法についてです。 PHP をコマンドラインで実行するときに、エラーをターミナル上で確認したくなることがあります。 そんなときには で設定 の値を変更すれば OK です。 実際に使うイメージは次のとおりです。 で指定する …

PHP で最大実行時間をセットしたり確認したりする方法

PHP でタイムアウトまでの時間をセットしたり確認したり方法についてです。 タイムアウトまでの時間をセットする セットする方については 2 通りの方法があります。 ひとつめは専用の を使う方法、もうひとつは汎用の を使う方法です。 いずれも数字の単位は「秒」です。 注意が必…

PHP で使用されている php.ini ファイルを特定する方法

PHP で設定ファイル を確認する方法について。 大きく分けて 3 つの方法があります。 コマンドの オプションを使う方法 関数を使ってページで確認する方法 関数を使う方法 1. コマンドの オプションを使う方法 コマンドに オプションをつけると PHP の設…

Doctrine の ArrayCollection クラスの使い方まとめ

Doctrine の の使い方をかんたんにまとめてみました。 PHP の組み込みの配列ではパッとできないことがシンプルにエレガントに書けるので便利です。 オリジナルのリファレンスはこちら。 Class Doctrine\Common\Collections\ArrayColl…

PHP で Fatal error: Can't use method return value in write context in ... というエラーが出る場合の対処方法

問題 PHP でコードを書いていると実行時に次のようなエラーが出ることがあります。 原因と対処方法 (私の経験上)多くの場合、このエラーが出るのは に関数やメソッドの戻り値を直接渡していることが原因です。 例えば次のようなコードでこのエラーが発生します。 解決策としては、メソ…

PHP で固定間隔の時系列を生成する方法

PHP の組み込みの関数を利用して固定間隔のタイムシリーズを取得する方法についてご紹介します。 出力のイメージは次のとおりです。 この場合は オブジェクトを使うやり方がシンプルです。 テストしてみます。 うまく使えています。 ポイントは次のとおりです。 のコンストラクタには…

PHP の array_reverse() の使用上の注意

PHP の関数 を使っていて挙動に驚いたので備忘録を残しておきます。 は配列の要素の順番を逆にした配列を生成して返してくれる関数です。 通常の使用例は次のとおりです。 インデックス配列: 連想配列: いずれも直感的で自然なふるまいですね。 注意すべきなのは要素数が 1 の連…

PHP の .phar ファイルを解凍する方法

解凍という表現が適切かどうかわかりませんが .phar ファイルの中身を確認したいときがあります。 そういうときには以下のコマンドを使うことで中身をディレクトリに展開して確認することができます。 参考 php - Extracting files from .phar arch…

PHP での型チェック方法まとめ

PHP での変数の型チェック方法のまとめです。 頻度は高くないのですが、 PHP で変数の型チェックをしたくなることがときどきあります。 このあたり PHP はわかりづらい感じなので、かんたんにまとめておきたいと思います。 はプリミティブ型・組み込み型のデータ…

PHP の連想配列の最初の要素を取得する方法

PHP の連想配列で最初の要素を取得する方法について。 ちょっと直感的ではなくまたすぐ忘れてしまいそうなのでここに書き留めておきます。 最初の要素の「バリュー」を取得する 値を取得するのはかんたんで 関数を使えば OK です。 最初の要素の「キー」を取得する キーは一見取得方…

PHP での Fatal error: Can't use function return value in write context というエラーの原因と対処方法

今回は PHP のコードを書いていて次のエラーが出た場合の対処方法について。 原因 このエラーが表示される最も代表的なパターンは や に関数の戻り値を直接渡してしまっている場合のようです。 例をあげてみます。 のどちらの例でも Fatal error があげられます。 …

PHP で関数を受け取る関数にインスタンスメソッドを渡す方法

PHP の関数型スタイルの関数 や の引数に通常の関数ではなくメソッドを渡す方法をご紹介したいと思います。 PHP では でインスタンスメソッドを指定することができるので、このスタイルでメソッドを渡せば OK です。 PHP にはいろいろと気持ち悪いところもありますが、こ…

PHP の echo と print のちがいと使いどころ

PHP には と という 2 つのよく似た出力用機能が備わっています。 これらのちがいやそれぞれの使いどころについて、ことあるごとに調べては忘れ調べては忘れの繰り返しなので、備忘録として書き留めておきます。 早速結論ですが、ひとことでいうと、 と の最も大きなちがいは式…

Composer で Drush を入れようとしたときのエラー

エラー文 原因 Composer のバージョンが古いために起こるエラーのようです。 私は Composer 0.9-dev で Drush 7.0 を入れようとしたときに発生し Drush を入れることができませんでした。 対処方法 Composer をアップデートします。 C…

PHP の uploadprogress をさくらのレンタルサーバーで使う方法

をさくらのレンタルサーバーで利用する方法をご紹介します。全体的な流れとしては以下のとおりとなります。 をインストール に設定行を追加 具体的には以下のとおりに行うとよいでしょう。 まずは以下のコマンドを実行。異なるバージョンを使いたいときやインストール先を変更したい場合には…

PHP の APC の apc_fcntl_unlock エラー

エラー 発生環境 上記エラーが発生した私の環境は以下のとおりです。 PHP 5.3.35 APC 3.1.9 原因 APC 3.1.9 の既知のバグのようです。次のページで議論され解決されています。 PHP :: Bug #59750 :: Unknown: apc_fcntl…