欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP基础知识文件加载、类和对象学习小结

程序员文章站 2022-03-06 17:53:15
...

1.文件加载

1.1 条件加载(include/include_once)

include 语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。
  1. <?php
  2. echo "<p>感谢收看-" . date("Y") .</p>";
  3. ?>
  1. <html>
  2. <body>
  3. <h1>欢迎收看!</h1>
  4. <?php include 'footer.php';?> //引用footer.php页脚文件
  5. </body>
  6. </html>
  1. <?php
  2. // include_once(): 仅允许加载一次
  3. // 全局成员:函数, 常量, 类, 接口
  4. // 不支持函数重载, 因此在同一个程序中不允许出现同名函数
  5. // include 'footer.php';
  6. // include 'footer.php';
  7. include_once 'footer.php';
  8. // include_once(): 加载前会检查该文件是否已经加载过了, 去重检查
  9. include_once 'footer.php';
  10. ?>

1.2强制加载(require/require_once)

  1. <?php
  2. // 1. require: 强制加载
  3. // 如果加载失败, 终止当前脚本, 与include不一样
  4. require 'footer.php';
  5. // 2. 强制去重加载
  6. require_once 'footer.php';
  7. require_once 'footer.php';
  8. echo '如果看到我, 说明程序没有因文件加载失败而终止';

2.类与对象

对象:实际存在该类事物中每个实物的个体。$a =new User(); 实例化后的$a
引用:php的别名,两个不同的变量名字指向相同的内容
封装: 把对象的属性和方法组织在一个类(逻辑单元)里
继承:以原有的类为基础,创建一个新类,从而代码复用的目的;
多态:允许将子类类型的指针赋值给父类类型的指针。

  1. <?php
  2. class Person{
  3. public $name;
  4. public $age;
  5. public $sex;
  6. public function who()
  7. {
  8. echo $this->name." is ".$this->age." years old and is my ".$this->sex;
  9. }
  10. }
  11. class man{
  12. public $height;
  13. public $where;
  14. public function __construct($h,$w){
  15. $this->height = $h;
  16. $this->where = $w;
  17. }
  18. }
  19. $luyaran = new Person();
  20. $luyaran->name = "luyaran";
  21. $luyaran->age = "27";
  22. $luyaran->sex = "love";
  23. $luyaran->who();
  24. echo "<br>";
  25. $man = new man($luyaran,'142');
  26. echo serialize($luyaran);
  27. $luyaran_arr = array('name'=>'luyaran','age'=>'27','sex'=>'love');
  28. echo "<br>";
  29. echo serialize($luyaran_arr);
  30. echo "<br>";
  31. var_dump($man);
  32. echo "<br>";
  33. echo serialize($man);
  34. ?>

结果:
PHP基础知识文件加载、类和对象学习小结

总结下对象和类的概念以及之间的相互关系:
1.类是定义一系列属性和操作的模板,而对象,就是把属性进行实例化,完事交给类里面的方法,进行处理。
2.对象的本质,就是数据,其本身不包含方法,但是其内部有一个指针,会指向一个类,而在这个类里面,是可以包含方法的。
3.类里面的方法描述不同的属性,因而,会产生不同的表现或者结果。
4.类和对象是不可分割的,有对象,就必定有一个类是和它相对应的,但是,由标量进行强制转化而产生的对象由PHP中,一个称为“孤儿”的stdClass类,来收容它。


3.类属性、类常量简介

3.1类的变量成员叫做“属性”,或者叫“字段”、“特征”。属性声明是由关键字public、protected或private开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,常数是指PHP脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。

  1. <?php
  2. $name="php";
  3. class A{
  4. static $v="小张";
  5. static public $v2 = <<<EOD
  6. hello world
  7. EOD;
  8. static public $v3 = <<<'EOA'
  9. $name
  10. EOA;
  11. var $var = 'a default value';
  12. public function displayVar() {
  13. echo $this->var.self::$v.$this::$v3;
  14. }
  15. }
  16. $a=new A();
  17. $a->displayVar();
  18. ?>

结果:a default value小张$name


3.2将在类中始终保持不变的值称为类常量,在定义常量时不需要使用$,而是在常量名前使用const关键字。常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。接口中也可以定义常量。

  1. <?php
  2. $name="php";
  3. class A{
  4. const cons=<<<EOD
  5. hello 小张
  6. EOD;
  7. var $var = 'a default value';
  8. public function displayVar() {
  9. echo self::cons."\n".$this::cons."\n";
  10. }
  11. }
  12. $a=new A();
  13. $a->displayVar();
  14. echo A::cons."\n";
  15. $className="A";
  16. echo $className::cons."\n";
  17. ?>

结果:hello 小张 hello 小张 hello 小张 hello 小张