name."それは空のクラスです"."
";"/>
name."それは空のクラスです"."
";">
ホームページ >バックエンド開発 >PHPチュートリアル >php の _call() の戻り値が何であるかを教えてくれるヒーローはいますか?
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/