<?php
$data = get_class_methods('className');
print("<pre>");
print_r($data);
print("</pre>");
?>
* This source code was highlighted with Source Code Highlighter.
Получим массив искомых методов! ;)
Friday, February 12, 2010
Как просмотреть все методы объекта php
А вот так!
Просмотр свойств объекта в PHP 5
PHP 5 предоставляет механизм итераторов для получения списка всех свойств какого-либо объекта
Выведет
По умолчанию, в итерации будут участвовать все свойства, объявленные как public.
<?php
class MyClass {
public $var1 = 'value 1';
public $var2 = 'value 2';
public $var3 = 'value 3';
protected $protected = 'protected';
private $private = 'private';
}
$class = new MyClass();
foreach($class as $key => $value) {
print "$key => $value\n";
}
?>
* This source code was highlighted with Source Code Highlighter.
Выведет
var1 => value 1
var2 => value 2
var3 => value 3
* This source code was highlighted with Source Code Highlighter.
По умолчанию, в итерации будут участвовать все свойства, объявленные как public.
Saturday, February 6, 2010
Магические Методы php
В дословном переводе — Магические Методы (Magic Methods). Эти методы зарезирвированы в php. Они начинаются с двойного подчеркивания (__).
Список всех Магических методов:
* __construct
* __destruct
* __call
* __callStatic
* __get
* __set
* __isset
* __unset
* __sleep
* __wakeup
* __toString
* __set_state
* __clone
Основные и наиболее используемые методы - это __construct, __destruct, конструктор и деструктор. С ними понятно.
Существуют также __call, __get, __set.
Эти методы связанны с перегрузкой, т.е. мы можем выполнить к примеру такой метод $object->setValue(30) даже если он фактически отсутствует. Во время выполнения управление будет отдано методу __call:
__get и __set выполняют похожие операции, но не с методами, а со свойствами класса.
__sleep и __wakeup вызываются только из функций serialize и unserialize.
__sleep до выполнения команды serialize над данным объектом, она возвращает имена переменных, которые нужно сериализовать.
__wakeup в свою очередь - до выполнения команды unserialize.
__toString
При обращении к классу как к строке, PHP возвращает ошибку:
Также есть метод __clone, он вызывается только при клонировании объекта с помощью оператора clone. При отсутствии этого метода, он подставится автоматически и скопирует все свойства объекта в новый. Можно самостоятельно написать метод __clone и таким образом самому определить, какие свойства будут переданы в объект-клон.
Список всех Магических методов:
* __construct
* __destruct
* __call
* __callStatic
* __get
* __set
* __isset
* __unset
* __sleep
* __wakeup
* __toString
* __set_state
* __clone
Основные и наиболее используемые методы - это __construct, __destruct, конструктор и деструктор. С ними понятно.
Существуют также __call, __get, __set.
Эти методы связанны с перегрузкой, т.е. мы можем выполнить к примеру такой метод $object->setValue(30) даже если он фактически отсутствует. Во время выполнения управление будет отдано методу __call:
function __call($m, $a) {
...
}
где $m = ‘getValue’, а $a = 30.__get и __set выполняют похожие операции, но не с методами, а со свойствами класса.
__sleep и __wakeup вызываются только из функций serialize и unserialize.
__sleep до выполнения команды serialize над данным объектом, она возвращает имена переменных, которые нужно сериализовать.
__wakeup в свою очередь - до выполнения команды unserialize.
__toString
При обращении к классу как к строке, PHP возвращает ошибку:
$class = new TestClass('Привет');
echo $class;
Можно для этой цели создать магический метод __toString в нужном классе.class TestClass {
public $foo;
public function __construct($foo) {
$this->foo = $foo;
}
public function __toString() {
return $this->foo;
}
}
__cloneТакже есть метод __clone, он вызывается только при клонировании объекта с помощью оператора clone. При отсутствии этого метода, он подставится автоматически и скопирует все свойства объекта в новый. Можно самостоятельно написать метод __clone и таким образом самому определить, какие свойства будут переданы в объект-клон.
Subscribe to:
Posts (Atom)