Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2013, 16:57   #1
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию Перемнные в классах

Здравствуйте) помогите пожалуйста разобратся)) как сделать так, чтобы я один раз обратилась к переменным а потом в методе могла их изменять и запоминать новые значения?? вот я сделала, но переменные f, n и local в методе изменять надо. А как сделать не могу понять((

<?php
class schet
{
public $e = 0.01;
public $x = 0.2;
public $local=0.2;
public $f=0;
public $n=1;

public function sum()
{
while($local >= $this->e)
{
$f = $f + $local;
$n = ($n < 0) ? abs($n) + 1 : ($n + 1)*-1;
$local = pow($this->x,abs($n))/$n;
}
return $local;
}
}
$z=new schet;
echo "A=";
print_r($z->sum());
?>
Mariolka вне форума Ответить с цитированием
Старый 08.11.2013, 17:18   #2
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

PHP код:
$n $this->n;
$f $this->f;
$local $this->local
в начале метода
buriat вне форума Ответить с цитированием
Старый 08.11.2013, 17:33   #3
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию

Спасибо) теперь поняла)
а можно же и так сделать? просто код больше выходит)

<?php
class schet
{
public $e;
public $x;
public $local;
public $f;
public $n;

public function sum()
{
while($this->local >= $this->e)
{
$this->f = $this->f + $this->local;
$this->n = ($this->n < 0) ? abs($this->n) + 1 : ($this->n + 1)*-1;
$this->local = pow($this->x,abs($this->n))/$this->n;
}
return $local;
}
}
$z=new schet;
$z->local = 0.3;
$z->f = 0;
$z->n = 1;
$z->e = 0.01;
$z->x = 0.3;
$z->sum();
echo "f = ".$z->f;
echo "<br>";
echo "n = ".$z->n;
echo "<br>";
echo "local = ".$z->local;
?>
Mariolka вне форума Ответить с цитированием
Старый 08.11.2013, 20:02   #4
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

В таком случае смысл от класса?
PHP код:
<?
   
class schet {
       public 
$e;
       public 
$x;
       public 
$local;
       public 
$f;
       public 
$n;
       public function 
__construct($e=0.01,$x=0.2,$local 0.2,$f=0,$n=1) {
          
$this->$e;
          
$this->$x;
          
$this->local $local;
          
$this->$f 0;
          
$this->$n;
       }
       public function 
sum() {
          while(
$this->local >= $this->e) {
              
$this->$this->$this->local;
              
$this->= ($this->0) ? abs($this->n) + : ($this->1)*-1;
              
$this->local pow($this->x,abs($this->n))/$this->n;
          }
       }
      public 
output() {
         echo 
'e='.$this->e.'<br>';
         echo 
'x='.$this->x.'<br>';
         echo 
'n='.$this->n.'<br>';
         echo 
'f='.$this->f.'<br>';
         echo 
'sum='.$this->local;      
      }
   }
$sum1 = new schet();
$sum1->sum();
$sum1->output();
$sum2 = new schet(0.01,0.3,0.3,0,1);
$sum2->sum();
$sum2->output();
?>
Код писан на коленках =)
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 10.11.2013, 16:00   #5
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию

А вот смысл в том, чтобы научиться работать с классами и методами)) спасибо за программу)) только простите меня)) почему выдает ошибку в этом методе public output() ???
Mariolka вне форума Ответить с цитированием
Старый 10.11.2013, 16:22   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Mariolka Посмотреть сообщение
почему выдает ошибку в этом методе public output() ???
Наверное, потому, что не хватает ключевого слова function:
PHP код:
public function output(){
    ...

Не нужно уж прям совсем копипастить всё – так ничему не научишься.
Andkorol вне форума Ответить с цитированием
Старый 10.11.2013, 23:33   #7
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Извините опечатка получилась.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 11.11.2013, 00:24   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от TranceSmile Посмотреть сообщение
Извините опечатка получилась.
К вам никаких претензий – вы честно предупредили:
Цитата:
Сообщение от TranceSmile Посмотреть сообщение
Код писан на коленках =)
Andkorol вне форума Ответить с цитированием
Старый 13.11.2013, 14:48   #9
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию

Спасибо)) и за совет тоже))
Mariolka вне форума Ответить с цитированием
Старый 13.11.2013, 19:49   #10
Mariolka
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 25
По умолчанию

Я извиняюсь еще раз))) стало очень интересно) а можно ли вообще делать так)) чтобы например задали класс)) в нем например 1 метод считает сумму одних чисел)) а другой метод считает сумму других чисел)) даже если взять четные и нечетные)) и в итоге надо результаты этих методов либо сложить, либо умножить, либо разделить, либо отнять)) так вот просто интересно) для этого надо создать новый метод?? и в нем обратиться к ранним методам или это можно сделать как то проще? просто нигде ничего подобного не могу найти(
Mariolka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 проблемы в классах. Blad47 Помощь студентам 2 11.04.2011 20:57
Ошибка в классах с++ Blad47 Помощь студентам 3 05.04.2011 22:35
проблема в классах jec Общие вопросы C/C++ 4 29.12.2010 03:39
Вопрос о классах (С++) Александр Елис Помощь студентам 5 25.01.2010 20:49
Перечисления в классах (С++) Александр Елис Помощь студентам 1 22.01.2010 17:10