一、运算符
和js中的运算符大同小异
区别:
(1)字符串的拼接符号不再是+加号运算符,而是.点运算符。
(2)字符串内的+=运算符号也不再表示拼接,而是使用.=来进行拼接。原本的+=仅用来单纯的数学运算累加。
例子:
<?php
echo '<pre>';
$str1 = '123';
$str2 = 'hi';
var_dump($str1+='789');//912 隐式转换
echo '<br>';
var_dump($str1.=$str2);//string(5) "912hi"
echo '<br>';
$num1=10;
$num2=20;
echo $num1+$num2;//30
echo '<br>';
echo $num1.=$num2;//1020
echo '<br>';
var_dump( ($num1==11)&&($num2==20));
?>
二、流程控制
php中流程控制语句与js中的流程控制语句语法基本一样,什么if、for、while、do...while,可以直接使用
php中不但包括了js中原有的语句,还新添加了一些流程控制
快速遍历不再是for-in结构,而是提供了一个foreach语句
文件引入语句include和require,文件的单次引入语句include_once和require_once
1.foreach快速遍历
描述:foreach语法结构提供了遍历数组的简单方式,foreach仅能够应用于数组和对象,如果尝试应用于其它数据类型的变量或者未初始化的变量将会发出错误信息
语法:foreach(array_expression as $value){
statement
}或者
foreach(array_expression as $key=>$value){
statement
}
注意:
a.第一种格式遍历给定的array_expression数组。每次循环中,当前单元的值被赋给$value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)
b.第二种格式做同样的事情,只除了当前单元的键名也会在每次循环中被赋给变量$key
例子:
<?php
$arr = [1,2,3,5,9];
foreach($arr as $value) {
echo $value.'<br>';
}
foreach($arr as $index=>$value){
echo '$arr[$index]:'.$value."<br>";
}
?>
2.inclue和require 导入外部文件
描述:include和require语句都表示包含并运行指定文件,但未找到文件时,include会发出一条警告,而require会发出一个致命错误
语法:include '文件名|文件路径';
注意:
a.当一个文件被包含时,其中所包含的代码继承了include所在行的变量范围,从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用
b.不过所有在包含文件中定义的函数和类都具有全局作用域
例子:
<?php
include 'beixi.php';
echo "AAA $beixi";
?>
<?php
//beixi.php
$beixi='beixi';
?>
3.函数
php中的函数结构和js中的函数结构基本持有相同的语法结构和特征
例如:
函数的声明语法由function命令声明
函数参数写在小括号内部
函数返回值在函数内部采用return关键词声明
函数可以先使用后声明
函数内部返回的函数(闭包)
php中的作用域也采用函数级别,因此函数内部的变量无法在函数外部直接访问
...
但是php中函数的作用域部分与js中的函数还是存在一些区别
例如:
在函数外部定义的全局变量并不能在函数内部直接使用,而是需要通过关键词global在函数内部再次声明才可以。
例子:
<?php
$num=100;//全局变量
echo '---1.'.$num.'------';
echo '<br>';
function test(){
global $num;
$num++;
echo '---2.'.$num.'------';
}
test();//函数调用
echo '<br>';
echo '---3.'.$num.'------';
?>