博客列表 >实例演示文件包含中的include与require,类与实例化,实例成员与静态成员以及魔术方法

实例演示文件包含中的include与require,类与实例化,实例成员与静态成员以及魔术方法

P粉479712293
P粉479712293原创
2022年11月07日 23:05:28443浏览

题目1:文件包含中的include与require以及它们的相同点

1)demo1.php文件:

  1. <?php
  2. // *文件包含中的include与require以及它们的相同点
  3. // *1.include:将外部文件的内容,插入到当前的文件
  4. include 'inc/a.php';
  5. echo 'inc/a.php'.'<br>';
  6. echo $username.'<br>';
  7. echo __DIR__ . DIRECTORY_SEPARATOR
  8. .'inc'. DIRECTORY_SEPARATOR.'a.php'.'<br>';
  9. echo $username.'<br>';
  10. include __DIR__ . '/inc/a.php';
  11. echo __DIR__ . '/inc/a.php'.'<br>';
  12. echo $username.'<br>';
  13. $username1=include __DIR__ .'/inc/a1.php';
  14. echo $username1.'<br>';
  15. $user=include __DIR__ . '/inc/a2.php';
  16. list('username2'=>$username2,'nickname'=>$nickname)=$user;
  17. echo $username2,',',$nickname.'<br>';
  18. // *或者用这种方式:
  19. vprintf('%s,%s',$user);
  20. echo '<hr>';
  21. // *2.require:将外部文件的内容,插入到当前的文件
  22. require 'inc/a.php';
  23. echo 'inc/a.php'.'<br>';
  24. echo $username.'<br>';
  25. echo __DIR__ . DIRECTORY_SEPARATOR
  26. .'inc'. DIRECTORY_SEPARATOR.'a.php'.'<br>';
  27. echo $username.'<br>';
  28. require __DIR__ . '/inc/a.php';
  29. echo __DIR__ . '/inc/a.php'.'<br>';
  30. echo $username.'<br>';
  31. $username1=require __DIR__ .'/inc/a1.php';
  32. echo $username1.'<br>';
  33. $user=require __DIR__ . '/inc/a2.php';
  34. list('username2'=>$username2,'nickname'=>$nickname)=$user;
  35. echo $username2,',',$nickname.'<br>';
  36. // *或者用这种方式:
  37. vprintf('%s,%s',$user);

外部文件:a.php

  1. <?php
  2. $username='刘备';

外部文件:a1.php

  1. <?php
  2. return '曹操';

外部文件:a2.php

  1. <?php
  2. // *当外部文件有多个返回值时
  3. return[
  4. 'username2'=>'关羽',
  5. 'nickname'=>'千里走单骑'
  6. ];

2)浏览器运行效果图:

题目2:文件包含中的include与require以及它们的不相同点

1)demo2.php文件:

  1. <?php
  2. // *文件包含中的include与require以及它们的不相同点
  3. // *1.当include包含了一个并不存在的外部文件时,虽会引起警告,但还能工作
  4. $username=include __DIR__ .'/inc/a111.php';
  5. echo '<h2>welcome php</h2>';
  6. echo '<hr>';
  7. // *2.当require包含了一个并不存在的外部文件时,不但提出了警告,还提出了致命错误,故不能再工作
  8. $username=require __DIR__ .'/inc/a111.php';
  9. echo '<h2>welcome php</h2>';

2)浏览器运行效果图:

题目3:网页中把页眉,主体,页脚作为外部文件的内容再加以引用的实例

1)demo3.php文件:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>网页中把页眉,主体,页脚作为外部文件的内容再加以引用的实例</title>
  8. </head>
  9. <body>
  10. <!-- 页眉 -->
  11. <?php include __DIR__ .'/inc/a3a.php'?>
  12. <!-- 主体 -->
  13. <?php include __DIR__ .'/inc/a3b.php'?>
  14. <!-- 页脚 -->
  15. <?php include __DIR__ .'/inc/a3c.php'?>
  16. </body>
  17. </html>

外部文件:a3a.php

  1. <header>
  2. <nav>
  3. <a href="">首页</a>
  4. <a href="">三国教学视频</a>
  5. <a href="">学习路径</a>
  6. <a href="">技术文章</a>
  7. </nav>
  8. </header>

外部文件:a3b.php

  1. <main>
  2. <ul>
  3. <li><a href="">最新教学视频1</a></li>
  4. <li><a href="">最新教学视频2</a></li>
  5. <li><a href="">最新教学视频3</a></li>
  6. <li><a href="">最新教学视频4</a></li>
  7. <li><a href="">最新教学视频5</a></li>
  8. <li><a href="">最新教学视频6</a></li>
  9. <li><a href="">最新教学视频7</a></li>
  10. <li><a href="">最新教学视频8</a></li>
  11. <li><a href="">最新教学视频9</a></li>
  12. <li><a href="">最新教学视频10</a></li>
  13. <li><a href="">最新教学视频11</a></li>
  14. <li><a href="">最新教学视频12</a></li>
  15. </ul>
  16. </main>

外部文件:a3c.php

  1. <footer>
  2. <div class="copy">三国版权所有&copy;2020-2050</div>
  3. </footer>

2)浏览器运行效果图:

题目4:类的声明与实例化

1)demo4.php文件:

  1. <?php
  2. // *类的声明与实例化
  3. // *1.类的声明
  4. class SanGuo
  5. {
  6. }
  7. // *2.类的实例化->对象
  8. $sanguo=new SanGuo();
  9. // *3.判断一个实例是否属于某个类
  10. var_dump($sanguo instanceof SanGuo);
  11. echo '<br>';
  12. // *4.直接获取某个对象的类
  13. echo get_class($sanguo).'<br>';
  14. // *5.一个类保存到一个变量中,这个变量就成了动态类
  15. $controller='SanGuo';
  16. // *6.从动态类new出一个实例
  17. $con=new $controller();
  18. // *7.这个实例就是被那个类抛出的
  19. var_dump($con);

2)浏览器运行效果图:

题目5:类的成员中的实例成员中的属性与方法

1)demo5.php文件:

  1. <?php
  2. // *类的成员中的实例成员中的属性与方法
  3. // *1.实例成员
  4. class SanGuo{
  5. // *1.属性
  6. public $username='诸葛亮';
  7. public $nickname='孔明';
  8. private $ploy='草船借箭';
  9. // *2.方法
  10. public function getPloy(){
  11. $sanguo=new SanGuo();
  12. return $this->ploy;
  13. }
  14. }
  15. // *3.实例化
  16. $sanguo=new SanGuo();
  17. echo $sanguo->username,'<br>';
  18. echo $sanguo->nickname,'<br>';
  19. echo $sanguo->getPloy();

2)浏览器运行效果图:

题目6:魔术方法之一:获取器:__get(属性)

1)demo6.php文件:

  1. <?php
  2. // *魔术方法之一:获取器:__get(属性)
  3. // *1.设置一个类
  4. class SanGuo{
  5. // *2.属性
  6. public $username='诸葛亮';
  7. public $role='军师';
  8. private $age=51;
  9. private $ploy='借东风';
  10. // *3.方法->魔术方法->获取器:__get(属性)
  11. public function __get($name)
  12. {
  13. return $this->$name;
  14. }
  15. }
  16. // *4.实例化
  17. $sanguo=new SanGuo();
  18. echo $sanguo->username,'<br>';
  19. echo $sanguo->role,'<br>';
  20. echo $sanguo->age ,'<br>';
  21. echo $sanguo->ploy,'<br>';

2)浏览器运行效果图:

题目7:

1)demo7.php文件:

  1. // *1.设置一个类
  2. class SanGuo{
  3. // *2.属性
  4. public $username='诸葛亮';
  5. public $role='军师';
  6. private $age=28;
  7. private $ploy='借东风';
  8. // *3.方法->魔术方法->获取器:__get(属性)
  9. public function __get($name)
  10. {
  11. if($name==='ploy'){
  12. if($this->role==='军师'){
  13. return $this->$name;
  14. }else{
  15. return $this->$name='null';
  16. }
  17. }
  18. }
  19. public function __set($name,$value){
  20. if($name==='age'){
  21. if($value>=18 && $value <= 54){
  22. echo $this->$name=$value;
  23. }else{
  24. echo '他已经不在人世间了';
  25. }
  26. }
  27. }
  28. }
  29. // *4.实例化
  30. $sanguo=new SanGuo();
  31. echo $sanguo->username,'<br>';
  32. echo $sanguo->role,'<br>';
  33. echo $sanguo->ploy,'<br>';
  34. $sanguo->age = 57;

2)浏览器运行效果图:

题目8:

1)demo8.php文件:

  1. <?php
  2. // *实例成员中的构造函数
  3. // *1.设置一个类
  4. class SanGuo1{
  5. //*2.属性:当前类实例的状态(属性值)应由用户来决定,而不应由系统写死,故现在的属性值属于待定状态
  6. public $username;
  7. public $role;
  8. private $age;
  9. private $ploy;
  10. //*3.方法->构造方法:public function __construct(参数列表){...}(实例化该类时,会自动触发)
  11. public function __construct($username,$role,$age,$ploy)
  12. {
  13. $this->username=$username;
  14. $this->role=$role;
  15. $this->age=$age;
  16. $this->ploy=$ploy;
  17. }
  18. // *4.方法->魔术方法->获取器:__get(属性)
  19. public function __get($name)
  20. {
  21. return $this->$name;
  22. }
  23. }
  24. // *4.实例化
  25. $sanguo1=new SanGuo1('诸葛亮','军师','28','空城计');
  26. echo $sanguo1->username,'<br>';
  27. echo $sanguo1->role,'<br>';
  28. echo $sanguo1->age ,'<br>';
  29. echo $sanguo1->ploy,'<br>';

2)浏览器运行效果图:

题目9:

1)demo9.php文件:

  1. <?php
  2. // *静态成员
  3. // *1.设置一个类
  4. class SanGuo1{
  5. //*2.属性:当前类实例的状态(属性值)应由用户来决定,而不应由系统写死,故现在的属性值属于待定状态
  6. public $username;
  7. public $role;
  8. private $age;
  9. private $ploy;
  10. //*3.方法->构造方法:public function __construct(参数列表){...}(实例化该类时,会自动触发)
  11. public function __construct($username,$role,$age,$ploy)
  12. {
  13. $this->username=$username;
  14. $this->role=$role;
  15. $this->age=$age;
  16. $this->ploy=$ploy;
  17. }
  18. // *4.方法->魔术方法->获取器:__get(属性)(访问私密属性)
  19. public function __get($name)
  20. {
  21. return $this->$name;
  22. }
  23. // *5.静态成员
  24. public static $nation='蜀国';
  25. // *6.静态方法
  26. public static function sanguo(){
  27. return '诸葛亮是'.self::$nation.'的宰相';
  28. }
  29. }
  30. // *7.实例化
  31. $sanguo1=new SanGuo1('诸葛亮','军师','28','空城计');
  32. echo $sanguo1->username,'<br>';
  33. echo $sanguo1->role,'<br>';
  34. echo $sanguo1->age ,'<br>';
  35. echo $sanguo1->ploy,'<br>';
  36. // *8.静态成员不能用实例化访问,而应用类名称及符号::访问
  37. echo SanGuo1::$nation,'<br>';
  38. echo SanGuo1::sanguo(),'<br>';

2)浏览器运行效果图:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议