Сделал пример с книги, должен по идее рисоваться круг и результат быть такой, как в книге:
Рисуем круг: (0, 0, 100) Прошло некоторое время... Стираем круг: (О, О, 100) Рисуем круг: (101, 6, 100) Прошло некоторое время... Стираем круг: (101, 6, 100) Рисуем круг: (101, б, 200) Прошло некоторое время... Стираем круг: (101, б, 200)
но почему то выводит такое:
Рисуем круг: (, , 0) Прошло некоторое время... Стираем круг: (, , 0) Рисуем круг: (, , 0) Прошло некоторое время... Стираем круг: (, , 0) Рисуем круг: (, , 0) Прошло некоторое время... Стираем круг: (, , 0)
и не по порядку выводит, а грузится экран и все выводится сразу.
<?php ## Базовый класс — геометрическая фигура, class Shape { // Любая фигура имеет координаты центра, а также масштаб. // Делая координаты скрытыми членами класса, мы гарантируем, // что никто не сможет изменять их напрямую. private $х=0, $у=0, $scale=1.0; // Конструктор класса. Отображает фигуру на экране. public function __construct() { $this->show() ; } // Деструктор класса. Стирает фигуру с экрана, public function __destruct() { $this->hide(); } // Переместить фигуру на ($dx, $dy) точек, public final function moveBy($dx, $dy) { // Вначале стираем фигуру с экрана. $this->hide(); // Затем изменяем координаты. $this->x += $dx; $this->y += $dy; // Наконец, выводим фигуру на новом месте. $this->show(); } // Изменить масштаб отображения фигуры, public final function resizeBy($coef) { $this->hide(); $this->scale *= $coef; $this->show(); } // Методы возвращают координаты центра и масштаб. public final function getCoord() { return array($this->x, $this->y); } public final function getScale() { return $this->scale; } //** "Защищенные" методы, доступные только для производных классов. //**. Вызывать их в программе напрямую нельзя (да и не нужно). protected function hide() { die("Что здесь делать? Неизвестно!"); } protected function show() { die("Что здесь делать? Неизвестно!"); } }
class Circle extends Shape { // Радиус круга в масштабе 1:1. private $radius; // Создает новый объект-круг с указанием радиуса, public function construct($radius=100) { $this->radius = $radius; parent::__construct(); } // Отображает круг на экране. public function show() { list ($x, $y) = $this->getCoord(); $radius = $this->radius * $this->getScale(); // Разместите "настоящий" код прорисовки круга ($х, $у, $radius). echo "Рисуем круг: ($х, $у, $radius)<br>"; } // Стирает фигуру с экрана, public function hide() { list ($x, $y) = $this->getCoord(); $radius = $this->radius * $this->getScale(); // Разместите "настоящий" код стирания круга ($х, $у, $radius). echo "Стираем круг: ($х, $у, $radius)<br>"; } }
$shape = new Circle();
// Далее мы можем "забыть", что $shape — это в действительности // круг, работать с ним, как с любой геометрической фигурой.
sleep(1); echo "Прошло некоторое время...<br>"; $shape->moveBy(101,6) ; sleep(1); echo "Прошло некоторое время...<br>"; $shape->resizeBy(2.0) ; sleep(1); echo "Прошло некоторое время...<br>";
?>
Добавлено через 9 минут
621-625 стр PHP 5 (2 издание, Дмитрий Котеров, Алексей Костарев, 2008)
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
super-php
Сделал пример с книги, должен по идее рисоваться круг и результат быть такой, как в книге:
но почему то выводит такое:
и не по порядку выводит, а грузится экран и все выводится сразу.
Добавлено через 9 минут
621-625 стр PHP 5 (2 издание, Дмитрий Котеров, Алексей Костарев, 2008)
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.