你可能不知道的6个PHP技巧

做PHP程序员这些年,我无意中发现了PHP许多的有用的技巧,不明显但值得一提。当然下面列出的并不是PHP的全部技巧,而只是一小部分,有待大家添加,欢迎留言。

1.检查字符串长度

我们经常会用strlen()来检查一个字符串的长度是否符合要求,比如

<?php
$string = 'testing';</div>
if(strlen($string)>=7)
    echo "The string '$string' is at least 7 characters long.";
else
    echo "The string '$string' is less than 7 characters long.";
<div>
其实我们有更快的方法,如下所示

<?php
$string = 'testing';</div>
if(isset($string[6]))
    echo "The string '$string' is at least 7 characters long.";
else
    echo "The string '$string' is less than 7 characters long.";

这里我们把$string当数组来处理,根据索引来判断第7个字符是否存在(isset)。注意,索引是从0开始的,即$sring[0]=’t’。

2. 用逗号连接Echo后面要输出的字符串

这一点我想大家基本都知道,速度上来说不会比用‘.’慢,直接看代码吧:


<?php
$string1 = 'test-string1';
$string2 = 'test-string2';
$string3 = 'test-string3';</div>
echo 'String #1: ', $string1, '<br />';
echo 'String #2: ', $string2, '<br />';
echo 'String #3: ', $string3, '<br />';

3.尽可能用单引号,而不是双引号

用单引号处理字符串时,PHP不用在字符串中区分变量。这不仅快(PHP5之前的版本快得比较明显,PHP5基本差不多),而且增强可读性,事实证明,用单引号更方便其他程序员阅读。
在以字符串做索引的数组中,也要使用单引号。如$hos[‘dog’]。

4. PHP可变变量

我们经常会碰到变量名也是变量的的情况 (即,一个变量的变量名可以动态的设置和使用)。 这个问题用PHP的可变变量(Variable Variables)处理非常方便。举例:


<?php
$var1 = 'nameOfVariable';
$nameOfVariable = 'This is the value I want!!!';</div>
echo $$var1;

5. 使用表单数组

表单变量名可以是数组的形式,如name[‘firstname’]或name[]。 Take a look at this HTML:


<label><input type="checkbox" name="hobbies[]" value="Sports" /> Sports</label><br />
<label><input type="checkbox" name="hobbies[]" value="Hiking" /> Hiking</label><br />
<label><input type="checkbox" name="hobbies[]" value="Swimming" /> Swimming</label><br />
<label><input type="checkbox" name="hobbies[]" value=" Watching Movies" /> Watching Movies</label><br />

当表单提交给PHP后,PHP会接受到类似如下结构的数组:


Array
(
    [hobbies] => Array
        (
            [0] => Sports
            [1] => Hiking
            [2] => Swimming
            [3] => Swimming
        )
)

6. PHP输出缓存

用PHP的ob系列函数,可以暂时将输出内容缓存起来,在其他的位置输出。也可以用此方法防止setcookie、header时提示前面已经有输出。举例:


<?php
ob_start();
echo 'Print to the screen!!!';  //如果不启用输出缓存,这句话在这里就会输出;我们启用输出缓存,此处不会输出,
$getContent = ob_get_contents();</div>
ob_end_clean();

// 输出一个别的字符串、或做一些其它的事情</div>
<div>echo '我在后面,但我先输出';</div>
<div>
// 现在输出缓存中的内容</div>
<div>echo 'Now: ' . $getContent;</div>
<div>
这些技巧以前都提过,可能大家都知道,那就供新手参考之用吧。欢迎补充。
另外,一些同类文章:

( ! ) Warning: Missing argument 1 for cwppos_show_review(), called in /data/www/enjoyphp/wp-content/themes/flat/content-single.php on line 29 and defined in /data/www/enjoyphp/wp-content/plugins/wp-product-review/includes/legacy.php on line 18
Call Stack
#TimeMemoryFunctionLocation
10.0000355096{main}( ).../index.php:0
20.0001355384require( '/data/www/enjoyphp/wp-blog-header.php' ).../index.php:17
30.163810163200require_once( '/data/www/enjoyphp/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.165110234344include( '/data/www/enjoyphp/wp-content/themes/flat/single.php' ).../template-loader.php:74
50.262910801480get_template_part( ).../single.php:5
60.262910802000locate_template( ).../general-template.php:167
70.262910802096load_template( ).../template.php:643
80.263010802480require( '/data/www/enjoyphp/wp-content/themes/flat/content-single.php' ).../template.php:686
90.269210787608cwppos_show_review( ).../content-single.php:29

发表评论

电子邮件地址不会被公开。 必填项已用*标注