phpまとめ
基礎知識まとめ1:phpにおけるシングルクォーテーション、ダブルクォーテーション、中括弧について、問題点まとめ
phpでは文字列をシングルクォーテーションやダブルクォーテーションで囲んで表現したり、出力したりすることができます。
例:
Php コード
<?php echo "aabbcc"; echo 'aabbcc'; ?>
出力は同じです。 aabbcc が出力されます
しかし、aabbcc が変数に代入されている場合、どのように出力すればよいでしょうか?
PHPコード
<?php $a = "aabbcc";//或者$a='aabbcc'; echo $a; echo "$a"; //在这里你会发现 他们的输出都是 aabbcc //如果是输出并且回车呢 echo $a."\n"; echo "$a\n"; //这两种方式都是可以的。输出都是aabbcc 为什么呢, ?>
は、PHPでは「」二重引用符が解釈機能を持っているため、文字列に変数やエスケープ文字が含まれている場合は、それも解釈して出力します。単一引用符には解釈機能がありません。つまり、 echo '$a'; または echo 'n'; を実行すると、$a n が文字列として出力されるだけで、解釈された変数や転送文字は出力されません。
説明機能とは何ですか? 実際には、二重引用符を使用して文字列を出力すると、システムは定期的に $ 記号と照合して変数を識別するだけです。エスケープ文字も同様です。 。 。
上記の逃亡に関しては別の状況があります。それぞれ ' 一重引用符と二重引用符 "
Php コード
echo '\''; echo "'"; //双引号括住单引号,避免了再去用\ 转义 echo "\""; echo '"'; //针对双引号,单引号有了避免了转义的操作。
を出力します。 したがって、上記の説明を通じて、文字列を出力するだけで説明する必要のあるものが何もない場合は、次のことを使用する必要があると結論付けることができます。 ' を直接引用符で囲むと、実行速度の明らかな向上はありませんが、出力した内容を解釈する必要がある場合は、原則として実行効率が高くなります。たとえば、echo "aaaaaabbcc" の出力です。コードを参照してください。
$res = 'xxx'; //第一步 echo "aaa$resbbbb"; //第二步 //这样,php在解析过程中,会当作$resbbbb 是一个变量,自然就会报错, //如何规避这样的情况呢。 echo “aaa{$res}bbbb”; //第三步
zend は解析時に正規のマッチングを使用するため、変数が文字 (_ 文字と数字、数字で始まらない) である限り、システムの正規化は常に行われます。 match. スペースがある場合、変数の識別は自然にここで終了します (もちろん、ここでのスペースは変数以外の命名規則文字である必要があります)
echo "aaa$res bbbb. "; この文は正常に実行されます。出力文字列に余分なスペースがあります
作成者は余分なスペースを必要としませんか?
次に、3 番目のステップのコードを使用します。 echo "aaa{$res}bbbb"
zend が解析すると、また、2 つの中括弧も検索されます。{} 内の文字は通常の二重引用符を使用して照合されるため、中括弧は出力されません。 braces? つまり、 echo "aaa{ggg $res}bbbb"; つまり、中括弧内に変数があるかどうかだけではなく、システムは文字列全体を再判定します。は変数の解析と検索に使用されます。現時点では、res の後の「}」は変数の名前に属しません。したがって、上記の出力は次のようになります: aaa{ggg xxx}bbbb
要約: 文字列と変数が連結される場合。より効率的な方法は、変数を {{} で囲むことです。そうしないと、直接 "" を使用するよりも遅くなります。