ホームページ > バックエンド開発 > PHPチュートリアル > PHPでのuseの使い方(コード例)

PHPでのuseの使い方(コード例)

烟雨青岚
リリース: 2023-04-08 22:04:02
転載
3215 人が閲覧しました

PHPでのuseの使い方(コード例)

phpでの使い方(コード例)

最近phpフレームワークの勉強をしています。いつになったら自分のフレームワークを開発できるようになるのか、それはもちろんプログラミングのレベルを上げるためでもありますが、同時に普段学んでいることをばらばらに組み合わせて上手に応用することもできます。しかし、フレームワークを開発する場合、どうやって始めればよいのか、何を最初に開発すればよいのかわからない。PHP フレームワークはたくさんあるものの、どのように適用するかについてのものばかりであり、ドキュメントやビデオから学べるものはない。 「特に憂鬱になります。応用方法を知りたい人は多いと思います。開発フレームワークで遊んでいる友達もみんな同じような気持ちです。私も憂鬱なので、自分でやってみようと思いました。想像していた通り難しかったので、最初から少し混乱していました。

これが、名前空間の使用と使用の導入です。インターネット上の意見をたくさん読んだり、公式ドキュメントを読んだりすると、意味は大まかに明確で理解しやすいですが、名前空間は、この空間に名前を付けるだけで言うのは簡単ですが、使用の具体的な操作が機能せず、分かりません。その後、Yiiの学習ビデオを見て急に理解しました。

たとえば、3 つのファイルを作成します。

最初のファイル A.php には 2 つのクラスが含まれており、名前空間は a\b\c;

<?php
namespace a\b\c;
class Apply{
  function get_info(){
    echo &#39;this is A Apply&#39;;
  }
}
class C{
  function info(){
    echo &#39;this is info&#39;;
  }
}
ログイン後にコピー

2 番目のファイル B .php namespace a\b\d;

<?php
namespace a\b\d;
class Apply{
  function get_info(){
    echo &#39;this is B Apply&#39;;
  }
}
ログイン後にコピー

3 番目のファイルindex.php は、上記 2 つのファイルのクラスを使用するために使用されます。

たとえば、A.php でクラスをインスタンス化したいと考えています。これを実現するにはどうすればよいでしょうか?

最初にこのファイルをインクルードします require_once('A.php');

次に a\b\c;? それとも a\b\c\A? を使用しますか? 最初はそう思いました。実際、これは間違っています。このスペースでインスタンス化するクラスの namespace\class 名を使用する必要があります。たとえば、A.php で Apply クラスをインスタンス化する場合、 a\b\c\Apply; を使用します。これは、このクラスを導入し、次に new apply(); を使用して内部のメソッドを呼び出すことと同じです。いつもと同じ。クラス C をインスタンス化する場合は、a\b\c\C を使用します。

注: use は、require_once または include と等しくありません。使用の前提は、ファイルが現在のファイルにインクルードされていることです。

ちなみにMVCモードではクラス名とファイル名が同じなので、知らない人はuseの後にファイル名が来ると思うと思います。前から思ってた。実際、使用されるのは依然としてクラス名です。

同じクラス名が異なる名前空間にあり、それを同じファイル内で使用している場合はどうすればよいのかと疑問に思う人もいるかもしれません。たとえば、上記のindex.phpにはA.phpとB.phpが含まれており、new apply();はこの時点でエラーを報告します。解決策は、エイリアスを使用することです。たとえば、a\b\d\を使用します。 apply as b; この時、newを使う場合は競合しないようにnew apply();ではなくnew b();と書くべきです。

読んでくれた皆さん、ありがとうございます。たくさんの利益が得られることを願っています。

推奨チュートリアル:「php チュートリアル

以上がPHPでのuseの使い方(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート