php 第一次课

 

1   基本语法

我们根据 1.3 节创建的示例来进一步讲解 PHP 中的基本语法。

1. 变量

PHP 是弱类型语言,不要求使用变量之前声明变量。在第一次给变量赋值时,该变量才被创建。赋值的同时指定了该变量的类型。

PHP 基本数据类型包括:Integer 整数,Float/Double 浮点数/实数,String 字符串,Boolean 布尔(true 或 false),Array 数组,Object 对象。

此外还有两个特殊类型:NULL (空) 和 resource (资源)。

例如:

$tshirt = 0; // tshirt 是整数类型变量
$cash = 0.00; //cash 是浮点类型的变量

注意:若我们继续将 cash 赋其他值,如:

$cash = 'Hello Unix-Center';

cash 变量会改变为字符串类型。因此,请记住:PHP 将自动获得输入的数据类型。

如需类型转换,可以用圆括号实现,类似 C 语言;或者用 inval(), floatval(), strval() 函数,其中 intval 可以用来整数的进制转换:

$cash = (float)$tshirt

在 PHP 中提供了一种“可变变量”,允许我们动态的改变一个变量的名称。例如:

$varname = 'tshirt'

于是我们就可以用 $$varname 取代 $tshirt,设置 $tshirt 值。

$$varname = 5; // 等价于 $tshirt = 5;

测试变量类型和设置变量类型可以用 gettype() 和 settype() 两个函数。

测试变量状态(是否存在),可以用 isset() 函数,而 unset() 函数用来销毁一个变量。empty() 可以用来检查变量是否存在且值是否为非空或非0。

2. 常量

常量名称由大写字母组成,使用 define 函数定义常量。常量只可以保存:布尔、整数、浮点或字符串数据,均为标量数据。

define('TSHIRTPRICE', 100);

常量可以直接使用,不用 $,例如:

echo TSHIRTPRICE;

我们在 1.2 节中运行的 phpinfo() 中,显示的就是 PHP 预定义常量和变量的列表,以及其他有用信息。

3. 作用域

PHP 作用域基本规则如下:

  • 内置超级全局变量可以在任何地方使用和可见。
  • 常量声明后全局可见。
  • 一个脚本中声明的全局变量在整个脚本中可见,但不是在函数内部。
  • 函数内部创建并被声明为静态的变量无法在函数外部可见,但可以在函数的多次执行过程中保持该值。
  • 函数内部使用的变量声明为全局变量时,名称要与全局变量名称一致。
  • 函数内部创建的变量对函数来说是本地的,函数终止时变量也就不存在了。

超级全局变量列表如下:

  • $GLOBALS:全局变量数组
  • $_SERVER:服务器环境变量数组
  • $_GET:GET 方法传递的变量数组
  • $_POST:POST 方法传递的变量数组
  • $_COOKIE:cookie 变量数组
  • $_FILES:文件上传有关的变量数组
  • $_ENV:环境变量数组
  • $_REQUEST:用户请求的变量数组
  • $_SESSION:会话变量数组

4. 操作符

算术操作符:+ 加,- 减,* 乘, / 除, % 取余。

例如:

$total = $a + $b

注意:

  • PHP 会自动将字符串转换为数字,PHP 会在字符串开始处寻找数字,并使用这些数字作为该字符串的值,若没有,则值为0。
  • 字符串连接用句号(.)。

赋值操作符:=。

复合赋值:$a += $b 对应 $a = $a + $b。其他符号类似:-=, *=, /=, %=, .=。

前置/后置递增/递减,区别如例:

$a = 4; echo ++$a; // 输出为5,$a 为5。(先++)

$a = 4; echo $a++; // 输出为4,$a 为5。(后++)

引用操作符:&,类似取地址,可用于产生变量副本。引用就像一个别名,而不是指针。例如:

$a = 5;
$b = &$a;
$a = 7;

那么 $a 和 $b 指向了内存相同地址,现在都是7。

unset($a):改变所指向的地址,可以破坏 $a 和值7保存在内存中的连接。

比较操作符:==,两个等号,判断两个值是否相等。===,三个等号是恒等比较,需要值相等并且相同的数据类型时才返回 true。此外还有:!= 不等,!== 不恒等,<> 不等,< 小于,> 大于,<= 小于等于,>= 大于等于。

逻辑操作符:! 非,&& 与,|| 或,and 与,or 或。(其中 and 和 or 要比 && 和 || 优先级低)

位操作符:& 按位与,| 按位或,~ 按位非,^ 按位异或,<< 左位移,>> 右位移。

数组元素操作符:[] 访问数组元素,++ 联合,== 等价,=== 恒等,!= 非等价,<> 非等价,!== 非恒等。

其他操作符,包括:

  • 三元操作符:条件?真:假,例如:($score >= 70 ? '通过' : '不及格')。
  • 逗号(,)用于分隔函数参数列表或其他列表项。
  • 三个面向对象方面的操作符:new 初始化实例,-> 访问类成员,instanceof 检查一个对象是否是特定类的实例。
  • 抑制错误:@,例如:$a = @(57/0); 除0警告将被抑制。
  • 执行操作符:反向单引号(``),用作执行服务器端命令。
    如:在 Solaris 上 $out = `ls -la`; echo '<pre>'.$out.'</pre>'; 或在 Windows 上$out = `dir c:`; echo '<pre>'.$out.'</pre>'; 都将会执行打印服务器端目录列表命令,并显示在浏览器上。

1.5 控制结构

1. 判断结构

第一种,单一条件:

if (判断条件)
  {执行语句块}
else
  {执行语句块}

也可以继续向下添加条件 elseif 和 else if 均可。

第二种,多重条件:

switch(判断变量)
{ 
  case '..': 执行语句; break;
  case '..': 执行语句; break;
  ...
  default: 执行语句; break;
}

2. 循环结构

当不知道重复次数,可以用 while 循环,先判断,再循环:

while (条件)
{执行语句块}

当知道重复次数,可以用 for 循环:

for (初始化; 判断; 调整)
{执行语句块}

另外 foreach 循环语句专用于数组,将在后面介绍。

如果需要先循环,再判断,可以用 do-while 循环:

do
{执行语句块}
while (条件)

do-while 循环会至少执行一次。

而在控制和终止循环方面:

  • 终止一个循环用:break;
  • 希望跳到下一次循环用:continue;
  • 结束整个 PHP 脚本执行用:exit;

另外在控制结构中还有一个可替换的语法形式,冒号(微笑替换开始花括号({),结束关键字(包括 endif, endswitch, endwhile, endfor 或 endforeach)替代关闭花括号(})。

3. declare 结构

形式如下:

declare (指令)
{
// 代码块
}

该结构用于设置代码块的执行指令。目前只有 ticks=n 可以设置代码块每隔 n 行代码运行特定函数,这有助于调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值