タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

tipsとphpに関するk-holyのブックマーク (10)

  • PHPのハマりポイントのリンク集 - Qiita

    PHPのハマり情報のまとめです。主に罠な仕様、予想外の振る舞い、ドキュメントに詳しくは書いてない振る舞いについての情報をまとめていきます。ここに載ってない情報があればぜひとも教えて下さい。頂いた情報をもとに随時更新していきます。 PHPは引数が足りないときはエラーになるが、引数が多いぶんには何も言わない - Qiita PHPはときどき掛け算ができない - Qiita PHPのDateTime::ISO8601はISO8601ではない - Qiita SplFileObjectのREAD_AHEAD, SKIP_EMPTY, DROP_NEW_LINEPHPのバージョンによって挙動がバラバラな件 - Qiita PHP: iterable型はiterator_to_array()に渡しちゃいけない - Qiita PHPの正規表現で^$より\A\zがいい理由 - Qiita PHP:文字

    PHPのハマりポイントのリンク集 - Qiita
    k-holy
    k-holy 2019/01/24
    これは有用な情報、にわかではない本物のハマりポイントっぽいな。
  • オブジェクトをいい感じに複製(クローン)する [myclabs/deep-copy] - 超PHPerになろう

    「オブジェクトの複製」には質的に厄介な問題をいくつも含みます。特に、オブジェクトの再帰的な複製(ディープコピー)には直感的ではない動作や単純ではない依存関係が発生しがちです。myclabs/deep-copyはそれをいい感じに解決してくれます。 公式サイト myclabs/DeepCopy: Create deep copies (clones) of your objects 概要 Create deep copies (clones) of your objects パッケージ名 myclabs/deep-copy 作者 My C-Labs mnapoli (Matthieu Napoli) ライセンス MIT License バージョン v1.6.1 (2017-04-12) インストール Composerでインストール可能です。 composer.phar require myc

    k-holy
    k-holy 2017/05/08
    __clone()ではdeepCopyに対応できない問題。メモメモ
  • PHPで配列の要素をunsetしてもインデックスは詰まらない - Qiita

    $array = range(1,5); var_dump($array); // #1 unset($array[0]); unset($array[1]); unset($array[2]); unset($array[3]); unset($array[4]); var_dump($array); // #2 // #1 array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } // #2 array(0) { }

    PHPで配列の要素をunsetしてもインデックスは詰まらない - Qiita
    k-holy
    k-holy 2017/02/10
    これはいつかはまりそう…
  • DateIntervalとDatePeriodを使って指定期間内で日付を刻みながらforeachでイテレートする - Qiita

    $begin = new DateTime('2016-01-01'); $end = new DateTime('2016-01-10'); $interval = new DateInterval('P1D'); $daterange = new DatePeriod($begin, $interval ,$end); foreach($daterange as $date){ echo $date->format("Y-m-d H:i:s") . "\n"; } 2016-01-01 00:00:00 2016-01-02 00:00:00 2016-01-03 00:00:00 2016-01-04 00:00:00 2016-01-05 00:00:00 2016-01-06 00:00:00 2016-01-07 00:00:00 2016-01-08 00:00:00 201

    DateIntervalとDatePeriodを使って指定期間内で日付を刻みながらforeachでイテレートする - Qiita
    k-holy
    k-holy 2015/11/11
    DatePeriod使ったことなかった。連続的なタイムテーブルとかカレンダーの実装に便利そう。
  • 関数をオートロードする

    PHP のオートロードの対象はクラスだけなので、関数を単独でロードさせることはできないが、オブジェクトを生成するもしくはスタティックメソッドを実行すれば、クラスの定義ファイルが読み込まれるので、同じファイルで定義されている関数も自動的に利用できるようになる。ただし、スタティックメソッドを使った場合とあまり入力する手間は変わらない。 PHP コアの RFC によれば、関数をオートロードできるようにする機能の導入は何度か検討されているが、今の時点では導入されていない。 require_once __DIR__.'/vendor/autoload.php'; use Symfony\Component\ClassLoader\UniversalClassLoader; use MyApp\MyFunc; $loader = new UniversalClassLoader(); $loader-

    関数をオートロードする
    k-holy
    k-holy 2012/09/21
    なるほど、オートロードでクロージャを返す関数を呼ぶとか、ケッタイなこともできますね…
  • PHP: コールバック関数でキーをフィルタリングする

    PHP: array_map のコールバック関数がキーを受け付けるようにするPHP: コールバック関数でキーをフィルタリングするPHP: filter と map を1つにまとめた関数を定義するPHP: filter と partitionPHPzip、unzipzipWitharray_fill にコールバック関数を受け付ける機能を追加するHaskell の Data.Map モジュールの filterWithKey 関数を使ってみて、PHP 版がほしくなったので。 まずは素直に foreach 文を使った定義。 function array_filter_with_key(array $array, callable $callback) { $ret = []; foreach($array as $key => $value) { if ($callback($key))

    PHP: コールバック関数でキーをフィルタリングする
    k-holy
    k-holy 2012/09/10
    array_intersect_ukey()
  • PHP でメモ化

    メモ化は以前の計算を再利用するテクニックで、再帰計算のパフォーマンス改善に使われる。クロージャの挙動を理解するためのよい教材であり、Douglas Crockford の「JavaScripts The Good Parts」を通じて広く知られるようになった。再帰計算の例としてフィボナッチ数列をメモ化したものは次のとおり。gist にあったコードに少し手を入れた。 function benchmark(callable $function, $runs) { $start = microtime(true); while(--$runs) { $function(); } $end = microtime(true); return $end - $start; } function memoize(callable $function) { $cache = []; return fun

    PHP でメモ化
  • PHP5 配列をメソッドチェインで再帰処理するクラス : エクスギア Blog

    CakePHPを使っていると、データ構造が多階層の配列で管理されていることが多く、一括で処理をしたい場合などに度々再帰処理を実装することがあります。 通常であれば、array_map系の関数を使って再帰的に処理を記述することになりますが、 毎回array_mapを使うのは面倒だし、もっと簡潔に記述したい 個別のグローバル関数・各メソッドを連続して簡単に利用したい という理由で、以下のように記述できるクラスを作成しました。 (クラスのソースコードは最後に記述しています) PLAIN TEXT PHP: // $arrの全ての要素にtrimと半角カナ変換を実施 ArrayMap::create($arr)->trim()->mb_convert_kana('KV'); // $arrの全ての要素に「先頭:」という文字を追加 ArrayMap::create($arr)->sprintf('先頭

  • http://www.cpa-lab.com/tech/0153

  • PHPやnode.jsで画像をbase64エンコードしてインラインイメージとしてimgタグで表示する方法

    このドキュメントの内容は、以下の通りです。 はじめに インラインイメージとは base64 とは インラインイメージの指定方法 指定できる主なコンテンツタイプ インラインイメージの使用例 PHPを用いて画像をbase64する方法 PHPで画像をbase64エンコードして、imgタグに指定する方法 node.jsで画像をbase64エンコードする方法 Unixコマンドで画像ファイルをbase64エンコードする方法 はじめに ウェブページをはやく表示するテクニックはいろいろあります。たとえば、ページや画像などのリソースのサイズを小さくしたり、画面を表示するためのHTTPリクエストの数を減らす、といった手法があります。 HTTPリクエストの数を減らすためのテクニックを例に挙げます。 インラインイメージ CSSスプライト(CSS Sprite) イメージマップ 今回は、インラインイメージについて紹

  • 1