1. No matter what program, function name(){}, for(){}, ... there are too many, and you know what to do without even explaining them.
2. $str{4} is followed by {} after a string variable. Just like the curly brackets and square brackets, a certain string variable is treated as an array.
3. {$val} The role of the curly brackets at this time is to tell PHP that the enclosed items should be treated as variables.
Copy code The code is as follows:
$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" ; //Adding a curly brace is just to use it as the identifier of the variable
}
echo '
';
foreach($array as $k=>$v){
echo "select * from blog_blogs where blog_tags like '%{{ $arr[$k]}}%' order by blog_id"; //Add two braces, the outer ones will be treated as ordinary characters
}
//Use braces to distinguish variables
/ /echo "$arr['name']"; //Using this sentence will report a syntax error
echo "{$arr['name']}"; //This sentence is normal, the characters in the braces will be used as variables To process
//$str{4} In the string variable followed by {} braces and square brackets, a string variable is treated as an array
$str = 'abcdefg';
echo $str{4};
{}The role of braces in php (the meaning of PHP variables placed inside braces)
For example: $sql = "insert into article (`channel_id`,`title`,`detail`,`pub_time`) values ('{$cid}','{$title}','{$detail}','{$ time}');";
It seems that it is OK without adding it. What does adding {} mean?
Why should the field name be included with ``?
===== =========================================
At least easy to read Well~~~'' is required by the insert into statement, because strings must appear in pairs
Adding {} is sometimes to prevent the variable name from being connected with the following string
For example,
{ $cid}dd
If cid=aa
then {$cid}dd=aadd
If you don’t add it, take a look at $ciddd yourself, wouldn’t it become a ciddd variable~~
Add a brace {} after the PHP variable and fill in the numbers, which refers to the characters of the corresponding serial number of the PHP variable.
For example:
$str = 'hello';
echo $str{0}; // The output is h
echo $str{1}; // The output is e
If you want To check whether a string meets a certain length, you can consider using braces (curly braces) plus isset to replace the strlen function. Because isset is a language structure and strlen is a function, using isset is more efficient than using strlen.
For example, to determine whether the length of a string is less than 5:
if ( !isset ( $str{5} ) ) is better than if ( strlen ( $str ) < 5 ).
The following explanations are more illustrative:
means that the variable inside {} is processed according to the variable during execution. The special method used to reference the variable in the string Include method, so you don't need to use the . operator, thus reducing the amount of code input.
In fact, the output block is equivalent to print "hello ".$arr['fruit'];
1. Variables using curly brackets
As mentioned in the previous blog, PHP Notice warns the following sentence:
switch (${action}.'_'.${child}) {
At first glance, there is no problem. I also checked the definition of variables in the PHP manual: here.
1. The situation of variable variables
It can be seen that, like most information, the use of braces for variables lies in "Variable variables". It is mentioned:
Quote
In order to use variable variables with arrays, you have to resolve an ambiguity problem. That is, if you write $$a[1] then the parser needs to know if you meant to use $a[1] as a variable, or if you wanted $$a as the variable and then the [1] index from that variable. The syntax for resolving this ambiguity is: ${$a[ 1]} for the first case and ${$a}[1] for the second.
In other words, in order to use variable variables in an array environment, it needs to be used appropriately according to different situations. Braces {} limit the scope of a variable. ${$a[1]} is completely different from ${$a}[1]:
Quote
${$a[1]} Here $a[1] is A variable;
${$a}[1] Here $a is a variable;
2. Delimit and avoid ambiguity
In fact, this situation is similar to that of variable variables. For example, if you use the "." connector to connect a string, it may look like this:
echo $str.'_2010';
Written in curly brackets, it may be simpler:
echo "${str}_2010";
It can be seen that if there are no curly brackets, $str_2010 may be processed as a variable. Of course, this way of writing can only be used within double quotes. Variable substitution will not be performed inside single quotes.
3. A single character in a string variable
For example:
Copy code The code is as follows:
$str='000';
$str{0}='1';
echo $str; //The output is 100
?> ;
This is not difficult to understand. It has the same effect as the square brackets []. It is somewhat similar to treating strings as objects in Python. Therefore, the following statements have the same function:
Copy the code The code is as follows:
$str= '000';
$str[0]='1';
echo $str; //also outputs 100
?>
However, these are not me What I want to explain, what I really want to describe, please see below.
2. Similarities and differences in using curly braces for variables
First, turn on all PHP error message output, that is, /etc/php.ini is:
Quote
error_reporting = E_ALL
display_errors = On
Then, open the test page, where the code is:
Copy the code The code is as follows:
$test='123';
echo $test;
echo "${test}";
echo "{$test}";
echo ${test}.'_';
echo ${test};
?>
You will see the following results:
Quote
123123123
Notice: Use of undefined constant test - assumed 'test' in /var/www/html/phpcrm/testpages/variables.php on line 6
123_
Notice: Use of undefined constant test - assumed 'test' in /var/www/html/phpcrm/testpages/variables.php on line 7
123
What does this mean?
1. Acceptable writing method
From the output result "123123123", it shows that the echo statements in the first three lines are normal:
Copy code The code is as follows:
echo $test;
echo "${test}";
echo "{$test}";
2 , Not recommended writing method
There are Notice warnings in the two lines after it, that is, the test variable was regarded as a constant, but it was later assumed to be a variable. Therefore, in order to avoid ambiguity and conflicts, it is not recommended to write like this:
Copy code The code is as follows:
echo ${test} .'_';
echo ${test};
However, there is an alternative way of writing
Copy code The code is as follows:
echo ${'test'}.'_';
echo ${'test'};
Writing like this will not An error will be reported
3. Incorrect writing
According to many information on the Internet, ${var} and {$var} have the same effect. However, if you add another sentence:
echo {$test};
then you will get the following error message:
Quote
Parse error: syntax error, unexpected '{' in /var/www/html/phpcrm/testpages/variables.php on line 8
This is not a Notice warning, but an error. Due to parsing problems, the program will not run normally.
3. Summary
Combining the contents of the previous two parts, I believe that the following principles should be followed when using curly braces for variable references:
Quotation
1. The correct way to write it is: in the form of ${var};
2. Use it with double quotes;
3. Delimit it according to the meaning to be expressed.
So, finally I changed the switch line to:
switch ("${action}_${child}") {
That is, the Notice warning will no longer appear.
http://www.bkjia.com/PHPjc/325229.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/325229.htmlTechArticle1. No matter what program, function name(){}, for(){}, .... too many , even if you don’t say it, you know what to do. 2. $str{4} is followed by {} braces and square brackets after the string variable...