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


return SpoppedValue;

)

}

function peek()

I

if ($thiS->isEmpty()) f return -1;

} else {

retu ГП $this->vecto r[$this->stackPointe r];

}

function reset ()

$this->stackPointer = 0; $this->vector[$this->stackPointer] = -1;

I

}

?>

Если сохранить этот сценарий в файле с именем Stack.php, то другой сцена­рий, использующий эту реализацию стека, может выглядеть так:

<?php

//HyStack. php require(". /Stack.php"); SmyStack = new StackO; echo("<h2>myStack operations</h2>"); echo( "Popping before a push <br>"); SpoppedValue = $myStack->pop(); value:

echo( "Peeking before a push <br>"); ■ SpeekedValue = $myStack->peek(); echo( "Peeking: SpeekedValue <br><br>");

echo("Pushing 3 values into the stack<br><br>"); for ($i = 1; $i <= 3; ++$i) { SmyStack->push($i);

}

echo( "Peeking at: the first value: "); SpeekedValue = $myStack->peek(); echo("SpeekedValue <br><br>");

echo("Popping values riow<br>"); for ($i = 1; $i <= 3; ++$i) {

SpoppedValue = SmyStack->pop(); echo( "Popped value: SpoppedValue <br>");

}

$ myStac; k->reset();

Этот сценарий пытается использовать реализацию стека в Stack, php, выпол­няя все операции, определенные в объекте Stack. Результат его работы дол­жен выглядеть так, как на рис. 6.2.

Теперь добавим в Stack, php некоторые средства трассировки и назовем полу­ченный сценарий Stackl.php. Необходимо включить файл phpcodesite. php в начало сценария.

<?php

//Stack"!, php

requireO'phpcodesite. php"); CS_SetEnabled(TRUE);

class Stack {

var $vector; var $stackPointer;

function Stack () {

CS_EnterMethod("Stack"); CS_SendNote( "Initializing Stack<br>"); $this->stackPointer = 0; $this->vector[0] = -1; CS_ExitMethod("Stack");

}

function isEmptyO

{

CS_EnterMethod("isEmpty"); if ($this->stackPointer <= 0){ CS_ExitMethod("isEmpty"); return } else {

CS_ExitMethod("isEmpty");


return 0;

)

?>

)

function push(Selement) {

CS_EnterMethod("push"); ,

++$this->stackPointer;

$this->vector[$this->stackPointer] = Selement; CS

}

function pop() {

CS_EnterMethod("pop"); if ($this->isEmpty()) {

CS_SendError( "Stack empty<br>"); CS_ExitMethod("pop");

return -1; } else {

$ret = $this->vectorC$this->stackPointer]; --$this->stackPointer;




Выбрать себе сапоги на осень очень просто вместе с магазинами ПЛАНЕТА ОБУВИ. на сайте planetaobuvi.ru вы найдете массу всевозможных вариантов, цветов, исполнения в коже или замша.