name."それは空のクラスです"."
";"/> name."それは空のクラスです"."
";">

ホームページ  >  記事  >  バックエンド開発  >  php の _call() の戻り値が何であるかを教えてくれるヒーローはいますか?

php の _call() の戻り値が何であるかを教えてくれるヒーローはいますか?

WBOY
WBOYオリジナル
2016-06-13 13:44:02692ブラウズ

php の __call() の戻り値を教えてくれるヒーローはいますか? ~~
class my{
public $name = "My class";

function __tostring(){
return $this -> name." は空のクラスです。"
";

}
function __call($n, $v){
echo "存在しません: ".$n."
";
echo "Wrong value:",print_r($v)."
"; //最後の出力は 1 ですが、何が起こっているのでしょうか。
}
}

$p = new my();

echo $p;

$p -> no("最初", 6 ,a);



実行結果は次のとおりです: 私のクラスは空のクラスです
存在しないメソッド: no
間違った値: Array ([0] = > 最初[1] => 6 [2] => a ) 1

なぜ最後に 1 があるのですか? ? ?困惑しています! ~~




-----解決策---------
bool print_r (混合式 [, bool return] )
print_r

関数 __call($n, $v){
echo "存在しません:"。 n."
";
print_r($v);
}
------解決策---------
戻りパラメータ。このパラメータが TRUE に設定されている場合、print_r() は結果を出力しません (これがデフォルトのアクションです) が、その出力
を返すため、これを実行することもできます

echo "Wrong value:"。 print_r($ v,true)."
"; //最後の出力は 1 ですが、何が起こっているのでしょうか。

------解決策------------------
あなたの問題は __call メソッドにありません。1 は print_r
関数 __call($n, $v)
{
echo "存在しないメソッド: ".$n."< の戻り値です。 ;br> ;";
echo "Wrong value:";print_r($v); //最後の出力は 1 ですが、何が起こっているのでしょうか。
}
1を出力しないようにこれに変更します。

echo "wrong value:".print_r($v,true)."
"; と書くと、戻り値

http://zhidao.baidu が出力されます。 com/question/256918769.html

http://cn2.php.net/print_r/


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。