namespace-php如何通过命名空间使用其他文件中的变量
phpnamespace
比如有个 a.php 这样定义
namespace np1; $foo = 'foo'; const foofoo = 'foofoo';
另外有个 b.php 这样定义
namespace np2; $bar = 'bar'; const barbar = 'barbar';
在c.php定义
require "a.php" ; require "b.php";
$baz = np1\$foo; $qux = np2\$bar;
echo "$baz and $qux !"
三个文件在同一目录中,已经被正确require了,运行会出错!
而c.php 中输出a.php 和b.php 中的常量,比如c.php如下:
$baz = np1\foofoo; $qux = np2\barbar;
echo "$baz and $qux !"
则能正确输出。
所以问题来了,怎样才能在c.php通过命名空间标识使用a.php 和 b.php中的变量$foo和$bar .
好吧,是我问题没有提清楚。试了下,直接 echo "$foo"; 是可以输出的!但是既然
$foo是命名空间np1中定义的变量,为什么在c.php中使用时不能加上命名空间的名字呢,比如这样 echo np1\$foo;
但是相反,如果a.php 中定义了一个类和一个常量,比如a.php 这样定义:
<code><?php namespace np1; $foo = 'foo'; //变量 const foofoo = 'foofoo'; //常量class C1{ //类public function __construct($name, $time){ echo "It's echoing from class C1.<br/> your name: $name, and your login time: $time <br>";} public function saysth(){ echo "echoing from function saysth of np1\C1 <br>";}</code>
}
在c.php文件中可以通过命名空间np1使用文件a.php中的常量 foofoo和类C1但是无法通过命名空间使用变量$foo .
比如c.php 这样
require "a.php" ;
require "b.php";
$baz = new np1\C1("leon",time());
$qux = np1\foofoo;
$baz.saysth();
echo "$qux
";
上述c.php能够正常使用np1中的类C1和常量foofoo, 但是为什么不能通过np1\$foo 使用np1中的变量$foo 呢,搞不懂!不信大家可以试试.
设想一下如果b.php文件和a.php文件中同有名为$foo的变量 ,这样在c.php 直接使用$foo而不加命名空间限定,程序怎么判断这个变量是哪个文件定义的呢(我试了一下谁require在后输出谁的变量)?

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。
