PHP 基本情報


  print_r と var_dump



単純に配列を一つ表示したいだけならば、あまり差はありませんが、
以下のような違いがあります

  
<?
$a = array( 0, 1, "A", "B" );
$b = array( 1, "A", $a );

# 2番目の引数を指定する事によって、結果を変数に取得できる
$ret = print_r( $b, TRUE );

print "<PRE>$ret</PRE>";

$a[0] = 100;

# 結果は、出力制御関数を使用しないと取得できないが、
# 一度に複数の変数を指定できる
print "<PRE>";
var_dump( $a, $b );
print "</PRE>";

#---------------------------------------------------------
# 上記例では、$a はクローンなので、$b の中は変化しない
print "<hr>";
# 下記例では参照をセットしたので変化する
#---------------------------------------------------------

$a = array( 0, 1, "A", "B" );
$b = array( 1, "A", &$a );

print "<PRE>$ret</PRE>";

$a[0] = 100;
print "<PRE>";
var_dump( $a, $b );
print "</PRE>";

?>
  

Array
(
    [0] => 1
    [1] => A
    [2] => Array
        (
            [0] => 0
            [1] => 1
            [2] => A
            [3] => B
        )

)

array(4) {
  [0]=>
  int(100)
  [1]=>
  int(1)
  [2]=>
  string(1) "A"
  [3]=>
  string(1) "B"
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "A"
  [2]=>
  array(4) {
    [0]=>
    int(0)
    [1]=>
    int(1)
    [2]=>
    string(1) "A"
    [3]=>
    string(1) "B"
  }
}


--------------------------------------------------------------------------------

Array
(
    [0] => 1
    [1] => A
    [2] => Array
        (
            [0] => 0
            [1] => 1
            [2] => A
            [3] => B
        )

)

array(4) {
  [0]=>
  int(100)
  [1]=>
  int(1)
  [2]=>
  string(1) "A"
  [3]=>
  string(1) "B"
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "A"
  [2]=>
  &array(4) {
    [0]=>
    int(100)
    [1]=>
    int(1)
    [2]=>
    string(1) "A"
    [3]=>
    string(1) "B"
  }
}



以下はオブジェクトの出力例

  
<?
$a = new myData;
$b = array( 1, "A", &$a );

$ret = print_r( $b, TRUE );
print "<PRE>$ret</PRE>";

$a->add();

var_dump( $a, $b );

class myData
{
	var $no;

	function myData() {
		$this->no = 1;
	}
	function add() {
		$this->no++;
	}
}
?>
  

Array
(
    [0] => 1
    [1] => A
    [2] => myData Object
        (
            [no] => 1
        )

)

object(myData)#1 (1) {
  ["no"]=>
  int(2)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "A"
  [2]=>
  &object(myData)#1 (1) {
    ["no"]=>
    int(2)
  }
}













  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ