PHP语法
- PHP 脚本以
<?php 开始,以 ?> 结束。
PHP变量
- 变量以
$ 开始,后面跟着名称。
- 变量名区分大小写(PHP语句也是)。
- PHP变量作用域:
- local
- global
- static
- parameter
局部和全局作用域
- 在所有函数外部定义的变量,拥有全局作用域。
- 全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php $x = 5;
function myTest() { $y = 10; echo "<p>测试函数内变量:</p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; }
myTest(); echo "<p>测试函数外变量:</p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; ?>
|
1 2 3 4 5 6 7 8 9 10 11 12
| <?php $x = 5; $y = 10;
function myTest() { global $x, $y; $y = $x + $y; }
myTest(); echo $y; ?>
|
PHP 将所有全局变量存储在一个名为 $GLOBALS[_index_] 的数组中。index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
Static 作用域
- 当一个函数完成时,它的所有变量会被删除。如果希望某个局部变量不要被删除,第一次声明变量时使用 static 关键字:
1 2 3 4 5 6 7 8 9 10 11 12
| <?php function myTest() { static $x = 0; echo $x; $x++; echo PHP_EOL; }
myTest(); myTest(); myTest(); ?>
|
每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
参数作用域
1 2 3 4 5 6 7
| <?php function myTest($x) { echo $x; }
myTest(5); ?>
|
基础语句 echo & print
echo - 可以输出一个或多个字符串。
print - 只允许输出一个字符串,返回值总为 1。
echo 输出的速度比 print 快,echo 没有返回值,print 有返回值 1。
echo 语句
echo 或 echo() 可以包含 HTML 标签。
1 2 3
| echo "<h2>Hello World!</h2>"; echo "Hello, ", "World!"; echo "<br>";
|
print 语句
print 或 print() 可以包含 HTML 标签。
1 2
| print "<h2>Hello World!</h2>"; print "<br>";
|
EOF(heredoc)
- EOF(heredoc) 是一种在命令行 shell 和程序语言里定义一个字符串的方法。
- 位于开始标记和结束标记之间的变量可以被正常解析,但是函数不可以。
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当于 q 和 qq 的用法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php $name = "World";
$str1 = <<<EOF Hello, $name! This is a "quoted" string and it's easy to include 'single quotes' too. EOF;
$str2 = <<<'EOF' Hello, $name! This is a "quoted" string and it's easy to include 'single quotes' too. EOF;
echo $str1; echo "\n"; echo $str2; ?>
|