Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Почему __CLASS__ возвращает имя родителя?, Почему __CLASS__ возвращает имя родителя?
redreem  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4259
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 10 дней
Карма: 147




<?php

abstract class
Base_Class {

public function __construct() {

echo __CLASS__;

}

}


class Child_Class extends Base_Class{

}


$c = new Child_Class();

?>


выводит:

Base_Class


объясните плиз почему так и как мне получить имя дочернего класса в рамках подобной реализации?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 17 дней
Карма: 552




abstract class Base_Class {

public function __construct() {

echo get_class($this);

}

}
PMСайт пользователя
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4259
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 10 дней
Карма: 147




Winston

спасибо. хотя все равно не понятно почему с __CLASS__ не срабатывало smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
forza  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 396
Пользователь №: 23841
На форуме: 6 лет, 3 месяца, 3 дня
Карма: 22




может быть в конструкторе echo get_class($this); ?


--------------------
Заработок для веб-разработчиков: CodeCanyon
Мое Портфолио
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 17 дней
Карма: 552




Цитата (redreem @ 13.09.2012 - 11:48)
хотя все равно не понятно почему с __CLASS__ не срабатывало

Из-за того, что __class__ возвращает имя класса членами которого ты сейчас пользуешься.
Если я не прав поправьте меня...


Если бы ты написал
class Child_Class extends Base_Class{
public function foo()
{
echo __CLASS__;
}
}


$c = new Child_Class();
$c->foo();

Тебе бы выдало Child_Class
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Placido  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Наблюдаю
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1241
Пользователь №: 29445
На форуме: 5 лет, 3 месяца, 7 дней
Карма: 143




Как вариант, вместо __CLASS__ и get_class() можно использовать ReflectionClass
$ref = new ReflectionClass($this);
echo $ref->getName();
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8740
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 8 дней
Карма: 591




PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4259
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 10 дней
Карма: 147




всем еще раз спасибо, остановился на варианте get_class($this);, пока все устраивает.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SlavaFr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1535
Пользователь №: 22453
На форуме: 6 лет, 6 месяцев, 9 дней
Карма: 104




php5.3

class A{
public function __construct() {
echo get_called_class();
}
}


class B extends A{}

new B;


--------------------
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4259
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 10 дней
Карма: 147




SlavaFr

слишком жирно, только с 5.3
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SlavaFr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1535
Пользователь №: 22453
На форуме: 6 лет, 6 месяцев, 9 дней
Карма: 104




Цитата (redreem @ 13.09.2012 - 13:07)
SlavaFr

слишком жирно, только с 5.3

да пора уже менять!


--------------------
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4259
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 10 дней
Карма: 147




SlavaFr

кому? хостерам?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса