﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客网-lzzzing学习笔记-随笔分类-PHP</title><link>http://www.cnitblog.com/lzzzing/category/7039.html</link><description>正在学的和想要学的</description><language>zh-cn</language><lastBuildDate>Fri, 18 Apr 2008 00:25:30 GMT</lastBuildDate><pubDate>Fri, 18 Apr 2008 00:25:30 GMT</pubDate><ttl>60</ttl><item><title>用PHP和专用PEAR类自动生成MP3曲目</title><link>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42489.html</link><dc:creator>lzzzing</dc:creator><author>lzzzing</author><pubDate>Thu, 17 Apr 2008 15:00:00 GMT</pubDate><guid>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42489.html</guid><wfw:comment>http://www.cnitblog.com/lzzzing/comments/42489.html</wfw:comment><comments>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42489.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lzzzing/comments/commentRss/42489.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lzzzing/services/trackbacks/42489.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/lzzzing/archive/2008/04/17/42489.html'>阅读全文</a><img src ="http://www.cnitblog.com/lzzzing/aggbug/42489.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lzzzing/" target="_blank">lzzzing</a> 2008-04-17 23:00 <a href="http://www.cnitblog.com/lzzzing/archive/2008/04/17/42489.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用Perl的哈希建立键－值数据映射</title><link>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42487.html</link><dc:creator>lzzzing</dc:creator><author>lzzzing</author><pubDate>Thu, 17 Apr 2008 14:59:00 GMT</pubDate><guid>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42487.html</guid><wfw:comment>http://www.cnitblog.com/lzzzing/comments/42487.html</wfw:comment><comments>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42487.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lzzzing/comments/commentRss/42487.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lzzzing/services/trackbacks/42487.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/lzzzing/archive/2008/04/17/42487.html'>阅读全文</a><img src ="http://www.cnitblog.com/lzzzing/aggbug/42487.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lzzzing/" target="_blank">lzzzing</a> 2008-04-17 22:59 <a href="http://www.cnitblog.com/lzzzing/archive/2008/04/17/42487.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用正确的PHP类搜索定位目录树</title><link>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42488.html</link><dc:creator>lzzzing</dc:creator><author>lzzzing</author><pubDate>Thu, 17 Apr 2008 14:59:00 GMT</pubDate><guid>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42488.html</guid><wfw:comment>http://www.cnitblog.com/lzzzing/comments/42488.html</wfw:comment><comments>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42488.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lzzzing/comments/commentRss/42488.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lzzzing/services/trackbacks/42488.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/lzzzing/archive/2008/04/17/42488.html'>阅读全文</a><img src ="http://www.cnitblog.com/lzzzing/aggbug/42488.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lzzzing/" target="_blank">lzzzing</a> 2008-04-17 22:59 <a href="http://www.cnitblog.com/lzzzing/archive/2008/04/17/42488.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用PHP的日期与时间函数提高开发技巧</title><link>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42486.html</link><dc:creator>lzzzing</dc:creator><author>lzzzing</author><pubDate>Thu, 17 Apr 2008 14:58:00 GMT</pubDate><guid>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42486.html</guid><wfw:comment>http://www.cnitblog.com/lzzzing/comments/42486.html</wfw:comment><comments>http://www.cnitblog.com/lzzzing/archive/2008/04/17/42486.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lzzzing/comments/commentRss/42486.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lzzzing/services/trackbacks/42486.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/lzzzing/archive/2008/04/17/42486.html'>阅读全文</a><img src ="http://www.cnitblog.com/lzzzing/aggbug/42486.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lzzzing/" target="_blank">lzzzing</a> 2008-04-17 22:58 <a href="http://www.cnitblog.com/lzzzing/archive/2008/04/17/42486.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个PHP问题的分析</title><link>http://www.cnitblog.com/lzzzing/archive/2008/04/07/42057.html</link><dc:creator>lzzzing</dc:creator><author>lzzzing</author><pubDate>Mon, 07 Apr 2008 04:35:00 GMT</pubDate><guid>http://www.cnitblog.com/lzzzing/archive/2008/04/07/42057.html</guid><wfw:comment>http://www.cnitblog.com/lzzzing/comments/42057.html</wfw:comment><comments>http://www.cnitblog.com/lzzzing/archive/2008/04/07/42057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lzzzing/comments/commentRss/42057.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lzzzing/services/trackbacks/42057.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>今天在玩</span><span>Hashell</span><span>的时候</span><span>,</span><span>学到列表的内涵</span><span>,</span><span>计算</span><span>a,b100</span><span>以内所有的勾股数</span><span>,</span><span>发现速度很慢</span><span>,</span><span>要</span><span>1</span><span>分多才能算完所有的数</span><span>,</span><span>于是想到是不是算法本身的问题</span><span>,</span><span>这个问题本身决定它无法快速的运算</span><span>,</span><span>用</span><span>PHP</span><span>试了一个</span><span>,</span><span>写出如下代码</span><span>:</span></p>
<p><span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&lt;?</span><span style="COLOR: #000000">php<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;</span><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;</span><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>{<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$b</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">;</span><span style="COLOR: #800080">$b</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;</span><span style="COLOR: #800080">$b</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$c</span><span style="COLOR: #000000">=</span><span style="COLOR: #008080">sqrt</span><span style="COLOR: #000000">(</span><span style="COLOR: #008080">pow</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">+</span><span style="COLOR: #008080">pow</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$b</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$c</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">(int)</span><span style="COLOR: #800080">$c</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">$a&nbsp;$b&nbsp;$c&lt;br/&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>}<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">end</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">?&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<p></span><span>PHP</span><span>只用了不到一秒的时间就搞定了问题</span><span>.</span><span>才发现</span><span>Haskell</span><span>效率实在太低</span><span>.</span><span>但我看了一下</span><span>PHP</span><span>运行结果</span><span>,</span><span>发现了有趣的结果</span><span>,</span><span>如下</span><span>:</span></p>
<p><span>0<br>1 1<br>2 2</span></p>
<p><span>(</span><span>此段为</span><span> a a </span><span>形式数</span><span>,</span><span>直到</span><span>99 99)</span></p>
<p><span>99 99<br>3 4 5</span></p>
<p><span>(</span><span>此段为正确结果</span><span>,</span><span>不列出</span><span>)<br>80 84 116<br>end</span></p>
<p><span>开头的</span><span>0,1 1,2 2</span><span>&#8230;&#8230;是怎么回事</span><span>?</span></p>
<p><span>回到代码</span><span>,</span><span>看一下第一个循环</span><span>:</span></p>
<p><span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;</span><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;</span><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span></div>
<p></span><span>发现此处少写</span></p>
<p><span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span></div>
<p></span><span>改完后正常</span><span>(</span><span>此代码初有变量声明</span><span>,</span><span>后删之</span><span>,</span><span>忘记加上</span><span>,</span><span>才出现些错误</span><span>)</span></p>
<p><span>回头想一下出现原因</span><span>.</span><span>变量</span><span>$a</span><span>没有初始化</span><span>,</span><span>那么</span><span>$b</span><span>是什么</span><span>?</span><span>因为</span><span>PHP</span><span>的动态内存管理机制</span><span>,</span><span>在</span></p>
<p><span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #800080">$b</span><span style="COLOR: #000000">=</span><span style="COLOR: #800080">$a</span></div>
<p></span><span>时只是传递了</span><span>$a</span><span>的引用</span><span>,</span><span>并没有分配新的内存单元</span><span>,</span><span>那么是与</span><span>$a</span><span>完全相同的类型</span><span>,</span><span>也为</span><span>NULL.</span></p>
<p><span>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #800080">$c</span><span style="COLOR: #000000">=</span><span style="COLOR: #008080">sqrt</span><span style="COLOR: #000000">(</span><span style="COLOR: #008080">pow</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$a</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">+</span><span style="COLOR: #008080">pow</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$b</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">));</span></div>
<p></span>&nbsp;</p>
<p><span>此名传递参数类型错误</span><span>,</span><span>但</span><span>PHP</span><span>没有给出任何错误提示</span><span>,</span><span>执行结果是</span><span>$c</span><span>为</span><span>0.</span></p>
<span>下一步</span><span>,$b++,$b</span><span>初值为</span><span>NULL,</span><span>自增后为</span><span>1,</span><span>把它当做</span><span>0</span><span>处理了</span><span>.</span>
<img src ="http://www.cnitblog.com/lzzzing/aggbug/42057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lzzzing/" target="_blank">lzzzing</a> 2008-04-07 12:35 <a href="http://www.cnitblog.com/lzzzing/archive/2008/04/07/42057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PHP程序员最易犯10种错误</title><link>http://www.cnitblog.com/lzzzing/archive/2008/04/04/41941.html</link><dc:creator>lzzzing</dc:creator><author>lzzzing</author><pubDate>Fri, 04 Apr 2008 05:56:00 GMT</pubDate><guid>http://www.cnitblog.com/lzzzing/archive/2008/04/04/41941.html</guid><wfw:comment>http://www.cnitblog.com/lzzzing/comments/41941.html</wfw:comment><comments>http://www.cnitblog.com/lzzzing/archive/2008/04/04/41941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lzzzing/comments/commentRss/41941.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lzzzing/services/trackbacks/41941.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: PHP是个伟大的web开发语言，灵活的语言，但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表，列出了PHP程序员经常犯的10中错误，大多数和安全相关。&nbsp;&nbsp;<a href='http://www.cnitblog.com/lzzzing/archive/2008/04/04/41941.html'>阅读全文</a><img src ="http://www.cnitblog.com/lzzzing/aggbug/41941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lzzzing/" target="_blank">lzzzing</a> 2008-04-04 13:56 <a href="http://www.cnitblog.com/lzzzing/archive/2008/04/04/41941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>