换行符
突然发现php里有好多换行符啊 比如:echo "<br>";
echo "<p>测试函数内变量:<p>"; //<p>的作用就是换行
echo PHP_EOL;
再比如:
<h2>和</h2>,作用是加粗加换行
作用域
由于在 php 中函数是有独立的作用域,所以局部变量会覆盖全局变量,即使局部变量中没有全局变量相同的变量,也会被覆盖。所以要想在函数中直接使用全局变量可以通过 global 关键字声明或者通过 php 中自定义的 $GLOBALS 数组获取: <?php
$a=5;
$b=3;
function t1()
{
global $a,$b;//global关键字声明用法
echo $a-$b; // 输出 2
}
t1();
echo PHP_EOL;
function t2()
{
echo $GLOBALS['a']-$GLOBALS['b']; // 输出 2,$GLOBALS 数组用法
}
t2();
?>
但是不可以这样用数组:
echo "变量 x 为:$GLOBALS['x']";
可以这样:
echo "变量 x 为:";
echo $GLOBALS['x'];
或者这样:
echo "变量 x 为:{$GLOBALS['x']}";
转义字符
echo "这是一个\"看脸\"的时代";
这一行代码中有4个引号,导致计算机不知道第一个引号是跟第二个引号一起的,还是第三个一起的,进而导致运行出错。
\(反斜杠)会告诉计算机,后面的这一个符号,我需要原封不动的显示。
但是在php的 定界符 EOF 中的任何特殊字符都不需要转义,形式如下:
<?php
$name="runoob";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行(其后不能有任何东西,包括注释)且前后不能空格
echo $a;
?>
运行结果如下:
"abc"runoob
"123"
但是也有例外,
<?php
$name="变量会被解析";
$a=<<<EOF
$name<br><a>html格式会被解析</a><br/>双引号和Html格式外的其他内容都不会被解析
"双引号外所有被排列好的格式都会被保留"
"但是双引号内会保留转义符的转义效果,比如table:\t和换行:\n下一行"
EOF;
echo $a;
?>
它的运行结果是:
变量会被解析
html格式会被解析
双引号和Html格式外的其他内容都不会被解析
"双引号外所有被排列好的格式都会被保留"
"但是双引号内会保留转义符的转义效果,比如table: 和换行:
下一行"