Blogger Information
Blog 29
fans 0
comment 0
visits 11118
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP 变量作用域、优化web1项目
尹辉
Original
248 people have browsed it

变量作用域

  • 局部变量:在函数体内部定义的变量,只在函数内部有效

    1. function demo()
    2. {
    3. $a = 100;
    4. $b = 200;
    5. return $a + $b;
    6. }
    7. echo demo(); // 300
    8. echo $a; //局部变量无法在函数体外被访问到
  • 全局变量:在函数体外部定义的变量

    • 全局变量在函数体内部无法直接调用(需要使用 global 关键字,或将全局变量注册到 $GLOBALS 超全局变量)
    • 注意:函数体外定义的常量,可以在函数体内部直接调用。
    1. $one = 200;
    2. $two = 300;
    3. const NATION = '中国';
    4. function test()
    5. {
    6. echo NATION; // 常量可以直接调用
    7. echo "运算的结果是" . ($one + $two); // 全局变量无法直接调用
    8. }
    9. test();
    10. // 输出:
    11. // 中国
    12. // Undefined variable: one
    13. // Undefined variable: two
    14. // 1,使用 global 关键字引入全局变量
    15. function test()
    16. {
    17. global $one, $two;
    18. echo "运算的结果是" . ($one + $two);
    19. }
    20. test(); // 运算的结果是500
    21. // 2,将全局变量注册到 $GLOBALS 超全局变量
    22. function test()
    23. {
    24. echo "运算的结果是" . ($GLOBALS['one'] + $GLOBALS['two']);
    25. }
    26. test(); // 运算的结果是500

优化web1项目

1)定义路径常量,用于简化个页面引用模板的路径

  • 定义(配置文件:common.php)

    1. // 路径分隔符
    2. const DS = DIRECTORY_SEPARATOR;
    3. // 根路径 ROOT_PATH
    4. define('ROOT_PATH', $_SERVER['DOCUMENT_ROOT'] . DS . 'web1');
    5. // 数据路径 DATA_PATH
    6. const DATA_PATH = ROOT_PATH . DS . 'data' . DS;
    7. // 模板路径 TMPL_PATH
    8. const TMPL_PATH = ROOT_PATH . DS . 'template' . DS;
    9. // 公共模板路径 TMPL_PUBLIC_PATH
    10. const TMPL_PUBLIC_PATH = TMPL_PATH . DS . 'public' . DS;
    11. // 静态资源路径
    12. const STATIC_PATH = ROOT_PATH . DS . 'static' . DS;
    13. const STATIC_CSS_PATH = STATIC_PATH . DS . 'css' . DS;
    14. const STATIC_JS_PATH = STATIC_PATH . DS . 'js' . DS;
    15. const STATIC_IMG_PATH = STATIC_PATH . DS . 'images' . DS;
  • 各页面简化引用路径

    1. // 引入配置文件:common.php
    2. include __DIR__ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'common.php';
    3. // 引入头部模板
    4. include TMPL_PUBLIC_PATH . 'header.php';
    5. // 引入数据文件
    6. $news = require DATA_PATH . 'news.php';
    7. $items = require DATA_PATH . 'item.php';
    8. // 引入尾部模板
    9. include TMPL_PUBLIC_PATH . 'footer.php';

2)新闻内容数据动态获取(data/news.php)

  1. // 从聚合数据获取头条新闻列表
  2. // 这里的 key 为模拟数据,实际使用时需改为自己的 key
  3. $res = file_get_contents('http://v.juhe.cn/toutiao/index?type=top&key=257hio90j65few598jhf34xs23');
  4. $data = json_decode($res, true);
  5. $dataContent = $data['result']['data'];
  6. $myData = [];
  7. foreach ($dataContent as $k => $v) {
  8. extract($v);
  9. $arr = array('id' => $k, 'title' => $title, 'url' => $url);
  10. $myData[] = $arr;
  11. }
  12. // 取前10条
  13. $output = array_slice($myData, 0, 10);
  14. return $output;

3)各页面内容由 data 数据动态生成

  • 1,首页

    1. <main>
    2. <!-- 新闻列表 -->
    3. <div class="news">
    4. <h3>新闻列表</h3>
    5. <div class="list">
    6. <?php foreach ($news as $v) : extract($v)?>
    7. <a href="<?= $url ?>"><?= $title ?></a>
    8. <?php endforeach; ?>
    9. </div>
    10. </div>
    11. <!-- 产品列表 -->
    12. <div class="items">
    13. <h3>产品列表</h3>
    14. <div class="list">
    15. <?php foreach ($items as $v) : extract($v) ?>
    16. <div class="item">
    17. <img src="<?= $img ?>" alt="<?= $title ?>" />
    18. <a href="<?= $url ?>">最新产品<?= $id ?></a>
    19. </div>
    20. <?php endforeach; ?>
    21. </div>
    22. </div>
    23. </main>
  • 2,新闻页

    1. <div class="news">
    2. <h3>新闻列表</h3>
    3. <div class="list">
    4. <?php foreach ($news as $v) : extract($v) ?>
    5. <a href="<?= $url ?>"><?= $title ?></a>
    6. <?php endforeach; ?>
    7. </div>
    8. </div>
  • 3,产品页

    1. <div class="items">
    2. <h3>产品列表</h3>
    3. <div class="list">
    4. <?php foreach ($items as $v) : extract($v) ?>
    5. <div class="item">
    6. <img src="<?= $img ?>" alt="<?= $title ?>" />
    7. <a href="<?= $url ?>"><?= mb_substr($title,0,8) ?>...</a>
    8. </div>
    9. <?php endforeach; ?>
    10. </div>
    11. </div>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post