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数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...
- <<梦断代码>>阅读笔记二
这是第二篇读书笔记,这本书我已经读了有一大半了,感觉书中所描述的人都是疯子,一群有创造力,却又耐得住寂寞的疯子. 我从书中发现几点我比较感兴趣的内容. 第一个,乐高之梦.将程序用乐高积木一样拼接起来. ...
- <<浪潮之巅>>阅读笔记二
好的文章总是慢慢吸引着你去阅读,这本书的作者是吴军博士,让我很钦佩的是他还是一个很著名的程序员.其实我感觉理科生在写作方面的能力是很欠缺的,我们经常做到了有观点,但是做不到和别人表达清楚你的观点想法, ...
随机推荐
- c#通用登录模块,简单好用,一贴见效
// 举个例子:一个网站有用户系统.商家系统.网站后台3个系统 //可以分3个userType, user ,shop , system //网站后台一般都有角色,如admin,employee // ...
- 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换
[源码下载] 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换 作者:webabcd 介 ...
- [函数] Delphi FMX Windows 取得下载 Downloads 目录
在 Firemonkey 提供了一个跨平台的函数 TPath.GetDownloadsPath 来取得该平台的下载目录,但是非常奇怪的是,在 Windows 平台下,取得的下载目录确是: C:\Use ...
- Linux查看CPU和内存使用情况(转)
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...
- linux top命令查看内存及多核CPU的使用讲述
查看多核CPU命令 mpstat -P ALL 和 sar -P ALL 说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txt top命令 经常用来监控l ...
- 使用SQLServer同义词和SQL邮件,解决发布订阅中订阅库丢失数据的问题
最近给客户做了基于SQLServer的发布订阅的“读写分离”功能,但是某些表数据很大,经常发生某几条数据丢失的问题,导致订阅无法继续进行.但是每次发现问题重新做一次发布订阅又非常消耗时间,所以还得根据 ...
- ajax分页与组合查询配合使用
使用纯HTML页与js.ajax.Linq实现分页与组合查询的配合使用 <body> <div id="top"><input type=" ...
- jQuery带tab切换搜索框样式代码
效果体验:http://hovertree.com/texiao/jquery/23/ 代码如下,保存到HTML文件也可以查看效果: <!DOCTYPE html> <html la ...
- Web系统开发构架再思考-前后端的完全分离
前言 前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,都不能让人感到满意.期间的痛苦和纠结,我想所有Web开 ...
- JS中用new创建对象与不用new创建对象区别:
function classA() { console.log(this); var that = this == window ? {} : this; that.name = "clas ...