PHP 变量
1、PHP 变量规则:
- 变量以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
2、PHP 变量作用域
在 PHP 中,可以在脚本的任意位置对变量进行声明。
PHP 有三种不同的变量作用域:
- local(局部):函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
- global(全局):函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
- static(静态):保护局部变量不被修改
如果要再局部访问 全局的变量,必须添加关键词:global
<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; // 输出 15 ?>
或者:
<?php $x=5;$y=10; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; // 输出 15 ?>
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
static关键词:当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。要完成这一点,在首次声明变量时使用 static 关键词
<?php function myTest() { static $x=0; echo $x; $x++; } myTest(); // 0 myTest(); // 1 myTest(); // 2 ?>
echo 和 print 语句
(字符串中可能包含 HTML 标记)
echo 和 print 之间的差异:
- echo - 能够输出一个以上的字符串
- print - 只能输出一个字符串,并始终返回 1
提示:echo 比 print 稍快,因为它不返回任何值。
PHP 数组
数组键可以是数字,也可以是字符串,但 key 会有如下的强制转换:
- 包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。
- 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。
- 布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。
- Null 会被转换为空字符串,即键名 null 实际会被储存为 ""。
- 数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。
<?php $cars=array("Volvo","BMW","SAAB"); var_dump($cars); ?>
PHP var_dump() 会返回变量的数据类型和值。
unset() 函数允许删除数组中的某个键。但要注意数组将不会重建索引。如果需要删除后重建索引,可以用 array_values() 函数。
<?php $a = array(1 => 'one', 2 => 'two', 3 => 'three'); unset($a[2]); /* will produce an array that would have been defined as $a = array(1 => 'one', 3 => 'three'); and NOT $a = array(1 => 'one', 2 =>'three'); */ $b = array_values($a); // Now $b is array(0 => 'one', 1 =>'three') ?>
PHP 对象
<?php class Car { var $color; function Car($color="green") { $this->color = $color; } function what_color() { return $this->color; } } ?>
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型。
PHP内置函数
strlen(str): 返回字符串的长度,以字符计。
strpos(str,key):用于检索字符串内指定的字符或文本,如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
<?php echo strpos("Hello world!","w"); ?>
从 HTML 中分离
凡是在一对开始和结束标记之外的内容都会被 PHP 解析器忽略,这使得 PHP 文件可以具备混合内容。 可以使 PHP 嵌入到 HTML 文档中去,但是当处于条件语句中间时,此时 PHP 解释器会根据条件判断来决定哪些输出,哪些跳过。
可以在 PHP 中使用四对不同的开始和结束标记。其中两种,<?php ?> 和 <script language="php"> </script> 总是可用的。
注意:此外注意如果将 PHP 嵌入到 XML 或 XHTML 中则需要使用 <?php ?> 标记以保持符合标准。