РНР Язык ссылка содержит информацию о том, что функция и класс: http://www.php.net/manual/en/langref.php
Это также объясняет большинство других особенностей PHP. Если вы хотите изучить PHP, это лучшее место для начала.
Функции
Функция представляет собой группировку операторов (строк кода).
Например следующие утверждения:
$name = 'mary';
$gender = 'girl';
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
могут быть сгруппированы вместе в функцию, так что он может быть использован повторно:
getSentence('mary', 'girl');
getSentence('peter', 'boy');
function getSentence($name, $gender) {
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
}
Обратите внимание на два вызова функции:
getSentence('mary', 'girl');
getSentence('peter', 'boy');
Эти два оператора запускают весь блок кода внутри функции getSentence и передают ему v ariables $ name и $ gender. С первой функцией $name = 'mary'
и $gender = 'girl'
и во втором $name = 'peter'
и $gender = 'boy'
.
Таким образом, главное преимущество функций состоит в том, что вы сгруппировали код для повторного использования, позволяя передавать разные значения для переменных, необходимых функции. Эти переменные называются параметрами функции.
Еще одно преимущество того, что сгруппированный код более удобен для чтения. Вы, по сути, называете блок кода и даете им определенную цель.Легко читать и запоминать его использование.
Другим преимуществом является то, что избыточность удаляется. Вам не нужно писать блок кода более одного раза. Вы просто определяете его один раз и называете его несколько раз. Это также приводит к тому, что редактирование функционального кода влияет на все вызовы на эту функцию, что уменьшает количество ошибок при редактировании нескольких местоположений при изменении только одного аспекта.
например:
Мы можем убедиться, что строка $ имя имеет заглавную первый символ.
function getSentence($name, $gender) {
$name = ucfirst($name);
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
}
Мы выполнили только одно изменение, и это повлияло на любой вызов функции getSentence(). В этом случае как:
getSentence('mary', 'girl');
и
getSentence('peter', 'boy');
Классы группирование функций.
class Play {
function getSentence($name, $gender) {
$name = ucfirst($name);
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
}
function getSong($name) {
// code here
}
}
Все, что мы сделали был поставлен
class Play { /** functions here **/ }
вокруг группы функций.
Это дает те же преимущества, что и функции для операторов, кроме классов, для функций.
Классы идут дальше, чтобы создать методологию программирования, называемую объектно-ориентированным программированием (ООП), о которой вы можете узнать больше в ссылке на ссылку на PHP-язык.
Это определяет классы как шаблон или определение объектов. Объекты похожи на объекты реального мира, причем функции называются «методами», которые могут быть вызваны для объекта.
Таким образом, класс Play можно рассматривать как объект под названием «Играть» с методами «getSentence» и «getSong». Эти методы затем могут манипулировать свойствами объекта «Воспроизвести» или возвращать полезную информацию о «Воспроизвести». Таким образом, весь код внутри Play становится независимым от кода в другом месте программы.
Когда код внутри Play требует использования какого-либо кода в другом месте, его можно использовать с использованием «наследования», которое является основной частью ООП. Я не буду вдаваться в подробности об этом, поскольку это очень широкая тема.
Я бы рекомендовал получить книгу о ООП и прочитать ее, чтобы понять, почему вы должны использовать классы и методы и когда их использовать.
Посмотрите, что такое «объектно-ориентированное программирование» и посмотрите, понимаете ли вы это. Если вы этого не сделаете, задайте здесь больше вопросов :) – mtahmed
http://www.webdeveloper.com/forum/showthread.php?199467-Differences-between-PHP-Classes-and-Straight-Include-Functions – JakeGould
Подробнее о ООП. Не только в отношении PHP, но и в целом. Там вы найдете свой ответ. – AlexKey