速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句
速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句
作者:webabcd
介绍
速战速决 之 PHP
- 概述
- 常量
- 变量
- 运算符
- 表达式
- 控制语句
示例
1、概述
basic/summary.php
<!-- PHP 概述 --> <?php echo "我在 php 开始标记和结束标记之间"; echo "<br />"; ?> <?php if (time() % 2 == 0): ?> 我是 html(用于演示 php 和 html 混编) <br /> <?php else: ?> 这里是 html(用于演示 php 和 html 混编) <br /> <?php endif; ?> <?php echo "可以没有 php 结束标记"; echo "<br />";
2、常量
basic/constant.php
<?php /** * 常量 */ // 用 define 来定义常量 define("MyConst1", "MyConst1"); echo MyConst1; echo "<br />"; // 在 PHP 5.3.0 之后支持用 const 来定义常量 const MyConst2 = "MyConst2"; echo MyConst2; echo "<br />"; /** * 魔术常量(magic constant) * * 魔术常量,在不同的场景下会有不同的值 */ // __LINE__ - 文件中的当前行号, 由其在脚本中所处的行来决定 echo __LINE__; echo "<br />"; // __FILE__ - 当前文件的完整路径和文件名,如果用在被包含文件中,则返回被包含的文件名 echo __FILE__; echo "<br />"; // __DIR__ - 文件所在的目录,如果用在被包括文件中,则返回被包括的文件所在的目录 echo __DIR__; echo "<br />"; // __FUNCTION__ - 函数名称 // __CLASS__ - 类名称 // __METHOD__ - 方法名称 // __NAMESPACE__ - 命名空间名称 // __TRAIT__ - Trait 名称
3、变量
basic/variable.php
<?php /** * 变量 */ // 通过 $ 定义变量 $a = "a"; // 通过 $ 使用变量 echo $a; // output: a echo "<br />"; // 通过 $ 使用变量,即使外面加了双引号也同样会使用变量 echo "$a"; // output: a echo "<br />"; // 通过 {} 界定变量名称,比如"$ab",php会使用变量$ab,而实际上我们想要使用的是$a,此时就可以通过 {} 来界定变量名称,如下: echo "{$a}b"; // output: ab echo "<br />"; // 外面加双引号,但是不想使用变量的话,可以通过转移符“\”来将“$”变成字符串 echo "\$a"; // output: $a echo "<br />"; // 外面加单引号的话就按字符串处理了 echo '$a'; // output: $a echo "<br />"; // 变量之间赋值 $b = $a; // 通过 & 定义引用。下面的例子是让 $c 引用 $a $c = &$a; // 为 $a 重新赋值 $a = "aa"; echo "$b"; // output: a echo "<br />"; echo "$c"; // output: aa echo "<br />"; function f1() { // 这里的 $a 引用的是局部变量 $a,然而之前在 f1 这个局部范围内并没有定义 $a,所以你要使用 $a 的话它是不会有任何内容的 echo $a; // output: echo "<br />"; } f1(); function f2() { // 通过 global 关键字标记 $a,则在此局部范围之后,再使用 $a 时将会使用全局版本的 $a global $a; echo $a; // output: aa echo "<br />"; } f2(); function f3() { // 通过 $GLOBALS 直接使用指定变量的全局版本 echo $GLOBALS['a']; // output: aa echo "<br />"; } f3(); function f4() { // 通过 static 来定义静态变量,其常驻内存 static $i = 0; echo $i; echo "<br />"; $i++; } f4(); // output: 0 f4(); // output: 1 f4(); // output: 2 $x = "aaa"; // variable variables(可变变量),将变量的值作为变量名 // 下面这句等同于 $aaa = "bbb";(因为 $x 的值是 aaa,所以 $$x 等同于 $aaa) $$x = "bbb"; echo $aaa; // output: bbb echo "<br />"; echo $$x; // output: bbb echo "<br />"; $s = "12345"; // 大括号的作用: 用于指示字符串变量中的单个字符(下标从 0 开始) $s{1} = 'x'; echo $s; // output: 1x345 echo "<br />"; // 大括号的作用: 用于界定变量的名称(比如下面使用的变量是 $s,而不是 $ss) echo "{$s}s"; // output: 1x345s echo "<br />";
4、运算符, 表达式, 控制语句
basic/statement.php
<?php /** * 运算符,表达式,控制语句 */ // 运算符,表达式,控制语句和其他的语言都差不多 // 以下写一些个人认为需要强调的东西 // . 字符串运算符 $s1 = "hello "; $s2 = "webabcd"; $s3 = $s1 . $s2; echo $s3; // output: hello webabcd echo "<br />"; $s1 .= "wanglei"; // output: hello wanglei echo $s1; echo "<br />"; // == 和 === 的区别 $a1 = "1"; // 字符串 $b1 = 1; // 整型 $c1 = "1"; // 字符串 if ($a1 == $b1) // 两个不同类型的数据做 == 比较,系统会自动转换 { echo '$a1 == $b1'; // output: $a1 == $b1 echo "<br />"; } if ($a1 === $b1) // 两个不同类型的数据做 === 比较,系统不会自动转换 { // 不成立 } if ($a1 === $c1) { echo '$a1 === $c1'; // output: $a1 === $c1 echo "<br />"; } // 对于 {} 方式的或者省略了 {} 方式的 if/else 语句来说,elseif 和 else if 是一样的 if (1 == 2) echo "1 == 2"; else if (1 == 1) echo "1 == 1"; elseif (2 == 2) echo "2 == 2"; else echo "else"; echo "<br />"; // 对于 : 方式的 if/else 语句来说,只能用 elseif 而不用能 else if if (1 == 2): echo "1 == 2"; // else if (1 == 1): // echo "1 == 1"; elseif (2 == 2): echo "2 == 2"; else: echo "else"; endif; echo "<br />"; // foreach 语句的用法 $array1 = array(1, 2, 3, 4); foreach ($array1 as $value) { echo $value; echo "<br />"; } foreach ($array1 as $key => $value) { echo $key . " - " . $value; echo "<br />"; } // try catch finally 的用法 try { echo "try"; echo "<br />"; throw new Exception("error message", 999); // 要想写自定义的 Exception 的话,就继承 Exception 就好 } catch (Exception $ex) { echo "catch"; echo "<br />"; echo sprintf("message: %s, code: %d, file: %s, line: %d, trace: %s", $ex->getMessage(), $ex->getCode(), $ex->getFile(), $ex->getLine(), $ex->getTraceAsString()); echo "<br />"; } finally { echo "finally"; echo "<br />"; }
OK
[源码下载]