• 先说一下我写注释的逻辑:从入口文件开始按程序的执行过程进行分析、注释、学习。
  • 我的typecho源代码是1.2.0版本,入口文件是index.php
// 源文件/index.php
 1 <?php
 2 /**
 3 * Typecho Blog Platform
 4 *
 5 * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
 6 * @license    GNU General Public License 2.0
 7 * @version    $Id: index.php 1153 2009-07-02 10:53:22Z magike.net $
 8 */
 9 
10 /** 载入配置支持 */
11 if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') {
12     file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
13     exit;
14 }
  • 这里开始注释上面的代码
  • 第1行:PHP标记:<?php 代码段 ?>
  • 第2~8行:多行注释,第9行是空行为了让代码可读性更好,第10行是注释。
  • 第11行:是if控制语句:!是取反,defined('__TYPECHO_ROOT_DIR__')是判断'__TYPECHO_ROOT_DIR__'是否已定义,已定义返回true,未定义返回false。 && 是并且的意思。@是抑制程序报错、屏蔽程序错误信息,include_once 'config.inc.php'是包含并运行文件'config.inc.php'中的代码,如果已经包含过则不再包含并返回true。
  • 第一次运行时肯定是没有定义'__TYPECHO_ROOT_DIR__'并且没有包含'config.inc.php'的,两个表达式都做了取反操作,就变成了 (true && true) 所以会执行第12行到第14行代码。
  • 第12行:是一个三元表达式,file_exists('./install.php')判断文件'./install.php'是否存在,存在返回true不存在返回false。我这里文件'./install.php'是存在的所以会执行header('Location: install.php')跳转到install.php页面。如果文件'./install.php'不存在就会执行print('Missing Config File')在页面上显示Missing Config File
  • 第13行:退出并不再执行后面的代码。

本章到此结束,下一章开始分析install.php页面。

标签: PHP学习笔记, typecho源代码注释

添加新评论