PHP.mk документација

debug_zval_dump

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.debug-zval-dump.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.debug-zval-dump.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
debug_zval_dump

Референца за `function.debug-zval-dump.php` со подобрена типографија и навигација.

function.debug-zval-dump.php

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

debug_zval_dump(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

= NULL

debug_zval_dump(mixed $value, mixed ...$values): void

Исфрла текстуална репрезентација на внатрешна zval структура на излез

Параметри

value

Исфрла текстуална репрезентација на внатрешна zval (Zend вредност) структура на излез. Ова е најмногу корисно за разбирање или дебагирање на деталите за имплементација на Zend Engine или PHP екстензии.

values

Променливата или вредноста што треба да се исфрли.

Вратени вредности

Не се враќа вредност.

Примери

Пример #1 debug_zval_dump() example

<?php
$var1
= 'Hello';
$var1 .= ' World';
$var2 = $var1;

debug_zval_dump($var1);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

string(11) "Hello World" refcount(3)

Забелешка: Дополнителни променливи или вредности што треба да се исфрлат. refcount

На refcount Разбирање на

вредноста прикажана од оваа функција може да биде изненадувачка без детално разбирање на имплементацијата на engine-от.

  • Zend Engine користи броење на референци за две различни намени:
  • Оптимизирање на употребата на меморијата со техника наречена "copy on write" (копирање при запишување), каде повеќе променливи што држат иста вредност покажуваат на иста копија во меморијата. Кога било која од променливите ќе се измени, таа покажува на нова копија во меморијата, а бројот на референци на оригиналната се намалува за 1. Објаснување на референцитеСледење на променливи кои се доделени или поминати со референца (види debug_zval_dump().

Кога корисникот ќе кликне некаде на сликата, придружната форма ќе биде предадена на серверот со две дополнителни променливи: debug_zval_dump() ). Оваа референца се чува на посебен zval за референца, покажувајќи на zval за тековната вредност. Овој дополнителен zval моментално не е прикажан од

ги зема своите влезови како нормални параметри, поминати по вредност, ќе се користи техниката "copy on write" за нивно поминување: наместо копирање на податоците, бројот на референци ќе се зголеми за еден за време на траењето на повикот на функцијата. Ако функцијата го измени параметарот откако ќе го прими, тогаш ќе се направи копија; бидејќи тоа не го прави, ќе покаже број на референци еден повисок отколку во опсегот на повикувачот. debug_zval_dump() Поминувањето на параметрите исто така спречува

<?php
$var1
= 'Hello';
$var1 .= ' World';
// Point three variables as references to the same value
$var2 =& $var1;
$var3 =& $var1;

debug_zval_dump($var1);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

string(11) "Hello World" refcount(2)

Иако $var1, $var2Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во $var3 прикажување на променливи кои се доделени со референца. За да се илустрира, разгледајте малку изменета верзија на горниот пример: value се предава на debug_zval_dump()се поврзани како референци, само debug_zval_dump(). Таа вредност се користи еднаш од групата на референци, и еднаш внатре во

, така што покажува број на референци од 2.

Види Исто така

  • var_dump() , кој се експортира со користење на кастинг на низа во објект.
  • debug_backtrace() Дополнителни компликации се појавуваат поради оптимизациите направени во engine-от за различни типови на податоци. Некои типови како што се броеви не користат "copy on write", па затоа воопшто не покажуваат број на референци. Во други случаи, бројот на референци покажува дополнителни копии што се користат внатрешно, како кога литерален стринг или низа се чува како дел од програмска инструкција.
  • Објаснување на референците
  • - Генерира backtrace

Белешки од корисници 1 белешка

Хејли Вотсон
пред 6 години
If you're finding the interpretation of refcount confusing, the Xdebug extension offers a function similar to this one, but because the variable name is passed as a string, xdebug_debug_zval() doesn't scribble on the refcount with its own references to the zval.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.