>  기사  >  백엔드 개발  >  PHP 디버깅 시 var_export, print_r 및 var_dump의 차이점

PHP 디버깅 시 var_export, print_r 및 var_dump의 차이점

不言
不言원래의
2018-06-19 16:38:181600검색

이 글은 주로 PHP에서 var_export, print_r, var_dump 디버깅의 차이점을 소개합니다. 매우 훌륭하고 참고할 만한 가치가 있습니다. 필요한 친구들이 참고할 수 있습니다.

code

code

$n = "test";
var_export($n);
print_r($n);
var_dump($n);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
file_put_contents("index.log", var_export($n, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($n, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($n) . PHP_EOL, FILE_APPEND);

Result

(1) 프런트엔드:

'test' test /Users/xjnotxj/Program/PhpstormProject/colin/index.php:9:string 'test' (길이=4) --- -- ------------ /Users/xjnotxj/Program/PhpstormProject/colin/index.php:15:string 'test' (길이=4)

(2) index.log:

'테스트' test

2, 출력 배열

code

$arr = array(
  "a" => 1,
  "b" => "222",
  "c" => 3,
);
var_export($arr);
print_r($arr);
var_dump($arr);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
file_put_contents("index.log", var_export($arr, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($arr, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($arr) . PHP_EOL, FILE_APPEND);

result

(1) 프런트 엔드:

array ( 'a' => 1, 'b' = > ' 222', 'c' => 3, ) 배열 ( [a] => 1 [b] => 222 [c] => 3 ) /Users/xjnotxj/Program/PhpstormProject/colin/ index.php :13: 배열 (크기=3) 'a' => int 1 'b' => 문자열 '222' (길이=3) 'c' => --- ------- /Users/xjnotxj/Program/PhpstormProject/colin/index.php:19: 배열 (크기=3) 'a' => int 1 'b' => '(길이 = 3) 'C' = & GT; Int 3

(2) Index.log:

array ( &#39;a&#39; => 1, &#39;b&#39; => &#39;222&#39;, &#39;c&#39; => 3, ) Array ( [a] => 1 [b] => 222 [c] => 3 )
E

3, 출력 개체

코드

class foo
{
  public $n;
  public function do_foo()
  {
    echo "Doing foo." . $this->n;
  }
}
$object = new foo;
var_export($object);
print_r($object);
var_dump($object);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
file_put_contents("index.log", var_export($object, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($object, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($object) . PHP_EOL, FILE_APPEND);

결과

(1) 프런트엔드:

foo::__set_state(array( 'n' => NULL, ))
foo 개체 ( [n] => )
/Users/xjnotxj/Program/PhpstormProject/colin/index .php:19 : object(foo)[1] public 'n' => null ----------------- /Users/xjnotxj/Program/PhpstormProject/colin/index.php :25: object(foo)[1] public 'n' => null

(2) index.log:

foo::__set_state(array( &#39;n&#39; => NULL, )) foo Object ( [n] => )

요약:

1. print_r < var_dump

2. 디버깅 시 var_export, print_r, var_dump 호출 시 앞에 echo를 추가할 필요가 없습니다.

3. var_export 및 print_r의 두 번째 매개변수가 true이면 값이 반환됩니다. var_dump는 지원하지 않으므로 file_put_contents를 사용하여 디버깅을 출력할 때 var_dump를 사용하지 마십시오.

4 자세한 디버깅 정보와 코드 줄 위치 지정을 얻으려면 개발 환경에서 디버깅에 var_dump를 직접 사용하는 것이 좋습니다. 프로덕션 환경에서 디버깅하려면 var_export 또는 print_r을 사용하세요. 프런트엔드 영향선에 직접 출력하는 대신 값을 출력합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

PHP를 사용하여 중국어 병음 변환 및 양력 및 음력 변환 구현

PHP의 move_uploaded_file() 함수 분석 정보

위 내용은 PHP 디버깅 시 var_export, print_r 및 var_dump의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.