下の図は、私が作成したクラスのメソッドです。
メソッドを反転するために同じ型の別のメソッドを呼び出そうとしましたが、結果はエラーを示しました: 致命的なエラー: D の未定義関数 reverse() の呼び出し: WWWshopcontrolindex.php 12行目
もちろん、この文のプロンプトには、reverse 関数が定義されていないと書かれていますが、
明確に定義しましたが、仕様に準拠していないものはありませんか?
ディスカッションへの返信 (解決策)
問題は reverse(substr($str,1)) です self::reverse(substr($str,1));問題は reverse(substr($str,1)); ここで見つかりませんでしたか?
メソッドはスコープのない関数になります
理由は明らかです、問題を解決する方法は
彼は self::reverse(substr($str,1)); の書き方をすでに知っていましたか?
self::reverse(substr($str,1)); 彼はすでにその方法を知っていませんでしたかself::reverse (substr($str,1));? と書きます。
self:: を試してみましたが、やはり上記と同じプロンプトです
コードを投稿してください。スクリーンショットは撮らないでください
問題なく書きました
class indexControl{ public function reverse($str) { if(strlen($str)>0) { self::reverse(substr($str,1)); echo substr($str,0,1); return; } } public function indexOp() { self::reverse("adfdsfd"); }}indexControl::indexOp();
フレームワークの影響を受けていますか?
さらに、文字列を逆にしたいだけの場合は、strrev 関数を使用できます。再帰する必要はありません