Вызов PHP класса - PullRequest
       17

Вызов PHP класса

1 голос
/ 02 ноября 2009

Есть ли способ вызвать класс php (например, $ var = new className) и заставить var хранить значение, возвращаемое функцией className?

Или есть способ вызвать класс и не заставить его выполнять функцию с тем же именем?

Ответы [ 4 ]

2 голосов
/ 02 ноября 2009

Функция с тем же именем, что и у класса, работала так, как 'конструкторы' в php 4. Эта функция вызывается автоматически при создании нового экземпляра объекта.

В php 5 вместо этого используется новая магическая функция __construct (). Если вы используете php5 и не используете метод __construct, php будет искать метод конструктора старого стиля. http://www.php.net/manual/en/language.oop5.decon.php

Поэтому, если вы используете php5, добавьте метод __construct в ваш класс, и php прекратит выполнение вашего «метода с тем же именем, что и класс», когда будет создан новый объект.

2 голосов
/ 02 ноября 2009

Это возможно в PHP5 с использованием магического метода __toString (); вернуть значение из экземпляра / объекта класса.

просто

class MyClass{

function __construct(){
  // constructor
}

function __toString(){
  // to String
  return 5;
}

}

$inst = new MyClass();

echo $inst; // echos 5

Конструкторы не возвращают значение (на самом деле вы не можете этого сделать). Если вы хотите получить значение из экземпляра класса, используйте магический метод __toString ().

0 голосов
/ 02 ноября 2009

$var = new classname всегда будет возвращать экземпляр classname. Вы не можете заставить его вернуть что-то еще.

Читать это ... http://www.php.net/manual/en/language.oop5.php

0 голосов
/ 02 ноября 2009

Конструкторы не возвращают значения, они используются для создания экземпляра нового объекта, который вы создаете. $ var всегда будет содержать ссылку на новый объект с использованием предоставленного вами кода.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...