擅长:python、mysql、java
<p>我认为这类转换的一个好方法是:</p>
<ul>
<li><p>找出代码的作用</p></li>
<li><p>用Python将其重构为PHP样式(这使您能够检查逻辑是否仍然有效,例如使用断言测试)。e、 g.将列表理解转换为for循环</p></li>
<li><p>转换为PHP</p></li>
</ul>
<p>例如,<code>listspaces(string)</code>返回<code>string</code>中空格的位置,尽管使用列表理解是python的,但它不是很“PHP-onic”。在</p>
<pre><code>def listspaces2(string): #PHP-onic listspaces
space_positions = []
for i in range(len(string))]:
if string[i] == ' ':
space_positions.append(i)
return space_positions
</code></pre>
<p>第二个例子,<code>trimcopy</code>相当棘手(因为这个尝试,除了有目的地捕捉到一些预期的-对作者来说(!)-例外情况-有两种可能是<code>string</code>没有<code>len</code>和<code>spaces</code>包含的值长于<code>len(copy)</code>),但很难说,所以在Python中重构和测试是个好主意。在</p>
<p>您可以使用<a href="http://php.net/manual/en/function.array-slice.php" rel="nofollow">^{<cd9>}</a>在PHP中像<code>copy[:loc]</code>那样执行数组切片。在</p>
<p>注意:<em>通常在Python中,我们会显式地声明我们要防御的异常(与<a href="http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html" rel="nofollow">Pokemon exception handling</a>相反)。</em></p>