Спустя 4 минуты, 30 секунд (27.07.2011 - 19:32) Winston написал(а):
А как обратишься к например статической переменой например?
Только вот так
Или как ты к динамическому полю обратишься например ?
Только вот так
Свернутый текст
<?php
class Singleton {
static private $instance = NULL;
private function __construct() {
}
static public function getInstance() {
if (self::$instance == NULL) {
self::$instance = new Singleton();
}
return self::$instance;
}
}
?>
Или как ты к динамическому полю обратишься например ?
Свернутый текст
class myClass{
private $var = NULL;
private function __construct() {
}
public function getInstance() {
if ($this -> instance == NULL) {
// if (self :: $instance == NULL) { //Это уже ошибка
$this -> instance = new myClass();
}
return $this -> instance;
}
}
Спустя 6 минут, 31 секунда (27.07.2011 - 19:38) romantik2011 написал(а):
Цитата |
А как обратишься к например статической переменой например? |
А какой выигрыш от создание статической переменной и какой смысл её создавать? Чем хуже создать динамический метод?
Кстати вот так тоже работает ваш пример, даже без SELF, зачем тогда он?
<?php
class Singleton {
static private $instance = NULL;
private function __construct() {
}
static public function getInstance() {
if ($instance == NULL) {
$instance = new Singleton();
}
return $instance;
}
}
?>
Спустя 20 минут, 15 секунд (27.07.2011 - 19:59) alex12060 написал(а):
romantik2011
Это называется симантикой языка, типа имхо.
Это называется симантикой языка, типа имхо.
Спустя 1 минута, 9 секунд (27.07.2011 - 20:00) Winston написал(а):
Цитата (romantik2011 @ 27.07.2011 - 19:38) |
Кстати вот так тоже работает ваш пример |
В таком случае переменная будет локальной и вне метода getInstance вы ее нигде не сможете получить

Спустя 36 секунд PHPprogrammer написал(а):
Цитата (alex12060 @ 27.07.2011 - 19:59) |
симантикой |
Семантикой

Спустя 1 минута, 45 секунд (27.07.2011 - 20:01) romantik2011 написал(а):
И всё-таки, зачем SELF вписывать в код, какой толк?
Спустя 5 минут, 9 секунд (27.07.2011 - 20:07) alexbel2404 написал(а):
через self обращаешься к статическим методам и свойствам класса.
Спустя 5 минут, 3 секунды (27.07.2011 - 20:12) romantik2011 написал(а):
Так можно обращаться к статическим методам и свойствам класса без ключевого слова SELF и всё равно интерпретатор не выдаёт ошибок.
Спустя 1 минута, 38 секунд (27.07.2011 - 20:13) Winston написал(а):
Цитата (romantik2011 @ 27.07.2011 - 20:12) |
Так можно обращаться к статическим методам и свойствам класса без ключевого слова SELF и всё равно интерпретатор не выдаёт ошибок |
Советую почитать про локальные и глобальные переменные для начала...
Спустя 2 минуты, 6 секунд (27.07.2011 - 20:15) romantik2011 написал(а):
ну понятно что локальная переменная - это та которая действует внутри класса, а глобальная - та которая и за классом тоже пашет и внутри.
Спустя 2 минуты, 37 секунд (27.07.2011 - 20:18) alex12060 написал(а):
romantik2011
А теперь, выведи ка мне метод tests()
свойство $test ипеременную $new
class test {
static public $test = 'test';
static public function tests() {
echo 'Static';
$new = 'I is new!';
}
}
А теперь, выведи ка мне метод tests()
свойство $test и
Спустя 4 минуты, 40 секунд (27.07.2011 - 20:23) Winston написал(а):
Посмотри код
Может поймешь чего ?
Свернутый текст
class myclass {
static private $var = 'статик';
public function local() {
if ($var == NULL)
return 'Локальная ';
}
public function glob() {
if (self :: $var != NULL)
return self :: $var . ' глобальная ';
}
}
$o = new myclass;
echo $o -> local();
echo '<br/>';
echo $o -> glob();
Может поймешь чего ?
Спустя 1 час, 12 минут, 31 секунда (27.07.2011 - 21:35) romantik2011 написал(а):
PHPprogrammer
ваш код выдал вот такое.
ваш код выдал вот такое.
Notice: Undefined property: myclass::$var in C:\www\htdocs\test.ru\www\index.php on line 6
Локальная
статик глобальная
Спустя 7 минут, 28 секунд (27.07.2011 - 21:43) Invis1ble написал(а):
romantik2011
интерпретатор работает со статическими методами и свойствами быстрее
интерпретатор работает со статическими методами и свойствами быстрее
Цитата |
Так можно обращаться к статическим методам и свойствам класса без ключевого слова SELF и всё равно интерпретатор не выдаёт ошибок. |
а ты попробуй запусти свой код из своего 2-го поста с уровнем E_ALL

Спустя 7 секунд (27.07.2011 - 21:43) Winston написал(а):
Цитата (romantik2011 @ 27.07.2011 - 21:35) |
Notice: Undefined property: myclass |
......
Цитата (romantik2011 @ 27.07.2011 - 21:35) |
Локальная статик глобальная |
А вот эти 2 последние строки и показывают, что без self не добраться к $var = 'статик';