一早上起來把50包開了,一張橙卡。。。就問還有誰。。。。。。。。。。。本命年啊,我去買紅內褲還不行麽。。。。 實時更新,老哥的號的30包什麼都沒有。。。。不過中午又開了5包,皇帝,好評啊!!! 五、代碼重用與函數編寫 include警告與require的錯誤; 大量的包含實現,可以改ini文件中的: ...
一早上起來把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">© 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資料庫