PHP_Bibel阅读笔记(二)——脸黑的一天(?一年)
一早上起来把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">© 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阅读笔记(二)——脸黑的一天(?一年)的更多相关文章
- 《Java编程思想》阅读笔记二
Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...
- Java Jdk1.8 HashMap源代码阅读笔记二
三.源代码阅读 3.元素包括containsKey(Object key) /** * Returns <tt>true</tt> if this map contains a ...
- Detectron2源码阅读笔记-(二)Registry&build_*方法
Trainer解析 我们继续Detectron2代码阅读笔记-(一)中的内容. 上图画出了detectron2文件夹中的三个子文件夹(tools,config,engine)之间的关系.那么剩下的 ...
- werkzeug源码阅读笔记(二) 下
wsgi.py----第二部分 pop_path_info()函数 先测试一下这个函数的作用: >>> from werkzeug.wsgi import pop_path_info ...
- 论文阅读笔记二十七: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 室友对 ...
- 论文阅读笔记二十五:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)
论文源址:https://arxiv.org/abs/1406.4729 tensorflow相关代码:https://github.com/peace195/sppnet 摘要 深度卷积网络需要输入 ...
- 论文阅读笔记二十四:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report(R-CNN CVPR2014)
论文源址:http://www.cs.berkeley.edu/~rbg/#girshick2014rcnn 摘要 在PASCAL VOC数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...
- <<梦断代码>>阅读笔记二
这是第二篇读书笔记,这本书我已经读了有一大半了,感觉书中所描述的人都是疯子,一群有创造力,却又耐得住寂寞的疯子. 我从书中发现几点我比较感兴趣的内容. 第一个,乐高之梦.将程序用乐高积木一样拼接起来. ...
- <<浪潮之巅>>阅读笔记二
好的文章总是慢慢吸引着你去阅读,这本书的作者是吴军博士,让我很钦佩的是他还是一个很著名的程序员.其实我感觉理科生在写作方面的能力是很欠缺的,我们经常做到了有观点,但是做不到和别人表达清楚你的观点想法, ...
随机推荐
- Unity实现滑页嵌套(解决ScrollRect嵌套冲突问题)
简介 由于项目需要+有网友咨询,所以做了个横向滑页+某一横向滑页中有竖向滑页的demo,实现有点绕弯子,但基本功能还是比较完善,发上来共享一下. 效果 思路 第一步的思路是自己判断触屏拖动位置,然后控 ...
- 原生JS投票特效
效果:http://hovertree.com/texiao/js/24/ 效果图: 代码如下: <!DOCTYPE html> <html lang="en"& ...
- Spring.Net简单用法
Spring.Net其实就是抽象工厂,只不过更加灵活强大,性能上并没有明显的区别. 它帮我们实现了控制反转. 其有两种依赖注入方式. 第一:属性注入 第二:构造函数注入 首先,我们去 Spring. ...
- thinkphp配置文件路径
thinkphp配置文件路径在入口文件index.php中配置. 如果Public目录在应用程序目录同等级位置: 2.如果Public在app内部则: 3.如果使用Public在app外部,但定义为: ...
- PHP运行环境,服务器相关配置
1.在DOS命令窗口输入 mysql -hlocalhost -uroot -p回车 进入mysql数据库, 其中-h表示服务器名,localhost表示本地:-u为数据库用户名,root是mysql ...
- js promise chain
新的标准里增加了原生的Promise. 这里只讨论链式使用的情况,思考一下其中的细节部分. 一,关于 then() 和 catch() 的复习 then() 和 catch() 的参数里可以放置 ca ...
- durex-word
"(半夜没睡着) “你是不是饿了,哎呀我也饿了.”" "(聊到合拍处) “我和你有一万句me too想要说.”" "(异地恋) “我辞职,去你那儿吧! ...
- The habits of highly successful people
1.Morning Routine (早上列行公事) Probably the most common habit ultra-successful people have is they can t ...
- jQuery弹出关闭遮罩层
效果体验:http://keleyi.com/keleyi/phtml/jquery/9.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- javascript如何设置DIV背景色为随机色
随机色有两种格式: 效果预览:http://wjf444128852.github.io/DEMOLIST/JS/test/index.html 1.rgb(xxx,xxx,xxx) 2.#xxxxx ...