PHP学習用のグローバル変数
PHP のグローバル変数は C 言語とは少し異なります。C 言語では、ローカル変数によってオーバーライドされない限り、グローバル変数は関数内で自動的に有効になります。これにより問題が発生する可能性があり、誰かが誤ってグローバル変数を変更してしまう可能性があります。したがって、PHP のグローバル変数を関数で使用する場合は、グローバル変数を宣言する必要があります。
次の例を見てください:
<?php$a = 1; /* global scope */function Test(){ echo $a; /* reference to local scope variable */}Test();?>
echo ステートメントは変数 $a のローカル バージョンを参照しており、このスコープ内にあるため、このスクリプトは出力を生成しません。 、値は割り当てられません。
グローバルを使用する別の例を見てください:
例 #1 グローバルを使用する
<?php$a = 1;$b = 2;function Sum(){ global $a, $b; $b = $a + $b;}Sum();echo $b;?>
それは「3」です。グローバル変数 $a および $b が関数内で宣言されると、いずれかの変数へのすべての参照がそのグローバル バージョンを指します。 PHP では、関数が宣言できるグローバル変数の最大数に制限はありません。
グローバル スコープ内の変数にアクセスする 2 番目の方法は、特別な PHP カスタム $GLOBALS 配列を使用することです。前の例は次のように記述できます:
例 #2 グローバル
<?php$a = 1;$b = 2;function Sum(){ $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];}Sum();echo $b;?>
の代わりに $GLOBALS を使用します
$GLOBALS は連想配列であり、各変数は要素です。キー名は変数名に対応し、値は変数の内容に対応します。 $GLOBALS はスーパーグローバル変数であるため、$GLOBALS はグローバル スコープ内に存在します。次の例は、スーパーグローバル変数の使用法を示しています:
例 #3 スーパーグローバル変数とスコープを示す例
<?phpfunction test_global(){ // 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域中有效。 global $HTTP_POST_VARS; echo $HTTP_POST_VARS['name']; // Superglobals 在任何范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 echo $_POST['name'];}?>
グローバル変数の参照
注意してください:関数内でグローバルとして宣言された変数に参照が割り当てられると、その参照は関数内でのみ表示されます。
PHP4 を駆動する Zend エンジン バージョン 1 では、変数の静的定義とグローバル定義は参照によって実装されます。たとえば、関数スコープ内の global ステートメントを使用してインポートされた真のグローバル変数は、実際にグローバル変数への参照を確立します。次の例に示すように、これにより予期しない動作が発生する可能性があります。
<?phpfunction test_global_ref() { global $obj; $obj = &new stdclass;}function test_global_noref() { global $obj; $obj = new stdclass;}test_global_ref();var_dump($obj);test_global_noref();var_dump($obj);?>
上記のルーチンは次のように出力します。
NULL
object(stdClass)(0) {
初めて NULL が出力されるのは、global $var; が $var =& $GLOBALS['var']; の略称であるためです。したがって、別の参照を $var に代入しても、ローカル変数 $var への参照が変更されるだけです。
つまり、ステートメント $obj = &new stdclass; はローカル変数 $obj のポイントを変更し、ステートメント global $obj によって引き起こされた効果は上書きされます。
同様の動作は、
静的 ステートメントにも適用されます。参照は静的に保存されません:
<?phpfunction &get_instance_ref() { static $obj; echo 'Static object: '; var_dump($obj); if (!isset($obj)) { // 将一个引用赋值给静态变量 $obj = &new stdclass; } $obj->property++; return $obj;}function &get_instance_noref() { static $obj; echo 'Static object: '; var_dump($obj); if (!isset($obj)) { // 将一个对象赋值给静态变量 $obj = new stdclass; } $obj->property++; return $obj;}$obj1 = get_instance_ref();$still_obj1 = get_instance_ref();echo "\n";$obj2 = get_instance_noref();$still_obj2 = get_instance_noref();?>
静的オブジェクト: NULL
静的オブジェクト:
静的オブジェクト: NULL
静的オブジェクト: object(stdClass)(1) {
["プロパティ"]=>
int(1)
}

ホット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)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています
