私の最初の感覚は、再帰を使用して作成することです。具体的なアイデアは次のとおりです:
出力結果は図のようになります:
しかし、書くのが面倒であることがわかります。マニュアルのファイル関数を見ると、dirname()関数があり、そのプロトタイプは次のとおりです。
文字列ディレクトリ名 (文字列 $path )
ファイルへのフルパスを含む文字列を指定すると、この関数はファイル名を削除した後のディレクトリ名を返します。
Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。他の状況では、スラッシュ (/) になります。
わずかに最適化できます:リーリー
効果は同じです。
その後、インターネットで答えを探したところ、
非常に洞察力に富んだ:を見つけました。
リーリー
まず、PHP の論理演算子の優先順位を導入します
: && > or; つまり、関数本体が表示されます。チェン:
is_dir ( $dir ) または (Directory(dirname( $dir )) および mkdir ( $dir , 0777));
まず、ターゲット ディレクトリが存在するかどうかを確認します。存在する場合は、 or の短絡特性に応じて、以下全体が短絡され、ターゲット ディレクトリが存在しない場合は、次の関数本体が実行されます。
Directory(dirname( $dir )) と mkdir ( $dir , 0777)
考えてみました最初に再帰を行う目的: 最初に再帰を実行して親ディレクトリ(dirname($dir))が作成されていることを確認し、後続の mkdir() 関数がサブディレクトリを見つけられなくなることを防ぐ親ディレクトリに作成され、警告が発行されます。
再帰の深さを入力後、最も深いルートディレクトリが存在することを確認した後、ルートディレクトリから下に向かって順番にディレクトリを作成していきます。最後に、仕事を探している人は、オンラインで大企業の面接の質問を見つけて、行うことをお勧めします。結局のところ、試験はより包括的で詳細なものであるため、知識を学ぶ際には、野心的になりがちなので、初期関数を正常に使用できるようになるまでに何度か最適化しました。
これは、PHP で複数レベルのディレクトリを再帰的に作成することに関するインタビューの質問です。将来、編集者がいくつかの興味深いインタビューの質問を見つけて共有する予定です。