Аргерих Л. О языке РНР. Часть 2. Страница 3


Взглянем на функцию, которая упростит задачу добавления в код трассиро­вочной информации:

<?php

//Trace_Debugger.inc //Раздел настройки НАЧАЛО

define("TRACE_DEBUGGING", true); //для отключения отладки присвоить значение false'

$debug_host = "myphpdebug.mydomain.com";

// задать машину, на которой слушает сервер-«шпион»

$debug_port = 23456; // порт, который слушает сервер-«шпион»

//Раздел настройки -- КОНЕЦ

function traceDebug($fileName, $lineNumber, $varName, $varValue) {

if (TRACE_DEBUGGING> {

StraceMessage = "Tracing $fileName at $lineNumber: $varName = $varValue \n";

error_log($traceMessage, 2, "$debug_host:$debug_port"};

>

f

Если поместить эту функцию в обычный включаемый файл, например tra- ce_debugger inc, то можно пользоваться ею, изменяя параметры настройки в начале сценария и включая файл в сценарии программ:

<?php

//Sample_Trace. php

include ("T race_Debugge г. inc");

function swap(&$a, &$b) {

$a = $a + $b; $b = $a - $b; $a = $a - $b;

}

$a = 1234; $b = 4567;

traceDebug(_____ FILE , „LINE___ "a", $a);

echo("a = $a, b = $b"); swap($a, $b);

traceDebug(____ FILE ,___ LINE_ , "a", $a);

echo("a = $a, b = $£>"); ?>

Функция traceDebugO вызывается с передачей в качестве первых двух пара­метров FILE и LINE . Среда выполнения РНР переводит их в имя фай­ла, из которого она вызывалась, и номер строки соответственно. Третий па­раметр - имя переменной, которую необходимо трассировать, а четвертый - ее значение.

Для того чтобы отключить трассировку, достаточно присвоить переменной

$trace_debuggingB<|)aiinetrace_debugger. inc значение 0.

phpCodesite

- небольшая вспомогательная библиотека для создания инфор­мации выполнения и трассировки переменных. Этот инструмент представ­ляет собою сценарий РНР и может быть взят с http:Jphpcodesite.phpedit. сот/. Рассмотрим пример применения этого средства.

Вот простой сценарий, реализующий стек, и еще один, использующий эту реализацию стека:

<?php

//Stack.php

class Stack • -

{

var $vector; var SstackPointer;

function Stack О {

$this->stackPointe.r = 0; $this->vector = arrayO;

function isEmptyO Iх

{

if ($this->stackPointer <= 0) {

return 1; } else { . : '

return 0;

}

function

{

++$this->stackPointer;

= $element;

}

function pop() {

if ($this->isEmpty()) {

return -1; •

} else {

SpoppedValue = $this->vector[$this->stackPointer];

--$this->stackPointer;




Для продвижения сайта в сети интернет необходимо провести правильную оптимизацию. Внутренняя оптимизация сайта является ключевым понятием в области продвижения и раскрутки сайта любого характера и темы. Потому рекомендуем узнать об этом как можно больше на сайте blogarbik.ru.