PHP_Bibel阅读笔记(二)——脸黑的一天(?一年)

  一早上起来把50包开了,一张橙卡。。。就问还有谁。。。。。。。。。。。本命年啊,我去买红内裤还不行么。。。。

实时更新,老哥的号的30包什么都没有。。。。不过中午又开了5包,皇帝,好评啊!!!

五、代码重用与函数编写

include警告与require的错误;

大量的包含实现,可以改ini文件中的:auto_prepend_file和auto_append_file;

global关键字也是可以用在函数内的参数的;

参数的引用传递和return

1 namespace Bible\Basic\FunctionUse;
2
3 include_once ‘index.php‘;
4 $value=10;
5 increment1($value);
6 echo $value;echo "<br/>";
7 $value2=100;
8 $value2=increment2($value2);
9 echo $value2;echo "<br/>";
 1 <?php
 2 function increment1(&$value,$mount=1)
 3 {
 4     $value=$value+$mount;
 5 }
 6
 7 function increment2($value,$mount=1)
 8 {
 9     $value=$value+$mount;
10     return $value;
11 }

递归函数比循环慢且占用更多内存,虽然很多循环都可以用递归来代替;(在应用领域中基本不用它

六、面向对象

好玩的代码,学到些东西!

  1 <?php
  2 namespace Bible\Basic\ObjectPage;
  3
  4 //Chapter6.P132
  5
  6 class Page
  7 {
  8     public $content;
  9     public $title;
 10     public $keyword;
 11     public $button=array("Home"=>"http://115.159.201.78/wordpress/",
 12         "Basic"=>"Section1.php"
 13     );
 14
 15     public function __set($name,$value)
 16     {
 17         $this->$name=$value;
 18     }
 19
 20     public function Display()
 21     {
 22         echo "<html>\n<head>\n";
 23         $this->DisplayTitle();
 24         $this->DisplayKeywords();
 25         $this->DisplayStyles();
 26         echo "</head>\n<body>\n";
 27         $this->DisplayHeader();
 28         $this->DisplayMenu($this->button);
 29         echo $this->content;
 30         $this->DisplayFooter();
 31         echo "</body>\n</html>\n";
 32     }
 33
 34     private function DisplayTitle()
 35     {
 36         echo "<title>".$this->title."</title>";
 37     }
 38
 39     private function DisplayKeywords()
 40     {
 41         foreach ($this->keyword as $words){
 42             echo "<meta name=\"keywords\" content=\"".$words."\"/>";
 43         }
 44     }
 45
 46     private function DisplayStyles()
 47     {
 48    ?>
 49      <style>
 50       h1 {
 51             color:white; font-size:24pt; text-align:center;
 52             font-family:arial,sans-serif
 53     }
 54     .menu {
 55         color:white; font-size:12pt; text-align:center;
 56         font-family:arial,sans-serif; font-weight:bold
 57     }
 58     td {
 59         background:black
 60     }
 61     p {
 62         color:black; font-size:12pt; text-align:justify;
 63         font-family:arial,sans-serif
 64     }
 65     p.foot {
 66         color:white; font-size:12pt; text-align:center;
 67         font-family:arial,sans-serif; font-weight:bold
 68     }
 69     a:link,a:visited,a:active {
 70         color:white
 71     }
 72     </style>
 73 <?php
 74     }
 75
 76     private function DisplayHeader()
 77     {
 78 ?>
 79   <table width="100%" cellpadding="12"
 80          cellspacing="0" border="0">
 81   <tr bgcolor="black">
 82     <td align="left"><img alt="img" src="logo.png"></td>
 83     <td><h1>The OOP page</h1></td>
 84   </tr>
 85 </table>
 86 <?php
 87     }
 88
 89     private function DisplayMenu($button)
 90     {
 91         echo "<table width=\"100%\" bgcolor=\"white\"
 92               cellpadding=\"4\"    cellsapcing=\"4\">\n ";
 93         echo "<tr>\n";
 94         $width=100/count($button);
 95         while (list($name,$url)=each($button)) {
 96             $this->DisplayButton($width,$name,$url,
 97                 !$this->IsURLCurrentPage($url));
 98         }
 99         echo "</tr>\n";
100         echo "</table>\n";
101     }
102
103     private function IsURLCurrentPage($url)
104     {
105         if (strpos($_SERVER[‘PHP_SELF‘], $url)==false){
106             return false;
107         } else{
108             return true;
109         }
110     }
111
112     private function DisplayButton($width,$name,$url,$active=true)
113     {
114         if ($active){
115             echo "<td width=\"".$width."%\">
116             <a href=\"".$url."\" onclick=\"blank\">
117             <img src=\"w-logo-blue.png\" alt=\"".$name."\" border=\"0\" /></a>
118             <a href=\"".$url."\"><span class=\"menu\">".$name."</span></a>
119                 </td>";
120         } else{
121             echo "<td width=\"".$width."%\">
122             <img src=\"w-logo-white.png\">
123             <span class=\"menu\">".$name."</span></td>";
124         }
125     }
126
127     private function DisplayFooter()
128     {
129 ?>
130   <table width="100%" bgcolor="black" cellpadding="12" border="0">
131   <tr>
132     <td>
133     <p class="foot">&copy; Andy Liang.</p>
134     <p class="foot">Please visit my own site:<a href="http://115.159.201.78/wordpress/">Andy‘s Learning Diary</a></p>
135     </td>
136   </tr>
137 </table>
138 <?php
139     }
140 }
141
142 $homepage=new Page();
143 $homepage->content="<p>"."I do not know what to write down, how about this?"."</p>";
144 $homepage->title="You have to try OO.";
145 $homepage->keyword=array("SAR","MRF");
146 $homepage->Display();

就是个默认网页的生成对象,还是有改进空间的。

然后,php写html,有点繁琐,但写完了一身爽。

<?php ?>标记的活用有点厉害啊,套路~

PS:上面代码中的链接不要乱点~会吓到你的。

当然,其实这种得到页面在应用中是不推荐的,只是试着练下手。

七、错误和异常处理

try{ throw new Exception() }  catch{  }

PHP中,异常必须手动抛出;

try代码块和catch代码块是“绑定的”,每个try一定要有一个catch!

一个try可以有多个catch

 1 <?php
 2 //Session1.Chapter7.P146
 3 namespace Bible\Basic\ExceptionTry;
 4
 5 try {
 6     throw new \ErrorException("A serious wrong has occured!", 14);
 7 }
 8 catch (\ErrorException $e){
 9     echo "Exceotion".$e->getCode().":".$e->getMessage()."<br/>"
10         ."File:".$e->getFile()."at Line:".$e->getLine()."<br/>";
11     echo $e;
12 }

应用中,希望可以自定义异常处理:继承已有的Exception类就好,需要注意的是,一般的getMessage等是final的,不能进行重载的,只有_tostring这一个方法可以重载;

 1 class MyException extends \ErrorException
 2 {
 3     function _tostring()
 4     {
 5         return "Fatal error,sorry!";
 6     }
 7 }
 8
 9 try {
10     throw new MyException("OH", 14);
11 }
12 catch (MyException $e){
13     echo $e->_tostring();
14 }

应用中,常常把异常处理用在最容易出错的I/O部分;格式一般都是

try{ if(!...) throw...} catch(){}

Session 2

(二) 使用MySQL

八、设计Web数据库

时间: 2024-10-05 04:16:55

PHP_Bibel阅读笔记(二)——脸黑的一天(?一年)的相关文章

《逻辑思维简易入门》(第2版) 阅读笔记二

<逻辑思维简易入门>(第2版) 阅读笔记二 本周阅读的是<逻辑思维简易入门>的第三章,也就是说,本书的第一部分就已经读完了. 第三章.信念的优点 信念和负信念是人们在接受一个事物时一种心理态度,延伸来说也就是对事物的认知态度.因为我们在研究 逻辑思维的时候,都有一个前提:“以正常情况以及说话者真诚”,所以有人如果对于一件事物不做回应,我们可以认为这是一种既不相信,也不怀疑的的态度. 信念的优缺点有很多,在书中主要介绍了下面几种: 1.准确性 好的信念实在准确的表达事实,同样真的信念

寒假阅读笔记二

大型网站技术架构-阅读笔记二 模式:每一个模式描述了一个在我们周围不断发生的问题及该问题解决方案的核心.这样你就能一次又一次地使用该方案而不必做重复工作. 分层:将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统.分层时必须合理规划层次边界和接口,在开发过程中,严格遵循分层架构的约束,禁止跨层次的调用(应用层直接调用数据层)及你想调用(数据层调用服务层,或者服务层调用运用层). 分割:网站越大,功能越复杂,服务和数据处理的种类

构建之法--阅读笔记二

阅读笔记二—代码规范 代码的风格的原则就是:简明,易读,无二义性.我虽然是计算机系的学生,但是我以前却没有秉着这个原则来编写代码,现在阅读了构建之法后,我明白了如何让你的代码变得简明,更容易理解. 代码在编写的过程中注意: 用Tab键缩进 要注意行宽,最多限定100字符的行宽 在复杂的条件表达式中,用括号清楚地表达逻辑优先级 要注意断行与空白的{ }行,有明确的“{”和“}”来判断程序的结构 不要把过多的语句放在同一行上 对变量命名要有实际的意义 用下划线来分隔变量名字中的作用域标注和变量的语义

软件需求分析教程阅读笔记二

软件需求分析教程阅读笔记二 管理人员在要求开发一个系统时并不会理解进行需求分析的重要性,他们只知道能不能尽快开发出相应的系统来方便使用,但是如果不做好需求分析,最终开发出的系统也不会有人用. 客户的需求认识并不像软件开发人员这样,了解的比较清楚,客户通常并不懂得从系统的实际用户处得到信息的重要性,然而从产品的实际用户处收集需求有着不可替代的必要性,所以导致项目最终失败的两个原因,一个是缺乏用户参与,另一个是不完整的需求规格说明. 在进行需求分析时,只有系统的实际使用者才能清楚的描述他们要用此系统

《大道至简---软件工程实践者的思想》阅读笔记二

08大道至简——软件工程实践者的思想阅读笔记之二 2015-06-02 16:41 第五章 失败的过程也是过程 以得失而论,在瀑布模型与RUP模型之间,学习前者而不成,可思过程的本质:学习后者而不成,可得文字的架子. 如果懂得了所谓的模型原本都演化自那个简单的瀑布,那么文档是按XP写还是按RUP写,也就可以应时.应需,因地置宜,择善而从了. 越是简单的东西,往往越是接近于本质. 项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同地完成这个项目. 第六章从编程到工程 我

Java Jdk1.8 HashMap源码阅读笔记二

三.源码阅读 3.元素包含containsKey(Object key) /** * Returns <tt>true</tt> if this map contains a mapping for the * specified key. * * @param key The key whose presence in this map is to be tested * @return <tt>true</tt> if this map contains

《构建之法》阅读笔记二

第二章阅读笔记 软件工程师的个人技术之一软件测试:    软件测试在软件开发流程中占据非常重要的地位. 单元测试:因为大多数软件工程师都是团队合作,所以其开发的模块其他人很有可能会用到,所以保证模块的正确性.完善性是非常重要的,所以就要进行单元测试来对模块的功能进行验证,验证要保证各种数据都能通过,对于特殊的数据都要进行验证,这样才能保证模块的健壮性.单元测试应该准确.快速地保证程序基本模块的正确性. 回归测试:软件的模块在进行修改或者新增后要进行回归测试,测试原来的功能是否受到影响. 效能分析

阅读笔记二2017.1.27

之前看了前三章对软件工程有了大致认识,对个人开发的流程及软件工程师的成长过程有了比以前更清晰的了解. 这一周重点阅读了第四章,本章讲了两人合作的前提是代码要规范(包括代码风格规范及代码设计规范)及代码复审,然后才能结对开发. 大学一年交了很多代码作业,但质量仅仅是完成了而已,对于缩进.行宽.括号.与大括号.分行等都没太注意过,觉着有了结果就好了.而对于命名更是越短越好,过后也就知道写过的代码是什么意思了.以前,写代码时,很多时候是上手就写,一个大括号包含所有内容,虽然大一时学过函数.类等知识,

《软件需求十步走》阅读笔记二

这一段时间阅读了<软件需求分析十步走>的第三四章,写一写书中一些个人感觉比较好的说法以及阅读感受. 首先是第三章<软件需求工程概论>. 需求工程和软件工程之间的关系界定没有质的变化,只是将需求工程从软件工程中剥离出来,将需求分析的分析工作和管理工作定义为需求工程.需求工程是面向全局的.系统顶层的.着眼未来的工程,是将客户业务作为内部研究对象,将软件工程全过程作为外部研究对象的工程.需求工程是圆心,软件工程是圆点. 需求工程的特征具有:全局性.主导性.主动性.过程性.规范性.可验证性