今日面接の質問を見たので、複数レベルのディレクトリを作成できる関数を書かなければなりませんでした:
私の最初の気持ちは、再帰を使用して作成することです。具体的なアイデアは次のとおりです:
リーリー出力結果は図のようになります:
しかし、マニュアルのファイル関数を見ると、次のようなプロトタイプの dirname() 関数がありました。 リーリー
わずかに最適化できます:リーリー
効果は同じです。
その後、インターネットで答えを検索したところ、非常に洞察力に富んだ答えを見つけました:
リーリー
それでは、関数全体を説明しましょう:まず、PHP の論理演算子の優先順位を導入します:
&& > > or; つまり、関数本体が表示されます。チェン:
is_dir ( $dir ) または (Directory(dirname( $dir )) および mkdir ( $dir , 0777));
まず、ターゲット ディレクトリが存在するかどうかを確認します。存在する場合は、 or の短絡特性に応じて、以下全体が短絡され、ターゲット ディレクトリが存在しない場合は、次の関数本体が実行されます。
Directory(dirname( $dir )) と mkdir ( $dir , 0777)
最初に再帰を実行する目的について考えました。最初に再帰を実行するのは、その親ディレクトリ (dirname($dir)) が作成されたことを確認するためです。これにより、後続の mkdir() 関数がサブディレクトリを作成するときに親を見つけることができなくなります。ディレクトリが警告します。再帰の深さを入力後、最も深いルートディレクトリが存在することを確認した後、ルートディレクトリから下に向かって順番にディレクトリを作成していきます。
最後に、仕事を探している人は、オンラインで大企業の面接の質問を見つけて、行うことをお勧めします。結局のところ、試験はより包括的で詳細なものであるため、知識を学ぶ際には、野心的になりがちなので、初期関数を正常に使用できるようになるまでに何度か最適化しました。
また、興味深い面接の質問もいくつか見つけて、今後共有する予定です。
このブログ投稿が役立つと思われる場合は、私を推薦するかフォローしてください。質問がある場合は、以下にメッセージを残してください。ありがとうございます。 でした。