基本的に私はコードイグナイターを使用しています。コードイグナイターの基底クラスは、print_rオブジェクトの中に基本クラスが埋め込まれているものがたくさんあります。これは私が実際に望んでいた情報(残りのプロパティ)を取得するのに苦労します。プライベートプロパティをprint_rまたはobjectから除外しますか?
私は隠すことができるか、基本クラスオブジェクトを削除する方法があるのだろうかと思っていますか?
私は
clone $object;
unset($object->ci);
print_r($object);
を試してみましたが、当然のCI施設には、プライベートです。
私はダンプのために使用しています実際の機能は次のとおりです。
/**
* Outputs the given variables with formatting and location. Huge props
* out to Phil Sturgeon for this one (http://philsturgeon.co.uk/blog/2010/09/power-dump-php-applications).
* To use, pass in any number of variables as arguments.
* Optional pass in "true" as final argument to kill script after dump
*
* @return void
*/
function dump() {
list($callee) = debug_backtrace();
$arguments = func_get_args();
$total_arguments = count($arguments);
if (end($arguments) === true)
$total_arguments--;
echo '<fieldset style="background: #fefefe !important; border:2px red solid; padding:5px">';
echo '<legend style="background:lightgrey; padding:5px;">' . $callee['file'] . ' @ line: ' . $callee['line'] . '</legend><pre>';
$i = 0;
foreach ($arguments as $argument) {
//if the last argument is true we don't want to display it.
if ($i == ($total_arguments) && $argument === true)
break;
echo '<br/><strong>Debug #' . (++$i) . ' of ' . $total_arguments . '</strong>: ';
if ((is_array($argument) || is_object($argument)) && count($argument)) {
print_r($argument);
} else {
var_dump($argument);
}
}
echo '</pre>' . PHP_EOL;
echo '</fieldset>' . PHP_EOL;
//if the very last argument is "true" then die
if (end($arguments) === true)
die('Killing Script');
}
をしかし、私は他のプライベートプロパティをしたい、私はちょうど1つのプロパティ – Hailwood
@Hailwoodが、今ちょっとハックの方法を試してみたが、可能性があることを望んでいません作業。 – arma
しかし、 'get_object_vars()'はオブジェクトをパラメータとして想定しています。 '$ class_of_object'は文字列です。 – TheFox