しますprint_r PHPでオブジェクトのメソッドを取得しますか?
-
18-09-2019 - |
質問
私はDrupalの6のビュー2で働いている、と私は、Viewオブジェクトのメソッドのドキュメントを見つける難しさを持っています。方法だけでなく、フィールドを出力しますprint_rのような任意のPHP関数はありますか?
解決
私はあなたが get_class_methods を探していると信じて。このような場合は、 get_class_vars にはまた、あなたが興味あります。
他のヒント
(それはやり過ぎではない場合)あなたに興味があるかもしれないのリフレクションAPI。具体的に: -
<?php
Reflection::export(new ReflectionClass('View'));
?>
より詳細な例については、マニュアルを確認します。
Mathachewで述べた機能に加えて、あなたはまた、反射に、特にReflectionClass
クラスを見てみることができます。
$class = new ReflectionClass('YourViewClass');
$class->getMethods();
$class->getProperties();
私は、指定されたオブジェクトのメソッドを表示するだけでなく、与えられた場合、そのプロパティ、カプセル化とリリースノートのようないくつかの他の有用な情報を表示するだけでなく、この単純な関数を書きました。
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>";
}
それは私がいくつかのランダムな例クラスを作成したどのように動作するかをお見せします。人というクラスを作成し、ちょうどクラス宣言の上にいくつかのリリースノートを配置することができます:
/**
* 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;
}
}
は今人のインスタンスを作成し、当社の機能とそれを包むことができます。
$Wictor = new Person("27.04.1987", 170, 70, "Wictor");
TO($Wictor);
カプセル化情報と数と、各メソッドのパラメータの名前は、方法の位置と、それが存在するコードのラインを含むクラス名、パラメータおよび方法についてこの意志出力情報。
:下記の出力を参照してください。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 ]
は、あなたがそれが役立つことを願っています。よろしく。
所属していません StackOverflow