热搜:NVER node 开发 php

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

2024-07-21 14:30:01
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 "
";7 $value2=100;8 $value2=increment2($value2);9 echo $value2;echo "
";

 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 "\n\n"; 23         $this->DisplayTitle(); 24         $this->DisplayKeywords(); 25         $this->DisplayStyles(); 26         echo "\n\n"; 27         $this->DisplayHeader(); 28         $this->DisplayMenu($this->button); 29         echo $this->content; 30         $this->DisplayFooter(); 31         echo "\n\n";    32     } 33      34     private function DisplayTitle() 35     { 36         echo "".$this->title.""; 37     } 38      39     private function DisplayKeywords() 40     { 41         foreach ($this->keyword as $words){ 42             echo ""; 43         } 44     } 45      46     private function DisplayStyles() 47     { 48    ?> 49       73 <?php 74     } 75      76     private function DisplayHeader() 77     { 78 ?> 79    81    82      83      84    85 

The OOP page

86 <?php 87 } 88 89 private function DisplayMenu($button) 90 { 91 echo "\n "; 93 echo "\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 "\n";100 echo "
\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 "116 117 118 ".$name."119 ";120 } else{121 echo "122 123 ".$name.""; 124 } 125 }126 127 private function DisplayFooter()128 {129 ?>130 131 132 136 137
133

© Andy Liang.

134

Please visit my own site:Andy's Learning Diary

135
138 <?php 139 }140 }141 142 $homepage=new Page();143 $homepage->content="

"."I do not know what to write down, how about this?"."

";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()."
"10 ."File:".$e->getFile()."at Line:".$e->getLine()."
";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数据库