Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
function showCallerFunc() { $dbg = debug_backtrace(); echo( $dbg[1]['function'] ); } メソッド内で、呼び元が誰かを知る必要は通常ありませんが、デバッグやログ出力目的には便利です。 また、debug_backtrace()メソッドでは、function以外に以下の情報も取得できます。 function string 関数名。 line integer 行番号。 file string ファイル名。 class string クラス名。 object object オブジェクト。 type string コール方式。 メソッド呼び出しの場合は "->"、 静的なメソッド呼び出しの場合は "::" が返されます。 関数呼び出しの場合は何も返されません。 args array 関数の内部の場合、関数の引数のリストと
クラスメソッドをabstractにしようと思いまして、abstractをつけて関数定義したところ、以下のようなエラー。 Class SampleClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods エラーの原因がわからず、30分も調べてしまいました。 原因はclassの定義で本来なら「abstract class SampleClass」 としなくてはいけないところを 「class SampleClass」と定義していたことでした。 エラーメッセージからでは気づきにくいことでした・・・
PHPにおいて、ある配列が連想配列として使われているのかどうかを判別したい場合どうすればいいのか。 色々調べてたらこんな記事を発見しました。 <?php function is_hash(&$array) { return array_keys($array) !== range(0, count($array) - 1); } テレパス・ラボ : 連想配列 判定関数(is_hash) なるほど。 array_keysで配列のキー一覧を取得し、そのキー一覧が0からの連番になっているかどうかを比較すれば、対象の配列が配列なのか連想配列なのかを判別できるという理屈ですね。 確かにこれで判別ができそうです。 ですがひとつだけ気になる部分があって、array_keysやrangeを使って一時的な配列を確保しているのは無駄が多いのではないかと。 対象となる配列が大きければ大きいほどメモリ効率が悪くな
最近でPDFとか動画もブラウザ内で表示されるのでファイルとして保存されることは少なくなったけど、 あえて任意のファイルをダウンロードさせたい場合はPHPで実現できる <?php //パス $fpath = './a.jpg'; //ファイル名 $fname = '画像名.jpg'; header('Content-Type: application/force-download'); header('Content-Length: '.filesize($fpath)); header('Content-disposition: attachment; filename="'.$fname.'"'); readfile($fpath); こうして例えばdownload.phpとかにしておくと、download.phpにアクセスするとa.jpgが「画像名.jpg」というファイル名でダウンロー
本日からPHPのメモを記述して行こうと思います。 さて早速今日のネタ。 ぎじゅっやさんにてfile_get_contentsでWebページへアクセスする際に、UserAgentを変更する方法が紹介されています。 では、これを応用してfile_get_contentsを使ってPOST形式でデータを送信してみましょう。 参考コード <?php //POSTデータ $data = array( "param1" => "data1", "param2" => "data2" ); $data = http_build_query($data, "", "&"); //header $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data) ); $cont
#釣りっぽいタイトルですが大まじめです via. PHP 逆引きレシピ - 肉とご飯と甘いもの @ sotarok で、 @ (エラー制御演算子といいます!)はねーよ的な話をしましたが、著者の方から、「@に対して批判的になる理由が記載されていない」とのメールをいただきました。確かにその通りでした。実は理由を下書きのときには書いたのですが、長くなってしまったので削ってポストしたのですが、かえってわかりづらくなってしまいましたね.すみません。 ということで、PHPプログラマが、エラー制御演算子「@」使うべきでない 5 つの理由を述べます. 始める前に、本質的なところ 色々理由はつけようと、やっぱり前回述べた、 終的に$qに入るものが同じであることと、コードとして同じ意味であるかは、別じゃないでしょうか。 が一番本質的な話で、それ以上の話ではありません。 つまり、発生する可能性があるとわかってい
こんにちは。親知らずを抜いて離乳食三昧のyukiです。GWの暴飲暴食から脱し、ダイエットするには好都合ですね。すいません。負け惜しみです。 さて、今回は「PHPのちょっとしたコツ」の続きネタで、PHP最適化Tipsまとめサイトの紹介です。 これらは既に有名なサイトで紹介されていたり、常識の範囲かもしれませんが、ひとつでも有用に感じていただければ幸いです。 そして英語が極端に苦手なため、意訳突っ込み等あれば宜しくお願い致します。 PHPの最適化 12 PHP Optimization tips (元ネタはこちらでしょうか? http://www.ilia.ws/files/zend_performance.pdf) staticが使えるなら、staticを使う。速度は4倍になる。 __get, __set, __autoload は避ける。 require_once() はコストがかか
Good PHP Tutorialsにて、PHPとGDライブラリを使って棒チャートを作成する方法が紹介されています。グラフ作成ライブラリを使わず、GDのみで一から棒チャートを作る方法を、細かく分けて説明しています。 以下のソースコードを7つの項目に分けて細かく解説されています。 phpファイルを準備する データの値をセットする キャンバス(グラフの枠)を描画 グリッドと、軸のラベルを描画する 棒グラフを描画する チャートのラベルを描画する チャートを出力する <?php //データをセットする $graphTitle = "Favorite Reptile"; $xLabel = "Reptile"; $yLabel = "Votes"; $data['Alligator'] = 12; $data['Crocodile'] = 15; $dat
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く