Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 2
Регистрация: 02.09.2013
Сообщений: 237
1

Как обратиться к методу текущего класса

09.07.2015, 21:12. Просмотров 2657. Ответов 4
Метки нет (Все метки)

Вообщем такая проблема. У нас есть класс в этом классе есть метод. И нам нужно в теле данного класса обратиться к этому методу. Вопрос такой. Как это сделать
Делаю вот что:
PHP
1
2
3
4
5
6
7
8
9
class SName{
public $perem="123" ;
public function func(){
    return 'sssss';
}
$perem = func();
}
$obj= new SName();
echo $obj->perem;
Выдает такую ошибку:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in Z:\home\localhost\www\class\fir.php on line 7
Подскажите пожалуйста решение проблемы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2015, 21:12
Ответы с готовыми решениями:

Обратиться из класса к методу другого класса
Доброе время суток коллеги есть вопрос как обратиться с одного метода класса к другому Пример: ...

Как обратиться к методу из другого класса
Доброго времени суток. Продолжаю изучение C#, и вот я с вопросом. Имеются 2 класса в отдельных...

Как обратиться к методу класса из внешней функции?
Имеется простой класс Employee с методами GetAge() - возвращает возраст, и SetAge(int age). Как...

Как обратиться к методу из другого метода внутри одного и того же класса
Доброго времени суток. Продолжаю изучение C#, и вот моя третья тема (или четвертая, за сегодня) с...

4
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
09.07.2015, 21:47 2
Лучший ответ Сообщение было отмечено mihon1 как решение

Решение

Цитата Сообщение от mihon1 Посмотреть сообщение
$perem = func();
Это что? в теле класса могут быть объявления переменных(свойств), констант и код функций(методов) . Инициализацию свойств делают с помощью константных значений при их объявлении или в конструкторе если значение вычисляеся функцией.
1
0 / 0 / 2
Регистрация: 02.09.2013
Сообщений: 237
09.07.2015, 22:01  [ТС] 3
Оооо спасибо. Конструктор помог
PHP
1
2
3
4
5
6
7
8
9
10
function __construct() {
         $this->perem = $this->func();
     }
 
public function func(){
    return 'sssss';
}
}
$obj= new SName();
echo $obj->perem;
0
1975 / 1078 / 87
Регистрация: 29.11.2013
Сообщений: 3,354
09.07.2015, 22:08 4
Жесть, однако. Принято использовать методы get/set для чтения/записи полей класса.
0
Модератор
2593 / 1778 / 393
Регистрация: 26.03.2015
Сообщений: 6,584
09.07.2015, 23:23 5
Класс - это "образец объекта".
Он может содержать методы и свойства.

Но разве может класс содержать инструкции? Что у Вас в строке 6? В какой момент Вы хотите, чтобы это исполнилось?

Если Вы хотите свойству $perem присвоить результат вызова функции func(), то:
1. это нужно делать за пределами объявления класса
2. нужно сначала создать объект, свойство которого Вы хотите менять
PHP
1
2
3
4
5
6
7
8
9
10
11
class SName{
    public $perem="123" ;
    
    public function func(){
        return 'sssss';
    }
}
$obj= new SName();
echo $obj->perem; // выводит 123
$obj->perem = $obj->func();
echo $obj->perem; // выводит sssss
Добавлено через 28 минут
Цитата Сообщение от mihon1 Посмотреть сообщение
И нам нужно в теле данного класса обратиться к этому методу.
В "теле класса" вообще никакой код писать нельзя (кроме объявлений свойств, методов и т.п.).
В теле метода, находящегося внутри класса, можно обращаться к другим методам и переменным по именам:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
class SName{
 
    public $perem="123" ;
    
    public function func(){
        return 'sssss';
    }
    
    public function func2(){
        $perem = func();
    }
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2015, 23:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как обратиться к методу класса из формы и вывести в ней же (например на метке) результат действий этого метода
Помогите разобраться в этом элементарном вопросе! Какая то затыка не дает получить нужный результат...

Не могу обратиться к методу класса в функции
Добрый день. При написании программы возникла проблема - в функции не могу обратиться к методу...

Класс: как обратиться к методу производного класса через итератор на базовый класс?
Есть абстрактный и два порожденных. Хочу создать например list<Base*> list1; затем добавляю себе...

Обратиться к полям текущего класса из методов другого
Создать два класса - в первом объявить несколько полей в private секции. Обратиться к этим полям из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.