пожалуйста, помогите мне с моим сомнением ООП PHP? - PullRequest
1 голос
/ 23 декабря 2009

У меня есть следующая прога

class Person {
  var $name;
  function Person () {

  }
}

$fred = new Person;
$fred->name = "Fred";
$barney =& new Person;
$barney->name = "Barney";

echo $barney->name;
echo $fred->name;

оба выражения echo дают один и тот же вывод, т. Е. "Fred" и "Barney", поэтому какой смысл давать и при объявлении $ barney. что здесь означает "&"?

Спасибо

Ответы [ 3 ]

2 голосов
/ 23 декабря 2009

Передает переменную как ссылку, но в PHP5 + это больше не требуется.

2 голосов
/ 23 декабря 2009

Ссылки в PHP4 (http://www.php.net/manual/en/oop4.newref.php)

Это означает «по ссылке». Это становится синонимом, а не копией ( далее читается ). Кроме того, новый способ написания конструктора состоит не в том, чтобы использовать то же имя, что и сам класс, вместо этого вы используете функцию __construct():

class Person {

  function __construct() {
    // setup shop
  }

}

Кроме того, убедитесь, что вы правильно используете Visiblity , назначив определенные методы и свойства как 'public', 'private', 'protected' и т. Д.

0 голосов
/ 23 декабря 2009

См. Ссылки, объясненные в руководстве по PHP.

Есть ли какая-то особая причина, по которой вы все еще используете PHP4? Он больше не поддерживается, а ООП PHP5s намного более надежна и способна.

...