Есть ли способ вызвать класс php (например, $ var = new className) и сохранить в var значение, возвращаемое функцией className?
Или есть способ вызвать класс и не выполнять функцию с тем же именем?
Есть ли способ вызвать класс php (например, $ var = new className) и сохранить в var значение, возвращаемое функцией className?
Или есть способ вызвать класс и не выполнять функцию с тем же именем?
Функция с тем же именем, что и у класса, заключалась в том, как работали «конструкторы» в php 4. Эта функция вызывается автоматически при создании нового экземпляра объекта.
В php 5 вместо этого используется новая магическая функция __construct(). Если вы используете php5 и не включаете метод '__construct', php будет искать метод конструктора в старом стиле. http://www.php.net/manual/en/language.oop5.decon.php
Поэтому, если вы используете php5, добавьте в свой класс метод __construct, и php перестанет выполнять ваш «метод с тем же именем, что и у класса» при создании нового объекта.
В PHP5 это возможно с помощью магического метода __toString(); чтобы вернуть значение из экземпляра/объекта класса.
просто
class MyClass{
function __construct(){
// constructor
}
function __toString(){
// to String
return 5;
}
}
$inst = new MyClass();
echo $inst; // echos 5
Конструкторы не возвращают значения (на самом деле вы не можете этого сделать). Если вы хотите получить значение из экземпляра класса, используйте волшебный метод __toString().
Конструкторы не возвращают значения, они используются для создания экземпляра нового объекта, который вы создаете. $var всегда будет содержать ссылку на новый объект с использованием предоставленного вами кода.
Честно говоря, из вашего вопроса складывается впечатление, что вы не понимаете предназначения классов.
$var = new classname
всегда будет возвращать экземпляр classname
. Вы не можете заставить его вернуть что-то еще.
Прочтите это... http://www.php.net/manual/en/language.oop5.php