Объясните синтаксис

Sirius

PHP+MySQL=LOVE
Объясните синтаксис

Привет!

Я пишу на PHP всегда сам, поэтому иногда тащусь от чужого кода! Так как всегда полезно смотреть в чужой код и учиться (но не хапать конечно) я не понимаю некоторых вещей, например:

$this->base_Continue();

Что такое $this ?
Что означает знак -> ?

Я это так часто встречаю в чужих кодах, что мне стало интересно, а зачем это вообще используют? Ведь я кодю и без этого и всё прекрасно работает!
 

Maniac

Guest
Это относится к объектно-ориентированному программированию. Если не знаешь, что это такое - поищи где-нить, объяснять не стану.
Если уже знаешь, то все просто...
конструкция $somevar->somefunc() означает, что ты вызываешь функцию somefunc(), которая принадлежит экземпляру $somevar какого-то класса ($somevar задается конструкцией $somevar=new SomeClass;)
$this - это переменная, которая ссылается на текущий экземпляр класса и используется, когда методы класса хотят оперировать переменными класса, а не своими локальными переменными.
Пример:
PHP:
<?php
class SomeClass
{
      var $somevar;

      function SomeClass($value)       //конструктор
      { $this->somevar=$value; }

      function Print_Somevar($value)
      {
             $somevar=$value; /*создает локальную переменную,    которая по чистой случайности имеет такое же имя, как и переменная класса*/
             print_r($somevar); /*печатаем локальную переменную
после выхода из функции локальная переменная somevar
уничтожается (что естественно)*/
      }
}

$class_exemp=new SomeClass('Maniac'); //инициализируем $somevar значением Maniac
$class_exemp->Print_Somevar('Not Maniac');
//выводится Not Maniac
print $class_exemp->somevar;
//выводится Maniac
?>
 

Sirius

PHP+MySQL=LOVE
Вроде немного понял! Спасибо!
А смысл всего этого?
Я так понял, что это для лучшей читабельности кода или нет?

Но самый главный вопрос - это влияет на скорость выполнения программы??? (есть ли резон использовать это в программах)
 

Maniac

Guest
Ты про объектно-ориентированное программирование или про что?
 

Sirius

PHP+MySQL=LOVE
Да - объектно-ориентированное программирование влияет на скорость выполнения программы, или просто уменьшает размеры кода и улучшает читабельность?
 

Maniac

Guest
Насколько я знаю, во-первых, ООП не только не уменьшает размеры кода, но и увеличивает его. Кроме того, скорость выполнения скрипта снижается на ~20%.
ООП используется, если есть необходимость разработки достаточно крупного проекта и облегчает поддержку и обновление.
 
Сверху