Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача возвращаемого значения из одной функции, В другую функцию со значением из первой 
V
    Опции темы
NetJunky
Дата 24.7.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Всем привет!
Меня тут озадачила проблемка. У меня есть класс, который имеет конструктор в котором инициализируются определённый переменные. Есть функция в которой производяться определённые действия с этими переменными и возвращаеться значение(не из рода функций возвращающих true OR false). Хотел бы с этим значением работать в другой функции.

Р.С. Сразу уточню, если в классе допустим в функции хотел бы произвести действия над переменной с её участием, например:
Код

$this->temp .= str_replace("%firstname%", $this->firstname, $this->temp);

то такой вариант не работает, если да, то почему?

Подскажите пожалуйста, как это возможно сделать.
Всем заранее спасибо.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
lelik133
Дата 24.7.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



этот код расположен внутри метода класса?
$this->firstname и  $this->temp инициализированы, занчения им присвоены?
PM ICQ   Вверх
NetJunky
Дата 24.7.2009, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Код

class Mailer {
    
    var $temp = "%fname% %sname%.<br />
    %nickname%<br />
    %fname% %sname%<br />
    %passphrase%<br />
    <br />
    <a href='localhost/index.php?go=activation&usercode=%uncode%'>http://localhost/index.php?go=activation&usercode=%uncode%</a><br />
    <a href='http://localhost/index.php?go=activation'>http://localhost/index.php?go=activation</a>  %uncode% .<br />
    ";
    var $temp1 = "";
    
    var $fname = "";
    var $sname = "";
    var $nickname = "";
    var $passphrase = "";
    var $mailcode = "";
    
    function __construct($fname, $sname, $nickname, $passphrase, $mailcode) {
        $this->fname = $fname;
        $this->sname = $sname;
        $this->nickname = $nickname;
        $this->passphrase = $passphrase;
        $this->mailcode = md5($mailcode);
    }
    
    function replacer() {
        $this->temp1 = str_replace("%fname%", $this->eesnimi, $this->temp);
        $this->temp = str_replace("%sname%", $this->perenimi, $this->temp1);
        $this->temp1 = str_replace("%nickname%", $this->knimi, $this->temp);
        $this->temp = str_replace("%passphrase%", $this->salas, $this->temp1);
        $this->temp1 = str_replace("%uncode%", $this->mailcode, $this->temp);
        return $this->temp1;
    }
    
    function test() {
    }
}


Далее хотел в функцию test() передать конечный результат функции replacer(). Также хотел бы узнать могу ли я в функции составить форму для отправки, а отправку сому произвести ввиде return mail(bla, bla, bla, bla);

Вообщем чтобы return в функии test()(при её вызове) производил отправку.
Возможен ли данный замысел?


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
NetJunky
Дата 24.7.2009, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Люди, помогите с этим делом.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
skyboy
Дата 24.7.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Это че, сложность в том, чтоб в одном методе иметь доступ к результату работы другого метода? А поля тогда на что? о_0
либо я абсолютно неверно понял задачу, либо в я шоке - в твоем же коде уже есть поля объекта, значит, работать с ними умеешь.
Код

class Mailer {
...
var $temptemptemp = "";
...
function replacer() 
{
....
$this->temptemptemp = <результат работы>;
....
}
....
function test()
{
...
<работа с $this->temptemptemp>
...
}

PM MAIL   Вверх
icewind
Дата 24.7.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Цитата(NetJunky @  24.7.2009,  10:14 Найти цитируемый пост)
Возможен ли данный замысел? 

да.


Цитата(NetJunky @  24.7.2009,  10:14 Найти цитируемый пост)
Далее хотел в функцию test() передать

Не называй методы класса функциями.

По вопросу: Где у твоего класса свойства eesnimi, perenimi, knimi и salas? Их нет. И на что ты в таком случае хотел бы заменить %fname% и так далее...

Зачем значение ты присваиваешь свойству fname, а пытаешься использовать eesnimi.
Короче 
Код

function replacer() {
        $this->temp1 = str_replace("%fname%", $this->fname, $this->temp);
        $this->temp = str_replace("%sname%", $this->sname, $this->temp1);
        $this->temp1 = str_replace("%nickname%", $this->nickname, $this->temp);
        $this->temp = str_replace("%passphrase%", $this->passphrase, $this->temp1);
        $this->temp1 = str_replace("%uncode%", $this->mailcode, $this->temp);
        return $this->temp1;
    }



--------------------
user posted image
PM MAIL Skype   Вверх
NetJunky
Дата 24.7.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



icewind, а чтобы return $this->temp1; значение, которое у этой переменной использовать в другой функции надо обязательно присвоить, какой-то другой переменной? Незльязя ли обойтись имеющимися данными.

Пробовал, сделать такой метод:
Код

function test() {
    $this->crack = replacer();
    return $this->crack;
}


возвращал значение чтобы увидеть получает ли данная переменная результат метода replacer();. Увидел, что нет, и как вот с этим быть не знаю.

В том что ты ранее поправил eesnimi, perenimi, knimi и salas, это я просто выкладывая сюда не поправил. А так в моём коде это норм. Извеняюсь за эту путаницу.

Но вот с вопросом указаным выше не могу разобраться.

Это сообщение отредактировал(а) NetJunky - 24.7.2009, 17:35


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
icewind
Дата 24.7.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Код

function test() {
    $this->crack = $this->replacer();
    return $this->crack;
}



Код

function test() {
    return $this->replacer();
}



--------------------
user posted image
PM MAIL Skype   Вверх
NetJunky
Дата 24.7.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



icewind, большое спасибо. Проблема решена.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.