変数とか

定義済みグローバル変数

特別な意味を持ったグローバル変数。

$_ENV[]
取得した環境変数の値
$_COOKIE[]
取得したHTTP-Cookieの値
$_GET[]
取得したGETメソッドの値
$_POST[]
取得したPOSTメソッドの値
$_SESSION[]
セッション変数
$_SERVER[]
サーバの環境変数
環境変数として $PHP_SELF、$REMOTE_ADDRなどもあるが、$_SERVER[]にまとめられた。
$_SERVER["PHP_SELF"] のように指定する。
$SERVER_ADDR
現在スクリプトを実行しているサーバのIP
$SERVER_HOST
現在スクリプトを実行しているサーバのホスト名
$REQUEST_METHOD
このスクリプトの呼び出したリクエストのメソッド
$argc
コマンドラインのコマンドと引数の数。
もしくはGETメソッドで渡されたスクリプト名と引数の数。
$argv[]
コマンドラインのコマンドと引数。 もしくはGETメソッドで渡されたスクリプト名と引数。
0番目がコマンド名やスクリプトのファイル名。

スコープ

global
変数のグローバル化
$var = 1;
for($i=0 ; $i<10 ; $i++){
	echo $var."\n";
	func();
}

//実行毎にグローバル変数 $var をインクリメント
function func(){
	global $var;
	$var++;
}

コマンドライン引数を取得

$argc
コマンド名+引数の数
$argv[]
コマンド名と引数が格納された配列
0番目がコマンド名、1番目以降が引数となる。
また、ソースコードが標準入力から直接送られた場合コマンド名は「-」になる。
<?php
echo 'command='.$argv[0]."\n";
for($i=1 ; $i<$argc ; $i++){
	echo 'argv'.$i.'='.$argv[$i]."\n";
}
?>

マジック定数

名前説明
__LINE__ソースファイル上の現在の行番号。
__FILE__実行しているファイルのフルパスとファイル名。
インクルードされるファイルの 中で使用された場合、インクルードされるファイルの名前が返されます。
PHP 4.0.2 以降では __FILE__ は常に絶対パスで、シンボリックリンクは解決されます。
それより前のバージョンでは、場合によっては相対パスが返されることもあります。
__DIR__そのファイルの存在するディレクトリ。include の中で使用すると、 インクルードされるファイルの存在するディレクトリを返します。
つまり、これは dirname(__FILE__) と同じ意味です。 ルートディレクトリである場合を除き、
ディレクトリ名の末尾にスラッシュはつきません (PHP 5.3.0 で追加されました)。
__FUNCTION__関数名(PHP4.3.0で追加されました)。 PHP 5以降、この定数は宣言時の関数名(ケース依存)を返します。
PHP 4では、この値は常に小文字で返されました。
__CLASS__クラス名(PHP4.3.0で追加されました)。 PHP 5以降、この定数は宣言時のクラス名(ケース依存)を返します。
PHP 4では、この値は常に小文字で返されました。
__METHOD__クラスのメソッド名(PHP5.0.0で追加されました)。メソッド名は宣言時と同じ(ケース依存)を返します。
__NAMESPACE__現在の名前空間の名前 (大文字小文字を区別します)。
この定数はコンパイル時に定義されます (PHP 5.3.0 で追加されました)。

参照

$a = $A = 10;
$b = $a;		// 値の代入
$B = &$A;	// 参照の代入

$b++;
$B++;
var_dump($a,$A); // 10,11

判定

値の定義・有無

isset($var)NULL以外の値がセットされていれば真
unset($var)変数の値を破棄する。関数内で普通にunsetを行ってもグローバル変数は破棄されない。
unset($GLOBALS['bar'])のように$GLOBALS変数を用いる必要がある。
配列in_array($needle,$array,$strict)配列内に$needleという要素があるなら真
$needleが文字列なら大文字小文字を区別しない。
$strictが真なら要素の型も合っているか判定する。
array_key_exists($key,$array)配列の指定キーがセットされていれば真
キーがセットさえされていれば対応する要素がNULLでも真になる
変数get_defined_vars()定義されている変数をすべて配列で返す
定数get_defined_constants($categorize)定義されている定数をすべて連想配列で返す
categorizeが真なら1次元目をカテゴリーとした多次元連想配列で返す
関数/クラスfunction_exists($functionname)関数が定義されていれば真
get_defined_functions()定義されている関数をすべて配列で返す
method_exists($obuject,$methodname)クラスメソッドがあれば真を返す

変数の型

gettype変数の型を取得する
"boolean","integer","string","array","object","resource","NULL","unknown type"
"double"はfloat型だがこれになってしまう。
settype($var,$type)変数に型をセットする。
$typeがbooleanの時に$varを文字列にすると1がセットされる
is_null($var)値が未定義型(NULL)ならば真
is_bool値がboolean型(真偽値)ならば真
is_array値が配列型ならば真
is_string値が文字列型ならば真
is_scalar値がスカラー型ならば真
is_int値が整数型ならば真
is_integeris_intのエイリアス
is_long
is_float値がfloat型ならば真
is_doubleis_floatのエイリアス
is_real
is_object値がオブジェクト型ならば真
is_resource値がリソース型ならば真
is_callable値が関数としてコール可能ならば真

変数の値

is_numeric($var)値が数字、もしくは数値形式の文字列ならば真
符号・数値・小数・指数・16進数(小数指数×)
is_finite($float)値が有限の値なら真
is_infinite($float)値が無限大の値なら真
is_nan($float)値が非数値であるなら真
is_binary($str)値がネイティブのバイナリ文字列ならば真
is_buffer($str)ネイティブのunicodeかバイナリ文字列ならば真
is_unicode($str)値がunicode文字列ならば真

ファイル

この場合の「ファイル」は広い意味でディレクトリやシンボリックリンクなども含む。
「通常のファイル」が通常処理されるプログラムファイルやテキストファイルなどのこと。

file_exists($filename)ファイルが存在すれば真
is_readable($filename)ファイルが読み込み可能ならば真
is_writable($filename)ファイルが書き込み可能ならば真
is_executable($filename)ファイルが実行可能ならば真
is_file($filename)ファイルが通常のファイルならば真
is_dir($filename)ファイルがディレクトリならば真
is_link($filename)ファイルがシンボリックリンクならば真
is_uploaded_file($filename)HTTP POSTでアップロードされたファイルならば真

定数の設定

bool define ( string $name , mixed $value [, bool $case_insensitive ] )
// $name 定数名
// $value 値
// $case_insensitive 大文字小文字の区別
//     true 区別しない, false 区別する(デフォルト)

定数のセットに成功すれば真を返します。
すでに同名の定数がセットされていれば失敗し、偽を返します。
$case_insensitiveを真にすると$nameの半角英字の大文字小文字を区別しなくなり、
'Content' 'CONTENT' 'content' すべてを同じように扱います。基本的に不要。

define('TEST_VALUE','test');
echo(TEST_VALUE);

グローバルスコープです。

文字列内の変数展開

$の後を {} で囲むことでその中を変数として展開されるようにする。

配列の変数展開

二次元配列以上はうまく展開できない場合もあるよう

$a = array('a',array('b0','b1'),'c');
echo $a." $a {$a} ${a}",PHP_EOL;				// Array Array Array Array
echo $a[0]." $a[0] {$a[0]} ${a[0]}",PHP_EOL;	// a a a a
echo $a[1][1]." $a[1][1] {$a[1][1]}",PHP_EOL;	//b1 Array b1 ${a[1][1]}だけはエラーになる

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規新規下位 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-09-12 (月) 20:25:00 (2203d)