PHP拾遗捡漏(一)
PHP拾遗捡漏(一)
最近在看<PHP和MySQL WEB开发>第四版, 把一些基础知识又复习了一遍, 还是很有收获的.
边看边记录一些文字吧.
1. echo 输出字符串
双引号和单引号的区别
$foo = 'hello'; echo $foo.' world!<br />'; echo "$foo world!<br />"; echo '$foo world!<br />';
运行后, 可以看出第一第二两个语句是等价的, 而第三个语句则原样输出.
结论: 对于任何简单类型的变量, 都可以将变量写入到一个由双引号引起来的字符串中, 在双引号中, 变量名称将被变量值所代替.而在单引号中, 变量名称,或者任何其他文本都会不经修改而直接发送到浏览器端.
Heredoc字符串也是插补的, 就像双引号字符串.
2.正确理解标识符
PHP中, 标识符是区分大小写的, $foo和$Foo是不同的, 而函数名称则不区分大小写.
$foo = 'foo'; $Foo = 'Foo'; echo "$foo<br />"; echo "$Foo<br />"; echo bar()."<br />"; echo Bar()."<br />"; function bar() { echo 'bar'; }
3.引用
PHP中引用操作符&可以在关联赋值时使用. 通常, 在将一个变量的值赋给另外一个变量的时候, 将先产生原变量的一个副本, 然后再将它保存在内存的其它的一个地方.
例如
$a = 5; $b = $a; $a = 7; // 此时$a=7, 而$b仍然等于5
这两行代码首先将产生一个$a的副本, 然后再将它保存到$b中, 如果随后改变$a的值, $b的值不会有任何变化.
可以通过引用操作符&来避免产生$a的副本, 此时$a和$b都指向了内存中的相同地址.
$a = 5; $b = &$a; $a = 7; // 此时$a和$b都等于7
可以通过unset($a)来重置它们来改变所指向的地址, 重置并不会改变$b(7)的值.
4. “执行操作符, 它是一对反向单引号, PHP将试着将其间的命令当做服务器端的命令行来执行. 表达式的值就是命令的执行结果.
$out = `dir c:` // windows, Linux为 `ls -la` echo $out;
5. isset()和empty()
bool isset(mixed var)
该函数需要一个变量名称作为参数, 如果这个变量存在返回true,否则返回false. 也可以传递一个由逗号间隔的变量列表, 如果所有变量都被设置了. 返回true.
可以使用unset()来销毁一个变量.
函数empty()可以用来检测一个变量是否存在,以及它的值是否为空和非0, 相应的返回true和false.
简单的来说empty()比isset()多检测值的非空和非0状态.
6. range()可以使用range()函数自动创建一个按升序排列的数字数组.
// 例如以下的代码将创建一个1~10的数字数组 $numbers = range(1, 10); //range()函数具有一个可选的第三个参数, 这个参数允许设定值之间的步幅. 例如创建一个1~10之间的奇数数组 $odds = range(1, 10, 2); //range()函数也可以对字符进行操作, 如下 $letters = range('a', 'z');
7. 数组排序
使用sort()函数, sort()函数可以将数组按字母或数字升序进行排序
$products = array('Tires', 'Oil', 'Spark Plugs'); sort($products); $prices = array(100, 10, 4); sort($prices);
sort()函数的第二个参数是可选的, 这个可选参数可以传递SORT_REGULAR(默认值), SORT_NUMERIC或SORT_STRING, sort()函数是区分大小写的.
使用asort()和ksort()函数对关联数组排序
函数asort()根据数组的每个元素值进行排序.
函数ksort()根据数组的每个元素进行排序.
以上三个函数都使数组按升序排序, 它们每个都对应有一个反向排序的函数, 分别是rsort(), arsort(), krsort().
用户自定义排序usort()
usort()函数的参数分别是希望排序的数组和用户比较的函数的名称
// 这是一个普通的二维数组, 存储了3种产品的代码,说明和价格. $products = array(array('TLR', 'Tires', 100), array('OIL', 'Oil', 10), array('SPK', 'Spark Plugs', 4)); // 以下代码对订单数组中的第二列(说明)按字母进行排序 function compare($x, $y) { if ($x[1] == $y[1]) return 0; else if ($x[1] < $y[1]) return -1; else return 1; } usort($products, 'compare') // 同时实现反向排序 function reverse_compare($x, $y) { if ($x[1] == $y[1]) returnn 0; else if ($x[1] < $y[1]) return 1; else return -1; } usort($products, 'reverse_compare');
转载请注明出处: http://www.suiyuan.org
博主,小弟正在学PHP的正则表达式,太难了。。。。望赐教,跪谢!
博主的博客不错,经常收看了欢迎来我的网站踩踩:义乌小饰品批发