一、语法
1. PHP 代码的开始标记
PHP代码以结束 。这主要是因为PHP在创建之初是为了方便写网页,所以大部分代码是嵌入到html页面里面的,PHP文件允许包含除了PHP代码外的其他内容。为了区别html代码和PHP代码,PHP文件里面PHP代码会包含在之间,标记之外的内容会原样输出。
注意:
a. 早期的代码也有使用 和 ?> 标记的。
b. 后来因为web开发流行MVC模式,开始前后端分离,前端更多使用模板渲染,甚至最近几年流行的mvvm已经不需要服务端来渲染页面。所以为了让PHP在执行过程中,项目文件太多的情况下,不至于在输出结果中输出额外的空白字符,现在PHP文件一般 会顶格,文件末尾的 ?> 会省去,这样整个文件都当作PHP代码,不会原样输出 ?> 之后可能存在的空格。
c. PHP文件 编码 一般使用 utf-8不带bom 。因为某些情况下,bom会输出多余的不可见字符,产生不好排查的疑难bug。至于gbk之类的编码,只有比较老的系统使用,在和utf-8混用极易产生乱码。
2. 基本语法
a. 变量和常量
1,"key1"=>2];//类似于其他语言hashmap的形式
[ 10,"key"=>1,];//混合形式,此处10的key是0,数组定义时未指定key的,会从0开始赋值
[10=>1,2];//如果key为数字,则后面元素key从此元素的key开始增加,2的key是11
//数组有一些基本的操作,
$a []= 10;//不指定key的时候,会将元素添加到数组末尾
array_push($a,10);//和上面等价
$a+$b;//此操作和array_merge类似,但有一些不同,至于具体什么不同,可以自己实验一下,或者去翻PHP的文档。这里是常见的面试题。
//常量分为下面两种
define("A_CONSTANT",1);//define定义的常量是全局作用的,重复定义会报一个notice,
//这里注意的是一般常量不要用两个下划线开头(__),因为内置的全局变量常常以此开头,避免重复。
//其次常量一般大写以表明是常量。
const A_CONSTANT=1;//此种定义常量如果在类定义体里面声明的话,需要通过类名来引用
class A {
const A_CONSTANT=1;
}
//使用方式是 A::A_CONSTANT
b. 判断语句
c. 循环语句
PHP的循环语句有几种形式,
$value){echo $value;}
//这里的“=>”表示数组的key和value,如果不需要key,可以只写value,不包括前面的"$key=>"
//c-style的for,和其他语言一样
while($index<10){echo $index;$index++;}
//do-while,会在判断条件前先执行一次,有时候用作某些判断条件需要根据第一次执行结果的逻辑实现
do{}while()
//有几个关键词用在循环语句中, break ,continue,分别指的是中断循环以及之间跳过这一次循环
//注意break和continue除了常见的形式,在PHP里还有一种形式:break 1;
//关键词后加一个数字,表明跳出几层循环,1指的是当层循环
//switch-case语句和循环一样可以使用break和continue
d. switch-case
- 函数,类,命名空间
protected / private 是访问修饰符,表示的是类成员的可见范围
//public表示类内部,父类,子类,外部都可访问
//protected 表示类内部,父类,子类可以访问
//private 表示 只有类内部可以访问,
//protected和private成员,按照规范,一般下划线开始
public $publicVar=0;
protected $_protectedVar=0;
private $_privateVar=0;
//方法的声明类似
public function getPublicVar(){
//注意这里写法,$this表示当前类的实例,$this->publicVar指的就是上面声明的 public $publicVar
return $this->publicVar;
}
}
//命名空间,用于组织隔离代码
namespace N;
代码练习: 快速排序
介绍了基本的语法,这里肯定还有一些细节无法尽述,我尽量把语法里最基本的核心部分介绍了一下。这些内容可以说是提纲,同时掌握这些语法,至少基本的代码已经可以实现了,要想学习更多更详细的内容请查看php的官方网站。
为了熟练掌握使用这些语法知识,我们需要实践练习一些编码题目。编程说到底是一个工程方面的技能,需要不断的练习和实践才能更深入掌握。这里,我们来用php实现一个 快速排序算法 。快速排序是非常常见和实用的排序算法,这里给出一个简单的示例,主要用于演示语法。实际因为效率问题,可能会用更多的优化方式,同时会增加自定义的排序比较方法,更加灵活,满足更普遍的排序需求。
$arr[$base]){
$bigger []= $item;
}elseif($item==$arr[$base]){
$equal []= $item;
}else{
$smaller []= $item;
}
}
return array_merge(qsort($bigger),$equal,qsort($smaller));
}
print_r(qsort([23,5,7,84,22,454,2,54,63,2,6786,232]));
把上面代码保存为study2.php,执行。
看结果,没错,已经是有序排列了,而且是按照预想的排序方式,降序排列。大家可以根据快速排序算法自己写或者改进代码,通过写代码来熟悉语法。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~