Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Начало работы с ООП. Вопросы, возникающие на практике

Ответить
Настройки темы
[решено] Начало работы с ООП. Вопросы, возникающие на практике

Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Про ООП читал. Читал много.
Примеры просматривал, и со всем соглашался, все ясно.

Но начал создавать что то сам, и получается ошибка:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION

То, что я пытался сочинить приводить не буду, там нудно и не интересно.
Приведу в простом примере:

Код: Выделить весь код
<?
class Webpage {
var $bgcolor;
 function test($color) {
 	return $color;
 }
 $this->bgcolor = test("Brown");
}

// Вызвать конструктор класса Webpage
$page = new Webpage;
echo $page->bgcolor;
?>
т.е. внутри класса создаю функцию, и в самом класе изменить значение обьекта.
Почему так нельзя? Обьясните пожалуйста, если можно.

Спасибо

-------
Мой блог Web Development


Отправлено: 23:28, 05-02-2010

 

Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Исправил, добавил комментерии.
Sham, уделите пожалуйста минутку и прочтите комментарии, я правильно формулирую текст, комментарии?

PHP код: Выделить весь код

<?php

class de_captcha {

    
// Объявляем свойства класса
    
public $captcha;
    
public $bg;
    
public $size;
    
public $color;
    
public $font;
    
    
// Конструктор класса de_captcha
    
function __construct($captcha$bg$size$color$font) {
        
$this->captcha $captcha;
        
$this->bg $bg;
        
$this->size $size;
        
$this->color $color;
        
$this->font $font;
    }

    
// Метод, который создает изображение
    
function generate_image() {
        
        
$im ImageCreateFromJPEG ($this->bg);
        
        
// Вычленяем из свойства color RGB
        
$color explode(","$this->color);
        
$color imagecolorallocate($imtrim($color[0]), trim($color[1]), trim($color[2]));
        
        
// Определяем размер текстового блока. Ширину и высоту.
        
$font_size imagettfbbox ($this->size $this->font $this->captcha);
        
$height abs($font_size[1]) + abs($font_size[7]);
        
$width    abs($font_size[0]) + abs($font_size[2]);
        
        
// Определяем размер всей каптчи, по заданому фону.
        
$imgwidth imagesx($im);
        
$imgheight imagesy($im);
        
        
// Координаты XY, в диапазоне которых будет появляться текстовый элемент
        
$x1 3;        $x2 $imgwidth-$width-2;
        
$y1 $height;    $y2 $imgheight-2;
        
        
$x rand($x1,$x2);
        
$y rand($y1,$y2);

        
// Накладываем текстовый блок на фон
        
imagettftext($im$this->size0$x$y$color$this->font$this->captcha);
        
        
// Выводим изображение в выходной поток браузера
        
imagejpeg($imNULL100);
        
// Освобождает память, занятую изображением
        
imagedestroy($im);
    }
}
?>

PHP код: Выделить весь код

<?php

header
("Content-type: image/jpeg");
session_start();

// Подключение файл класса
include '../lib/class.captcha.php';
$_SESSION['captcha'] = rand (100999);

// Создание объекта
$a = new de_captcha($_SESSION['captcha'], "captcha/captcha.jpg"12"83,115,174""captcha/advertmf.ttf");
// Подключаем метод
$a->generate_image();
?>

-------
Мой блог Web Development


Отправлено: 23:29, 10-02-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Deadooshka


Сообщения: 2538
Благодарности: 696

Профиль | Отправить PM | Цитировать


Цитата Artem-Samsung:
$im = ImageCreateFromJPEG ($this->bg); »
imagecreatefromjpeg вроде в нижнем регистре пишется, хотя и так работает, но лучше по мануалу...
Цитата Artem-Samsung:
Content-type: »
Content-Type: регистр таки важен...

комментарии понятны

вообще, комментарии к классам, методам, функциям и т.д. оформляются в виде

PHP код: Выделить весь код

/**
 *  описание
 *
 *  @author     Artem-Samsung <xxx@xxx.xx>
 *  @version    1.0.0
 *  @copyright  (c) 2010 Artem-Samsung
 *  @package    капча
 *  @example    example.php и т.д.
 */ 

это какой-то негласный стандарт оформления...
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:18, 11-02-2010 | #12



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Начало работы с ООП. Вопросы, возникающие на практике

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
начало работы с wine Nurtek Программное обеспечение Linux и FreeBSD 4 07-12-2009 02:36
Воспроизведение 1920*1080-есть пара вопросов на практике. 12341234 Видео и аудио: обработка и кодирование 7 26-08-2009 20:08
Delphi - Delphi, ООП Roman Go Программирование и базы данных 1 10-11-2002 17:22




 
Переход