Лампочка должна все же продолжиться для этого...
Я действительно любил бы, когда легкое понимает объяснение преимущества для использования класса в php просто использующие функции.
Вот простой пример мысли, которую я имею теперь и задаюсь вопросом, более ли класс эффективен:
Скажите, что у меня есть мини-календарный виджет, который я создал в php. Я думаю о вызывании функции miniCal('arrayVars1', 'var2')
. Но я мог бы сделать это дважды на той странице. Действительно используйте меньше ресурсов при помощи класса здесь, создайте новые экземпляры его?
Какое дерево должно я лаять здесь, потому что я чувствую прямо сейчас, что дерево является кирпичной стеной...
Классы используются для представления данных в качестве объектов. Если вы представляете что-то вроде данных пользователя, или предложение об аукционе, создание объекта пользователя или аукциона объекта облегчает сохранение этих данных вместе, передайте его в свой код и сделать его более легко понятным для читателей. Эти классы будут иметь атрибуты (поля данных, такие как номера, строки или другие объекты), а также методы (функции, которые вы можете работать в любом классе).
Классы обычно не предлагают никаких преимуществ с точки зрения производительности, но они очень редко имеют какие-либо отрицательные эффекты. Их реальное преимущество заключается в том, чтобы сделать код более четко.
Я рекомендую вам прочитать направляющую объектно-ориентированное программирование PHP5 и вход Wikipedia OOP .
Общая вещь, поскольку PHP5 должен был создать классы, которые действуют как библиотеки. Это дает вам преимущество организации вашей функциональности и воспользоваться преимуществами классов, таких как __autoload ();
Например, представьте, что у вас есть две функции для шифрования и расшифровки данных. Вы можете обернуть их в классе (давайте назовем это шифрование) и сделайте их статическими функциями. Затем вы можете использовать такие функции, как это (уведомление не требуется никакой инициализации (I.E. $ OBJ = новое шифрование)):
$encrypted_text = Encryption::encrypt($string);
и
$decrypted_text = Encryption::decrypt($string);
Преимущества этого являются:
У меня есть список мест, которые вы будете использовать классы в стиле OOP в своем ответе на этот вопрос: https://stackoverflow.com/questions/2035449/why-is-oop-hard-for-me/2035482#2035482
В основном, когда вы хотите представлять объект, который имеет в нем вещи. Как переменная базы данных, которая имеет соединение в нем, что уникально. Поэтому я бы сохранил это, чтобы я мог убедиться, что MySQL_Query
использует правильное соединение каждый раз:
class MySQL extends Database
{
public function connect($host, $user, $pass, $database)
{
$this->connection = mysql_connect($host, $user, $pass);
$this->select_db($database);
}
public function query($query)
{
return mysql_query($query, $this->connection);
}
public function select_db($database)
{
mysql_select_db($database);
}
}
или, возможно, вы хотите построить форму, вы можете сделать объект формы, который содержит список входов и Таким, что вы хотите быть внутри формы, когда вы решите отобразить его:
class Form
{
protected $inputs = array();
public function makeInput($type, $name)
{
echo '<input type="'.$type.'" name="'.$name.'">';
}
public function addInput($type, $name)
{
$this->inputs[] = array("type" => $type,
"name" => $name);
}
public function run()
{
foreach($this->inputs as $array)
{
$this->makeInput($array['type'], $array['name'];
}
}
}
$form = new form();
$this->addInput("text", "username");
$this->addInput("text", "password");
или как кто-то известен, человек:
class Person{
public $name;
public $job_title;
// ... etc....
}
все являются причинами для создания классов, как они представляют что-то, что имеет свойства, такие как имя или работа или работа Название и может иметь методы, такие как отображение формы.