ホームページ バックエンド開発 PHPチュートリアル PHP 変数識別子のいくつかのルール

PHP 変数識別子のいくつかのルール

Jun 13, 2016 pm 01:02 PM
array br echo lt

PHP 変数識別子のいくつかのルール

PHP 変数識別子は非常に特別な利便性を提供します。しかし、長年PHPに携わっているプログラマーの中には、その具体的な使い方が明確になっていない人も少なくなく、失敗したときにどこで間違えたのか分からないということもあります。それでは、まとめます。誰でも簡単にすぐにマスターできます。
PHP 変数の操作メカニズムは、変数識別子 $ の後の文字列、または式の演算結果の文字列を変数名として使用し、変数プールに移動して変数値を取得します。
PHP は変数の「名前ポインター」を提供することと同等であることがわかります。 C++ アドレス ポインタとは異なり、null アドレスの危険性がありません。変数メモリのオーバーフローの問題も発生しません。この PHP はすべて私たちのために行われます。
変数識別子:
$: 次の文字列を変数名として使用し、同じ名前の変数を取得します。
?? $a='Hello';
?? $$a = 'world';
{} 式を文字列に解析し、この文字列の変数を取得します。{} 単独では存在できません式の外側にある場合、それはプロセス制御とみなされ、エラーが報告されます。つまり、{} の前に $ があるか、外側に引用符がなければなりません。
エコー $a, ${$a}; エコー $a, $$a;

この 2 つの違い: $ は常にその後の最初の文字列を検索し、{} は内部式を文字列に解析します。 PHP は、このメソッドを使用して変数の「名前ポインタ」を実装します。

${}: {} によって返された文字列は、さらなる処理のために $ に渡されます。目的: 式の結果の変数を取得します。
?例: ${$array[$i][$j]}、$$array[$i][$j]} を使用すると、PHP は変数 $$array を見つけます。結果の変数名として $array[$i][$j] を探す代わりに。

関数と式内の

{}
推測してください: 次のプログラムは次の値を返します:

   $a='Hello';
   $$a = 'world';
   echo '1 ', $a, '{$a}', '</br>';
   echo '2 ', $a, "{$a}", '</br>';
   echo '3 ', $a, "{{$a}}", '</br>';   
   echo '4 ', $a, "${$a}", '</br>';   
   echo '5 ', $a, ${$a}, '</br>'; 
   echo '6 ', $a, "{${$a}}", '</br>'; 
   echo '7 ', $a, "{{${$a}}}", '</br>'; 
   echo '8 ', $a, "$$a", '</br>'; 
        echo '9 ', $a, "{a}", '</br>';
        echo '10 ', $a, "${a}", '</br>';
ログイン後にコピー

?

結果:

?? echo '1 ', $a, '{$a}', '
';
出力は次のとおりです: 1 Hello{$a}?

//通常の状況では、一重引用符は実行不可能な文字列であり、元の結果が返されます。ただし、Smarty も解析します。 !したがって、Smarty テンプレートでは、「{$a}」のような式は依然として望ましくない結果を生成する可能性があります。 !

場合: str_replace('{$foo} ',$foo, '{$foo}.some');
上記の理由により、次のように変更する必要があります:
? ('{' , '$foo',} '),array('',$foo, ''), '{$foo}.some');

?? echo '2 ', $a, "{$a}", '
';

出力は次のとおりです: 2 HelloHello
二重引用符で囲むと、{} またはそうでない場合、変数は常に解析されます。
?? echo '3 ', $a, "{{$a}}", '
';??
出力は次のとおりです: 3 Hello{Hello}?したがって、{} で結果を出力したい場合は、2 つのレイヤーを追加する必要があります。
?? echo '4 ', $a, "${$a}", '
';?
出力は次のとおりです: 4 Helloworld
?? a , ${$a}, '
';
出力は次のとおりです: 4 Helloworld
// ${$expression}、外側に二重引用符があるかどうかに関係なく、結果は同じです?

?? echo '6 ', $a, "{${$a}}", '
';?

出力は次のとおりです: 6 Helloworld

?? , $a, "{{${$a}}}", '
'
出力は次のとおりです: 7 Hello{world}
//{} で結果を出力するには、次のようにします。もう 1 つのレイヤーを追加する必要があります。
echo '8 ', $a, "$$a", '
';
出力は次のとおりです: 8 Hello$Hello
//二重引用符内の $ は 1 回だけ実行されます。 。したがって、結果はあなたが望むものではありません。

注: {} は配列、つまり配列の添字アクセスにも使用できます。つまり、

$array[$i][$j] と $array{$i}{$j} は同等です。ただし、PHP ドキュメントでは [] となっているため、これは正常です。文字列はバイト配列なので、バイト配列モードで文字列にアクセスする場合は、 {}

$a='ux:Cache'; $a{2}=''; のみを使用します。 ?
echo '9 ', $a, "{a}", '
';
出力は次のようになります: 9 Hello{a}
?? echo '10 ', $a, " ${a}", '
';
出力は次のとおりです: 10 HelloHello は、{} の外側に $ があることを確認でき、{} は分析のために結果を $ に送信します。

概要: 二重引用符で囲まれた
$ は 1 回だけ解析されます。複数の解析は行われません。 echo "$$a" が echo "${$a}" に変更された場合、$ が {$foo} になったときに
{} が解析されます。 {} で結果を出力するには、{{$foo}}
$ は文字列を逆方向に検索するため、配列または式の結果を
$$array[$i][$j ] にすることはできません。代わりに、${$array[$i][$j]}

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト Jan 30, 2024 am 09:08 AM

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

C# の Array.Sort 関数を使用して配列を並べ替える C# の Array.Sort 関数を使用して配列を並べ替える Nov 18, 2023 am 10:37 AM

タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Mar 24, 2024 pm 01:15 PM

「Go 言語開発の要点: 5 つの人気フレームワークの推奨事項」 高速で効率的なプログラミング言語として、Go 言語はますます多くの開発者に好まれています。開発効率を向上させ、コード構造を最適化するために、多くの開発者はフレームワークを使用してアプリケーションを迅速に構築することを選択します。 Go 言語の世界には、選択できる優れたフレームワークが数多くあります。この記事では、5 つの人気のある Go 言語フレームワークを紹介し、読者がこれらのフレームワークをよりよく理解して使用できるように、具体的なコード例を示します。 1.GinGin は高速な軽量 Web フレームワークです。

Laravel 開発: Laravel Echo と Pusher を使用して WebSocket 通信を実装するにはどうすればよいですか? Laravel 開発: Laravel Echo と Pusher を使用して WebSocket 通信を実装するにはどうすればよいですか? Jun 13, 2023 pm 05:01 PM

Laravel は、拡張性と効率性に優れた人気の PHP フレームワークであり、開発者が高品質の Web アプリケーションを迅速に構築できる強力なツールとライブラリを多数提供しています。その中でも、LaravelEcho と Pusher は、WebSocket 通信を簡単に実装できる 2 つの非常に重要なツールであり、この記事では、Laravel アプリケーションでこれら 2 つのツールを使用する方法について詳しく説明します。 WebSocket とは何ですか? Webソケット

PHPにおけるechoキーワードの役割と使い方の詳しい説明 PHPにおけるechoキーワードの役割と使い方の詳しい説明 Jun 28, 2023 pm 08:12 PM

PHP における echo キーワードの役割と使用法の詳細な説明 PHP は、Web 開発で広く使用されているサーバーサイド スクリプト言語です。 echo キーワードは、PHP でコンテンツを出力するために使用されるメソッドです。この記事では、echoキーワードの機能と使い方を詳しく紹介します。機能: echo キーワードの主な機能は、コンテンツをブラウザに出力することです。 Web 開発では、フロントエンド ページにデータを動的に表示する必要がありますが、このとき、echo キーワードを使用してデータをページに出力できます。 e

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Golang の Web フレームワーク Echo フレームワークを使用した分散タスク スケジューリングの実装 Golang の Web フレームワーク Echo フレームワークを使用した分散タスク スケジューリングの実装 Jun 24, 2023 am 11:49 AM

インターネットの発達や情報技術の進歩によりビッグデータの時代が到来し、データ分析や機械学習などの分野も広く活用されています。これらの分野では、タスクのスケジューリングは避けられない問題です。効率的なタスクのスケジューリングを実現する方法は、効率を向上させるために重要です。この記事では、Golang の Web フレームワーク Echo フレームワークを使用して分散タスク スケジューリングを実装する方法を紹介します。 1. Echo フレームワークの概要 Echo は、高性能、スケーラブル、軽量の GoWeb フレームワークです。 HTTPに基づいています

市場で最も人気のある Golang フレームワークは何ですか? 市場で最も人気のある Golang フレームワークは何ですか? Jun 01, 2024 pm 08:05 PM

現在最も人気のある Go フレームワークは次のとおりです。 Gin: 軽量で高性能な Web フレームワークで、シンプルで使いやすいです。 Echo: 高性能のルーティングとミドルウェアを提供する、高速で高度にカスタマイズ可能な Web フレームワーク。 GorillaMux: 高度なルーティング構成オプションを提供する高速で柔軟なマルチプレクサー。 Fiber: 大量の同時リクエストを処理する、パフォーマンスが最適化された高性能 Web フレームワーク。 Martini: 豊富な機能セットを提供するオブジェクト指向設計のモジュール式 Web フレームワーク。

See all articles