ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルにおける中括弧の役割の紹介

php_PHP チュートリアルにおける中括弧の役割の紹介

WBOY
WBOYオリジナル
2016-07-21 15:19:44841ブラウズ

1. どのようなプログラムであっても、関数名(){}、for(){}、...たくさんありすぎて、それらが何に使用されるかを説明する必要すらありません。
2. $str{4} の後には、文字列変数の後に {} が続きます。中括弧と角括弧は文字列変数を配列として扱います。
3. {$val} このときの中括弧の役割は、囲まれた項目を変数として扱うように PHP に指示することです。

コードをコピーします コードは次のとおりです:

$arr=array(0=>123, 'name'=>'Hello');
foreach($array as $k=>) ;$v ){
echo "select * from blog_blogs where blog_tags like '%{$arr[$k]}%' order by blog_id" //中括弧の追加は変数の識別子としてのみ機能します
}
echo '







foreach($array) as $k= >$v){
echo "select * from blog_blogs where blog_tags like '%{{$arr[$k]}}%' order by blog_id" // 2 つの中括弧を追加します。外側の括弧はこうなります。通常の文字として扱われます
}
//変数を区別するには中かっこを使用します
//echo "$arr['name']" //この文を使用すると構文エラーが報告されます
echo "{$arr['name'; ]}"; // この文は正常です。中括弧内の文字は変数
//$str{4} として扱われます。文字列変数の後に {} が続く場合、中括弧と角括弧は文字列変数として扱われます。
$str = 'abcdefg';
echo $str{4};


{}PHP における中括弧の役割 (中括弧内に配置された PHP 変数の意味)

例: $sql = "記事に挿入 (`channel_id`,`title`,`detail`,`pub_time`) 値 ('{$cid}','{$title}','{$detail}','{$time) }');" ;
付けなくても大丈夫なようですが、{}を付けるのはどういう意味ですか?
なぜフィールド名に``を付ける必要があるのですか?

============= ======= ===========================

少なくとも読みやすい~~~」は必須です場合によっては、変数名が次の文字列に接続されるのを防ぐために、文字列が次のようになっている必要があるため、insert into ステートメントによって作成されます。 =aadd
追加しない場合は自分で追加できます $ciddd を見てください、ciddd 変数になりますね~~

PHP 変数の後に波括弧 {} を追加し、数値。PHP 変数の対応するシリアル番号の文字を参照します。
例:
$str = 'hello';
echo $str{0} // 出力は h です
echo $str{1} // 文字列が一致するかどうかを確認したい場合isset は言語構造であり、strlen は関数であるため、strlen を使用するよりも isset を使用する方が効率的です。
たとえば、文字列の長さが 5 未満かどうかを判断するには:
if ( !isset ( $str{5} ) ) は if ( strlen ( $str )

以下の説明はよりわかりやすいです:

{} 内の内容が変数であり、実行中に変数に従って処理されることを示します。これにより、文字列内の変数を参照するために特別な包含メソッドが使用されます。 . 演算が使用できないため、コード入力の量が削減されます。

実際、出力ブロックは print "hello ".$arr['fruit']; と同等です

1. 中括弧を使用した変数
前のブログで述べたように、PHP 通知では次の文が警告されています。 switch (${action}.'_'.${child}) {
一見すると問題ありません。 PHP マニュアルの変数の定義も確認しました: ここ。
1. 可変変数の場合
ほとんどの情報と同様に、変数の中括弧の使用は「可変変数」にあることがわかります。


引用
配列で変数を使用するには、あいまいさの問題を解決する必要があります。つまり、$$a[1] を記述する場合、パーサーは $ を使用するつもりかどうかを知る必要があります。 a[1] を変数として使用する場合、または $$a を変数として使用し、その変数から [1] インデックスを使用する場合は、このあいまいさを解決するための構文は次のとおりです。最初の場合は ${$a[1]} です。 2 番目は ${$a}[1]
つまり、配列環境で可変変数を使用するには、状況に応じて中括弧 {} を適切に使用して変数の範囲を制限する必要があります。 ${$a[1]} は ${$a}[1] とはまったく異なります。


Quote
${$a[1]} ここで $a[1] は変数です。 [1] ここで $a は変数です。
2. 境界を定めて曖昧さを避ける
実際、この状況は変数の場合と似ています。たとえば、「.」コネクタを使用して文字列を接続すると、次のようになります:

echo $str.'_2010'
中括弧で囲んだ方が簡単かもしれません:

echo "${ str}_2010" ;
中括弧がない場合は、$str_2010 が変数として処理されることがわかります。もちろん、この書き方は二重引用符内でのみ使用できます。単一引用符内では変数の置換は行われません。

3. 文字列変数内の単一の文字
例:



コードをコピーします

コードは次のとおりです:

$str='000';
$str{0}='1';
echo $str; //これは理解するのが難しくありません。角括弧付き [] の機能は同じで、Python で文字列をオブジェクトとして扱うのと多少似ています。したがって、次のステートメントは同じ機能を持ちます。


コードをコピー
コードは次のとおりです。 $str='000';
echo $str; //100 も出力します


しかし、私が本当に説明したいのはこれらではありません。以下を参照してください。

2. 変数に中括弧を使用する場合の類似点と相違点
まず、すべての PHP エラー メッセージ出力をオンにします。つまり、/etc/php.ini は次のようになります:

Quote
error_reporting = E_ALL
display_errors = On
次に、開きますテスト ページ、コードは次のとおりです:



コードをコピーします

コードは次のとおりです:
$test='123'; echo $test}; ; echo "{$test }";
echo ${test};


次の結果が表示されます:



お知らせ: 未定義の定数テストの使用 - /var/www/html/phpcrm/testpages/variables.php の 6 行目で「test」と仮定されています
123_
注意: 未定義の定数テストの使用 - /var/www/ で「test」と仮定されていますhtml/phpcrm/testpages/variables.php の 7 行目
123
これはどういう意味ですか?
1. 許容される記述方法
出力結果「123123123」から、最初の 3 行の echo ステートメントが正常であることがわかります:



コードをコピーします

コードは次のとおりです:


echo $test ;
echo "$ {test}";
2. 推奨されない書き方 以下の 2 行は、テスト変数が定数であるとみなされるという注意事項があります。後で処理された変数とみなされます。したがって、あいまいさと競合を避けるために、次のように記述することはお勧めできません:
コードをコピー

コードは次のとおりです:

echo ${test}.'_'; test};


ただし、柔軟な書き方があります
コードをコピーします
コードは次のとおりです:


echo ${'test'}.'_'; {'test'};

このように書くとエラーは報告されません
3. 書き方が間違っています
インターネット上の多くの情報では、${var} と {$var} は同じ効果を持つと記載されています。ただし、別の文を追加すると: echo {$test}; その後、次のエラー メッセージが表示されます:
Quote
Parse error: syntax error, Expected '{' in /var/www/html/ phpcrm/testpages/variables.php の 8 行目
これは通知警告ではなく、エラーです。解析の問題により、プログラムは正常に実行されません。
3. 概要
前の 2 つの部分の内容に基づいて、変数参照に中括弧を使用する場合は、次の原則に従う必要があると考えます:


引用
1. 正しい記述方法は次のとおりです。形式;
2 、表現する意味に従って区切ります。
そこで、最終的にスイッチ行を次のように変更しました:

switch ("${action}_${child}") {
つまり、 Notice 警告は表示されなくなります。



http://www.bkjia.com/PHPjc/325229.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/325229.html

技術記事

1. どのプログラムであっても、関数名(){}、for(){}、...多すぎて、説明しなくても何をすればよいかわかります。 2. $str{4} には、文字列変数の後に {} 中括弧と角括弧が続きます...

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