Pracuję z widokami 2 w Drupalu 6 i mam trudności ze znalezieniem dokumentacji dotyczącej metod obiektu View. Czy istnieje jakakolwiek funkcja PHP, taka jak print_r, która wyprowadza metody, jak również pola?print_r aby uzyskać metody obiektowe w PHP?
Odpowiedz
Uważam, że szukasz get_class_methods. W takim przypadku może Cię również zainteresować get_class_vars.
Może Cię zainteresować Reflection API (jeśli to nie jest przesada). W szczególności: -
<?php
Reflection::export(new ReflectionClass('View'));
?>
Sprawdź instrukcję, aby uzyskać bardziej szczegółowe przykłady.
Bardziej elastyczne niż get_class_methods, ponieważ można również uzyskać parametry i komentarze. – Kris
Poręczne: 'get_class ($ object);' Kiedy masz do czynienia z wygenerowanym obiektem z wygenerowanej klasy, możesz przekazać to do konstruktora ReflectionClass. Zobacz http://php.net/manual/en/function.get-class.php –
Oprócz funkcji wymienionych przez Mathachew można również spojrzeć na Reflection, zwłaszcza na klasę ReflectionClass
.
$class = new ReflectionClass('YourViewClass');
$class->getMethods();
$class->getProperties();
Napisałem tę prostą funkcję, która nie tylko wyświetla metod danego obiektu, ale także pokazuje jego właściwości, hermetyzacji i kilka innych przydatnych informacji, takich jak informacje o wydaniu jeśli podano.
function TO($object){ //Test Object
if(!is_object($object)){
throw new Exception("This is not a Object");
return;
}
if(class_exists(get_class($object), true)) echo "<pre>CLASS NAME = ".get_class($object);
$reflection = new ReflectionClass(get_class($object));
echo "<br />";
echo $reflection->getDocComment();
echo "<br />";
$metody = $reflection->getMethods();
foreach($metody as $key => $value){
echo "<br />". $value;
}
echo "<br />";
$vars = $reflection->getProperties();
foreach($vars as $key => $value){
echo "<br />". $value;
}
echo "</pre>";
}
Aby pokazać, jak to działa, stworzyłem losową przykładową klasę. Pozwala utworzyć klasę o nazwie Person i umieść jakieś informacje o wersji tuż powyżej deklaracji klasy:
/**
* DocNotes - This is description of this class if given else it will display false
*/
class Person{
private $name;
private $dob;
private $height;
private $weight;
private static $num;
function __construct($dbo, $height, $weight, $name) {
$this->dob = $dbo;
$this->height = (integer)$height;
$this->weight = (integer)$weight;
$this->name = $name;
self::$num++;
}
public function eat($var="", $sar=""){
echo $var;
}
public function potrzeba($var =""){
return $var;
}
}
Teraz pozwala utworzyć instancję osoby i owinąć go z naszej funkcji.
$Wictor = new Person("27.04.1987", 170, 70, "Wictor");
TO($Wictor);
Ta informacja wyjściowa wola o nazwie klasy, parametrów i metod, w tym o enkapsulacji oraz liczby i nazw parametrów dla każdej metody, metody lokalizacji i linii kodu, w którym istnieje. Zobacz wyjście poniżej:
CLASS NAME = Person
/**
* DocNotes - This is description of this class if given else it will display false
*/
Method [ public method __construct ] {
@@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 75 - 82
- Parameters [4] {
Parameter #0 [ $dbo ]
Parameter #1 [ $height ]
Parameter #2 [ $weight ]
Parameter #3 [ $name ]
}
}
Method [ public method eat ] {
@@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 83 - 85
- Parameters [2] {
Parameter #0 [ $var = '' ]
Parameter #1 [ $sar = '' ]
}
}
Method [ public method potrzeba ] {
@@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 86 - 88
- Parameters [1] {
Parameter #0 [ $var = '' ]
}
}
Property [ private $name ]
Property [ private $dob ]
Property [ private $height ]
Property [ private $weight ]
Property [ private static $num ]
Mam nadzieję, że okaże się przydatny. Pozdrowienia.
- 1. Metody obiektowe R
- 2. php print_r ładny stół
- 3. C++ 0x obiektowe wnioskowanie obiektowe obiektu
- 4. Co to jest odpowiednik php w print_r() w python?
- 5. Czy można uzyskać nazwę metody z poziomu metody w PHP?
- 6. Zapisuj dane wyjściowe print_r w pliku txt. PHP
- 7. Czy programowanie obiektowe w językach interpretowanych (tj. PHP) jest wydajne?
- 8. Użyj JDT, aby uzyskać pełną nazwę metody
- 9. Metody statyczne w PHP
- 10. Wykonuj falsy obiektowe
- 11. Jak Console.Log, Print_R(), Debug.Trace w C#?
- 12. Co oznacza "1" na końcu instrukcji print_r php?
- 13. Programowanie obiektowe z Androidem
- 14. obiektowe JavaScript z przykładu
- 15. Funkcja PHP, aby uzyskać status Facebooka?
- 16. Node.js przestarzałe klucze obiektowe
- 17. Podejście obiektowe z AngularJS
- 18. wykluczyć własność prywatną z print_r lub obiektu?
- 19. Nie można uzyskać str_replace(), aby usunąć spacje w ciągu PHP
- 20. Print_r niczego nie zwraca; var_dump pokazuje NULL
- 21. Czy literały obiektowe są Pythoniczne?
- 22. Sprawdzanie widoczności metody w PHP
- 23. Dlaczego używać słowa kluczowego "this", aby uzyskać metody nadklasy?
- 24. Jak uzyskać makro scala, aby zastąpić wywołanie metody
- 25. Jak uzyskać nazwę metody ze znanej metody?
- 26. czy można dodawać metody w locie do zajęć matlab (programowanie obiektowe)?
- 27. PHP: Uzyskaj argumenty metody?
- 28. Jak uzyskać nazwę metody wewnątrz metody node.js
- 29. PHP magiczne metody przykład
- 30. PHP: Jak uzyskać nazwę zmiennej w php post method
Czy przegrałby, jeśli nie ograniczenia wynikające z SO. Dobra robota. – mcandre