get_class_vars, get_object_vars
get_class_vars は、(引数で指定する)クラスで定義される変数を配列で返します。
get_object_vars は、(引数で指定する)オブジェクトで定義される変数を配列で返します。
どちらも、呼び出すスコープでアクセス可能な変数のみを抽出して返します。
class Item {
private $sales = 900;
public $price = 1200;
}
get_class_vars('Item');
のような場合、$price のみを抽出して返します。
2012年01月31日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
DateTime クラス
日付や時刻の処理に便利なクラスDateTime。PHP5.2以降で使用可能。DateInterval等、PHP5.3以降で利用可能な機能もある。
$date = new DateTime();
$date->add(時間);
といった処理が楽にできる。上記はオブジェクト形式の場合。手続き型で記述する場合は、date_createを使用する。
従来の date 関数は、日付フォーマット文字列でデータを持っていた。表示するだけなら楽だが、日付の加減算や差分計算等は面倒だった。
2012年01月12日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
Smarty
Smarty は、デザインテンプレート。プログラムから、ビュー部分を分離し独立して処理しやすくしたもの、と考えると良いだろう。
システムロジックと、デザインテンプレートとが独立平行して作成できれば、分業しやすい等開発効率でメリットがある。またウォーターフォールだけでなく、アジャイル開発も行いやすくなる(この辺は程度問題だが)。
Smarty を使うデメリットとしては、実行速度が遅くなる、という点があげられる。この点はキャッシュ機能等を上手く利用して回避したい。
タグ
2011年11月06日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: テンプレート
Cannot modify header information – headers already sent
すでに何らかのHTML出力が行われている場合に、さらにヘッダー情報を出力しようとしたときに、この warning メッセージが表示される。
タグ
2011年10月06日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: エラーメッセージ
__sleepと__wakeup
__sleepと__wakeupは、マジックメソッド(特殊なメソッド)。
__sleepが定義されているオブジェクトを、serialize関数でシリアル化すると、シリアル化の直前に__sleepが呼び出される。(実行例としては、データベース接続を切断する、保存されていないデータを保存する等)
__wakeupが定義されているオブジェクトを、unserialize関数で非シリアル化すると、非シリアル化の直後に__wakeupが呼び出される。(実行例としては、データベースと接続する、初期化する等)
(*) シリアル化とは、オブジェクトをデータベースやファイルに出力できる形式に変換する作業のこと。
タグ
2011年08月30日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
PHP技術者認定試験
PHP技術者認定機構によるPHP技術者資格です。
タグ
2011年06月29日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
フレームワーク
ソフトウェアを作るための基礎部分のことです。一からシステム構築するのと比較すると、以下のようなメリットがあります。
- 良く利用する機能を予め用意しておき、車輪の再発明を防ぐ。
- セキュリティ対策等を自動で行う。
- MVC を利用し、ロジックとレイアウトを分離する。
- コーディング規則を統一し、複数人での開発やメンテナンスを容易にする。
一方で、デメリットもあります。
- フレームワークのコーディング規則や設計思想などの学習コスト
- 実行時の速度
- フレームワーク自体のバージョンアップ時の対応
などがあげられます。
タグ
2011年01月13日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
Unexpected
想定外の変数/定数/関数/オブジェクト等が見つかった場合に表示されるエラーメッセージ。Parse error: syntax error, unexpected T_STRING、Parse error: syntax error, unexpected T_VARIABLE、Parse error: syntax error, unexpected T_FUNCTION 等と表示される。
この場合、括弧の綴じ忘れ等のことも多いが、必要とされるモジュール等の不足、PHP バージョンの差異等が原因のこともある。ショートオープンタグの利用可否に依存しているケースもある。
環境により出たり出なかったりする場合は、PHP のバージョンや php.ini の設定、phpinfo() の情報等を比較すると、解決の糸口が見つかるかもしれない。
タグ
2010年03月28日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: エラーメッセージ
Deprecated
将来動作しなくなる(廃止予定)の関数等を使用している場合に表示される警告メッセージ。PHP5.3 で、E_DEPRECATED というエラーレベルが追加された。
PHP4 互換のスクリプトや、等では多くのコードが引っかかるようである。また、ereg() が deprecated となるようなので、preg_match() を使うのが好ましい。
なお、php.ini で
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
とすればエラー表示はされないが、本質的に解決するわけではない。スクリプトの修正/更新を早急にすべきであろう。
タグ
2010年03月25日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: エラーメッセージ
画面が真っ白
ブラウザ画面が真っ白になることがあります。何らかのエラーが発生していることが多いですが、様々な理由(下記参照)が考えられるため、エラーメッセージを確認すべきです。
- スクリプトにエラーがある
- PHP バージョンの違い
- ライブラリ等の不足
- セーフモードによる制限
エラーメッセージがブラウザに表示されない場合、エラーログファイルに保存される設定になっていることが多いです。エラーログファイルを閲覧すると、具体的なエラー内容が分かるはずです。
なお、ログファイルの場所は、サーバーにょって異なることがあります。お使いのサーバーの設定マニュアル等を参考にしてください。
タグ
2010年01月06日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: エラーメッセージ