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

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

五、代码重用与函数编写

include警告与require的错误;

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

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

参数的引用传递和return

 namespace Bible\Basic\FunctionUse;

 include_once 'index.php';
$value=10;
increment1($value);
echo $value;echo "<br/>";
$value2=100;
$value2=increment2($value2);
echo $value2;echo "<br/>";
 <?php
function increment1(&$value,$mount=1)
{
$value=$value+$mount;
} function increment2($value,$mount=1)
{
$value=$value+$mount;
return $value;
}

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

六、面向对象

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

 <?php
namespace Bible\Basic\ObjectPage; //Chapter6.P132 class Page
{
public $content;
public $title;
public $keyword;
public $button=array("Home"=>"http://115.159.201.78/wordpress/",
"Basic"=>"Section1.php"
); public function __set($name,$value)
{
$this->$name=$value;
} public function Display()
{
echo "<html>\n<head>\n";
$this->DisplayTitle();
$this->DisplayKeywords();
$this->DisplayStyles();
echo "</head>\n<body>\n";
$this->DisplayHeader();
$this->DisplayMenu($this->button);
echo $this->content;
$this->DisplayFooter();
echo "</body>\n</html>\n";
} private function DisplayTitle()
{
echo "<title>".$this->title."</title>";
} private function DisplayKeywords()
{
foreach ($this->keyword as $words){
echo "<meta name=\"keywords\" content=\"".$words."\"/>";
}
} private function DisplayStyles()
{
?>
<style>
h1 {
color:white; font-size:24pt; text-align:center;
font-family:arial,sans-serif
}
.menu {
color:white; font-size:12pt; text-align:center;
font-family:arial,sans-serif; font-weight:bold
}
td {
background:black
}
p {
color:black; font-size:12pt; text-align:justify;
font-family:arial,sans-serif
}
p.foot {
color:white; font-size:12pt; text-align:center;
font-family:arial,sans-serif; font-weight:bold
}
a:link,a:visited,a:active {
color:white
}
</style>
<?php
} private function DisplayHeader()
{
?>
<table width="100%" cellpadding="12"
cellspacing="0" border="0">
<tr bgcolor="black">
<td align="left"><img alt="img" src="logo.png"></td>
<td><h1>The OOP page</h1></td>
</tr>
</table>
<?php
} private function DisplayMenu($button)
{
echo "<table width=\"100%\" bgcolor=\"white\"
cellpadding=\"4\" cellsapcing=\"4\">\n ";
echo "<tr>\n";
$width=100/count($button);
while (list($name,$url)=each($button)) {
$this->DisplayButton($width,$name,$url,
!$this->IsURLCurrentPage($url));
}
echo "</tr>\n";
echo "</table>\n";
} private function IsURLCurrentPage($url)
{
if (strpos($_SERVER['PHP_SELF'], $url)==false){
return false;
} else{
return true;
}
} private function DisplayButton($width,$name,$url,$active=true)
{
if ($active){
echo "<td width=\"".$width."%\">
<a href=\"".$url."\" onclick=\"blank\">
<img src=\"w-logo-blue.png\" alt=\"".$name."\" border=\"0\" /></a>
<a href=\"".$url."\"><span class=\"menu\">".$name."</span></a>
</td>";
} else{
echo "<td width=\"".$width."%\">
<img src=\"w-logo-white.png\">
<span class=\"menu\">".$name."</span></td>";
}
} private function DisplayFooter()
{
?>
<table width="100%" bgcolor="black" cellpadding="12" border="0">
<tr>
<td>
<p class="foot">&copy; Andy Liang.</p>
<p class="foot">Please visit my own site:<a href="http://115.159.201.78/wordpress/">Andy's Learning Diary</a></p>
</td>
</tr>
</table>
<?php
}
} $homepage=new Page();
$homepage->content="<p>"."I do not know what to write down, how about this?"."</p>";
$homepage->title="You have to try OO.";
$homepage->keyword=array("SAR","MRF");
$homepage->Display();

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

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

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

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

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

七、错误和异常处理

try{ throw new Exception() }  catch{  }

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

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

一个try可以有多个catch

 <?php
//Session1.Chapter7.P146
namespace Bible\Basic\ExceptionTry; try {
throw new \ErrorException("A serious wrong has occured!", 14);
}
catch (\ErrorException $e){
echo "Exceotion".$e->getCode().":".$e->getMessage()."<br/>"
."File:".$e->getFile()."at Line:".$e->getLine()."<br/>";
echo $e;
}

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

 class MyException extends \ErrorException
{
function _tostring()
{
return "Fatal error,sorry!";
}
} try {
throw new MyException("OH", 14);
}
catch (MyException $e){
echo $e->_tostring();
}

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

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

Session 2

(二) 使用MySQL

八、设计Web数据库

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

  1. 《Java编程思想》阅读笔记二

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...

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

    三.源代码阅读 3.元素包括containsKey(Object key) /** * Returns <tt>true</tt> if this map contains a ...

  3. Detectron2源码阅读笔记-(二)Registry&build_*方法

    ​ Trainer解析 我们继续Detectron2代码阅读笔记-(一)中的内容. 上图画出了detectron2文件夹中的三个子文件夹(tools,config,engine)之间的关系.那么剩下的 ...

  4. werkzeug源码阅读笔记(二) 下

    wsgi.py----第二部分 pop_path_info()函数 先测试一下这个函数的作用: >>> from werkzeug.wsgi import pop_path_info ...

  5. 论文阅读笔记二十七:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)

    论文源址:https://arxiv.org/abs/1506.01497 tensorflow代码:https://github.com/endernewton/tf-faster-rcnn 室友对 ...

  6. 论文阅读笔记二十五:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)

    论文源址:https://arxiv.org/abs/1406.4729 tensorflow相关代码:https://github.com/peace195/sppnet 摘要 深度卷积网络需要输入 ...

  7. 论文阅读笔记二十四:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report(R-CNN CVPR2014)

    论文源址:http://www.cs.berkeley.edu/~rbg/#girshick2014rcnn 摘要 在PASCAL VOC数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...

  8. <<梦断代码>>阅读笔记二

    这是第二篇读书笔记,这本书我已经读了有一大半了,感觉书中所描述的人都是疯子,一群有创造力,却又耐得住寂寞的疯子. 我从书中发现几点我比较感兴趣的内容. 第一个,乐高之梦.将程序用乐高积木一样拼接起来. ...

  9. <<浪潮之巅>>阅读笔记二

    好的文章总是慢慢吸引着你去阅读,这本书的作者是吴军博士,让我很钦佩的是他还是一个很著名的程序员.其实我感觉理科生在写作方面的能力是很欠缺的,我们经常做到了有观点,但是做不到和别人表达清楚你的观点想法, ...

随机推荐

  1. .NET 内存基础(通过内存体验类型、传参、及装箱拆箱)

    该随笔受启发于<CLR Via C#(第三版)>第四章4.4运行时的相互联系 一.内存分配的几个区域 1.线程栈 局部变量的值类型 和 局部变量中引用类型的指针(或称引用)会被分配到该区域 ...

  2. C#利用反射+特性实现简单的实体映射数据库操作类

    附上源代码: using System; using System.Collections.Generic; using System.Data; using System.Linq; using S ...

  3. Asp.net 面向接口可扩展框架之类型转化基础服务

    新框架正在逐步完善,可喜可贺的是基础服务部分初具模样了,给大家分享一下 由于基础服务涉及面太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 ...

  4. python查找指定目录下所有文件,以及改文件名的方法

    一: os.listdir(path) 把path目录下的所有文件保存在列表中: >>> import os>>> import re>>> pa ...

  5. JAVA 8 Streams

    什么是Stream 首先要说的是,不要被它的名称骗了,这里的Stream跟JAVA I/O中的InputStream和OutputStream是两个不同的概念.Java 8中的Stream其实是函数式 ...

  6. 关于Java数组

    今天,我们将要谈到的是Java里的数组 数组是一种容器,它是一些相同类型元素的集合.我们可以用数组,去存储一些相同类型的数据,比如,整数,浮点数,字符,...事实上,数组甚至可以用来存储同一个类的多个 ...

  7. 深入理解cookies

    HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解.首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知 ...

  8. java代码实现栈

    这几天在老家有点事,现在弄完了,继续研究一下数据结构,这次的栈并没有对多线程进行优化,如果有想优化的童鞋可以参考我上一篇文章对队列进行的优化,话不多说,上代码: package com.voole.c ...

  9. git的诞生

    Git的诞生   很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世 ...

  10. XML序列化和反序列化

    上篇总结了下JSON的序列化和反序列化,博园中大牛给了很多牛叉的评论,学习了不少. 不过在上篇中忘了把json序列化和反序列化的另外一种方式写上去了,这里做个简单的补充: Json篇:http://w ...