php基础知识

时间:2024-10-08 09:50:04 PHP 我要投稿
  • 相关推荐

php基础知识大全

  PHP是一种非常流行的开源服务器端脚本语言,下面小编整理了php基础知识大全,希望对大家有帮助!

php基础知识大全

  PHP 标记

  当解析一个文件时,PHP 会寻找起始和结束标记,也就是 ,这告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略

  PHP 也支持其他标记,但是!由于各种原因和理由,请只使用“”

  echo 'hello world';

  ?>

  PHP 支持 8 种原始数据类型

  四种标量类型:布尔型、整型、浮点型、字符串

  两种复合类型:数组、对象

  两种特殊类型:资源、null

  // 布尔型:true 和 false

  $var = true;

  // 整型

  $var = 1;

  // 浮点型

  $var = 3.14;

  // 字符串

  $var = 'girl friend';

  // 数组

  $var = [true, 1, 3.14, 'girl friend'];

  //对象

  class Test{

  public $value = '';

  }

  $var = new Test();// 类Test的对象

  // 资源类型指文件、数据库等句柄,因此这里不举例

  // null

  $var = null;

  变量

  PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的

  一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线

  如:$var 、 $_var 、 $_1 、 $var1 ……

  不合法变量的例子: $1 、1 、 var ……

  PHP 的变量是动态设置和使用的,这表示,你不需要像 java 等语言那样,需要使用一个前缀(或其他)的方式去声明一个变量的类型,而且,PHP 变量的类型是根据上下文语境去判定,因此上面关于类型的例子是可以成功执行的,$var 最终的值会变成 null

  常量

  常量是一个简单值的标识符(名字),常量默认为大小写敏感。传统上常量标识符总是大写的

  下面这个出现在 C 语言的笑话,在 PHP 里是行不通的,所以,不要和蠢萌的新手开这种玩笑了,同时也建议,不要随便定义系统自带的值,因为常量一旦被定义,就无法重新定义!

  define("TRUE", false);

  运算符

  这一块和你认识的其他语言的运算符类似,比如 + 就是加法等等,这里只说明一些需要注意的,具体的在具体篇幅里会详细介绍

  算术运算符:+,-,*,/,%(求余)

  = 是赋值号,== 是等于号,=== 是全等于(会比较类型),等号还有类似的 != 和 !==

  @ 是错误控制运算符,可以抑制之后的表达式产生的错误,不要依赖它,因为,耗性能以及让别人无法找出 bug

  位运算符:& 按位与,| 按位或,^ 按位异或,~ 按位取反,<< 左移,>> 右移

  逻辑运算符:and,or,not 或者 &&,||,!,请一定使用后者,前者可能导致一些问题

  递增(减)运算符:++,–

  字符串拼接: ‘hello’ . ‘world’

  数组运算符:+联合,==等于,===全等于(会比较键值对顺序),还有类似的不等于!= 和 !==,用得不多,没有人用这种方式去比较数组,毕竟 PHP 函数很强大

  类型运算符:instanceof

  流程控制

  if 语句

  if (true) {

  // 这个分支并不是一个笑话,你可以在注释某一段代码时使用,而且这种写法适用于所有的程序

  }elseif ( $var == 1) {

  // == 是等于,在类型不一致时 PHP 会尝试强制转换

  // 尤其注意数字的强制转换,PHP 会尝试把和数字比较的东西转换成数字去比较

  // 因此 '1a' == 1 是成立的,a会被丢掉

  }else if ( 1 === $var ) {

  // 基于 == 的不靠谱比较,请明确了解变量类型时,使用 === 代替 ==

  // 并且让常量放在前面是一个好习惯,不会因为少写了等号变成赋值号而出现意外

  }else {

  // 以上是关于 if 的需要注意的细节以及 if 流程控制的用法,我是不是太懒了

  }

  for 语句

  for (expr1; expr2; expr3)

  for ($i = 1; $i <=10; $i++){...code...}

  请不要在 for 循环的上面三个表达式当中写函数,因为每次循环都会执行一遍

  如果要循环数组,最好使用 foreach

  foreach( $array as $key => $value) {}

  此外还有 while 和 do … while 循环,这个和其他语言是类似的,值得一提的是,在 PHP 的编程之中,使用 foreach 的频率最高,因为 PHP 的最终运算都是数组以及字符串(所以你看 PHP 的数组和字符串函数是不是特别多和强大)

  可以使用 break 和 continue 跳过循环

  switch 语句

  switch($var) {

  case 1:

  ...code...

  break;

  case 2:

  ...code...

  default:

  ...code...

  }

  include 语句

  包含并运行指定文件

  require 语句和 include 基本等价,暂时不用区分

  include_once 以及 require_once 语句不会重复包含文件,这是和 include 以及 require 的区别

  include 'test.php';

  其他

  goto 语句、declare 语句

  函数

  function test($var1, &$var3, $var2 = 1) {

  ...code...

  return $result;

  }

  这是一个函数的定义,其中 $var1 是必填参数,$var2 带有一个默认值,是可选参数,必填参数不能放在可选参数之后

  return 会返回一个函数的值

  参数可以使用引用参数,如 $var3,这样你就可以带多个参数出来了,这种函数在 PHP 自带的函数里很常见

  关于函数的内容,和其他语言类似,也有局部变量、全局变量、闭包等,这里暂时先不讨论

  类与对象

  每个类的定义都以关键字 class 开头,后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义,类对大小写不敏感

  一个类可以包含有属于自己的常量,变量(称为“属性”)以及函数(称为“方法”)

  class A{

  public $var1 = 1;

  protected $var2;

  private $var3;

  public function test(){}

  }

  当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用

  class A{

  ...code...

  public function test(){

  return $this->var2; // protected 属性 $var2 没有初始化,因此返回一个null

  }

  }

  要创建一个类的实例,必须使用 new 关键字

  ...code...

  $a = new A();

  一个类可以在声明中用 extends 关键字继承另一个类的方法和属性。PHP不支持多重继承,一个类只能继承一个基类

  class B extends A {

  ...code...

  }

  命名空间

  PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径,用来解决名字冲突或者不好起名字的问题

  命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间

  namespace MyTest;

  ...code...

  由于在我们在讨论 PHP 的时候,可能大多数情况都是讲网站,而如今 PHP 出现了大量的 web 框架,这些框架大多数也使用了命名空间(PHP 5.3 以下没有命名空间),而他们基本上都会一个 PHP 文件对应一个类,因此,我们给命名空间命名的时候基本遵循和类的名字一致,都是大驼峰写法

  异常处理

  function inverse($num){

  if ($num == 0) {

  throw new Exception('错误:分母为0!');

  }

  return 1 / $num;

  }

  try {

  echo inverse(2); // 返回 0.5

  echo inverse(0); // 抛出异常

  } catch (Exception $e) {

  echo $e->getMessage();

  }

  我们想要写一个计算倒数的函数,在函数里,我们必须自己判断分母是不是等于 0, 然后把异常抛出。


【php基础知识】相关文章:

Linux认证基础知识:php相对路径和绝对路径05-03

关于php面试宝典及PHP面试技巧08-16

PHP的压缩函数06-21

php高级教程01-23

如何学好PHP知识09-20

 PHP的基础编程与应用10-16

浅析php函数的实例06-08

配置 PHP 调试环境07-20

PHP的错误机制总结09-09

《PHP编程最快明白》第八讲:php启发和小结07-13