1.unset的使用
<?php
$test = 'aaaaaa' ;
$abc = & $test ;
unset ( $test ) ;
echo $test ;
echo $abc ;
2.自動加載文件函數
<?php
function __autoload ( $class ) {
include 'lib/' . $class . '.class.php' ;
}
$User = new User ( ) ;
function A ( $class ) {
include 'lib/' . $class . '.class.php' ;
}
spl_autoload_register ( 'A' ) ;
$User = new User ( ) ;
class A {
public function Aauto ( $class ) {
include 'lib/' . $class . '.class.php' ;
}
}
$A = new A ( ) ;
sql_autoload_register ( array ( $A , 'Aauto' ) ) ;
$User = new User ( ) ;
class B {
public function Aauto ( $class ) {
include 'lib/' . $class . '.class.php' ;
}
}
sql_autoload_register ( array ( 'A' , 'Aauto' ) ) ;
$User = new User ( ) ;
class C {
public function Aauto ( $class ) {
include 'lib/' . $class . '.class.php' ;
}
}
sql_autoload_register ( array ( 'A::Aauto' ) ) ;
$User = new User ( ) ;
3.等號的比較
<?php
echo '0 == false: ' ;
var_dump ( 0 == false ) ;
echo '0 === false: ' ;
var_dump ( 0 === false ) ;
echo PHP_EOL ;
echo '0 == null: ' ;
var_dump ( 0 == null ) ;
echo '0 === null: ' ;
var_dump ( 0 === null ) ;
echo PHP_EOL ;
echo 'false == null: ' ;
var_dump ( false == null ) ;
echo 'false === null: ' ;
var_dump ( false === null ) ;
echo PHP_EOL ;
echo '"0" == false: ' ;
var_dump ( "0" == false ) ;
echo '"0" === false: ' ;
var_dump ( "0" === false ) ;
echo PHP_EOL ;
echo '"0" == null: ' ;
var_dump ( "0" == null ) ;
echo '"0" === null: ' ;
var_dump ( "0" === null ) ;
echo PHP_EOL ;
echo '"" == false: ' ;
var_dump ( "" == false ) ;
echo '"" === false: ' ;
var_dump ( "" === false ) ;
echo PHP_EOL ;
echo '"" == null: ' ;
var_dump ( "" == null ) ;
echo '"" === null: ' ;
var_dump ( "" === null ) ;
4.打印斐波那鍥數
<?php
function F1 ( $n )
{
$f1 = 1 ;
$f2 = 1 ;
if ( $n <= 2 ) {
return 1 ;
}
for ( $i = 3 ; $i <= $n ; $i ++ ) {
$f3 = $f1 + $f2 ;
$f1 = $f2 ;
$f2 = $f3 ;
}
return $f3 ;
}
function F2 ( $n ) {
if ( $n <= 2 ) {
return 1 ;
}
return F2 ( $n - 1 ) + F2 ( $n - 2 ) ;
}
echo F1 ( 10 ) ;
echo F2 ( 10 ) ;
<?php
function multi ( $arr1 , $arr2 ) {
for ( $i = 0 ; $i < 2 ; $i ++ ) {
for ( $j = 0 ; $j < 2 ; $j ++ ) {
$ret [ $i ] [ $j ] = 0 ;
for ( $k = 0 ; $k < 2 ; $k ++ ) {
$ret [ $i ] [ $j ] + = $arr1 [ $i ] [ $k ] * $arr2 [ $k ] [ $j ] ;
}
}
}
return $ret ;
}
function myPow ( $arr , $n ) {
$ret = array ( 0 = > array ( 1 , 1 ) ,
1 = > array ( 1 , 1 ) ) ;
while ( $n != 0 ) {
if ( $n & 1 ) {
$ret = multi ( $ret , $arr ) ;
}
$arr = multi ( $arr , $arr ) ;
$n > >= 1 ;
}
return $ret [ 0 ] [ 0 ] + $ret [ 0 ] [ 1 ] ;
}
$n = 5 ;
$arr = array ( 0 = > array ( 1 , 1 ) ,
1 = > array ( 1 , 0 ) ) ;
echo myPow ( $arr , $n - 3 ) ;
5.判斷類型的函數
<?php
$a ;
echo "1." . isset ( $a ) ;
$a = null ;
echo "2." . isset ( $a ) ;
$a = 1 ;
echo "3." . isset ( $a ) ;
unset ( $a ) ;
echo "4." . isset ( $a ) ;
$a = "\0" ;
echo "5." . isset ( $a ) ;
$ivar1 = 0 ;
$istr1 = 'Runoob' ;
if ( empty ( $ivar1 ) )
{
echo '$ivar1' . " 爲空或爲 0。" . PHP_EOL ;
}
else
{
echo '$ivar1' . " 不爲空或不爲 0。" . PHP_EOL ;
}
if ( empty ( $istr1 ) )
{
echo '$istr1' . " 爲空或爲 0。" . PHP_EOL ;
}
else
{
echo '$istr1' . " 字符串不爲空或不爲0。" . PHP_EOL ;
}
echo '0: ' . ( boolval ( 0 ) ? 'true' : 'false' ) . "\n" ;
echo '42: ' . ( boolval ( 42 ) ? 'true' : 'false' ) . "\n" ;
echo '0.0: ' . ( boolval ( 0.0 ) ? 'true' : 'false' ) . "\n" ;
echo '4.2: ' . ( boolval ( 4.2 ) ? 'true' : 'false' ) . "\n" ;
echo '"": ' . ( boolval ( "" ) ? 'true' : 'false' ) . "\n" ;
echo '"string": ' . ( boolval ( "string" ) ? 'true' : 'false' ) . "\n" ;
echo '"0": ' . ( boolval ( "0" ) ? 'true' : 'false' ) . "\n" ;
echo '"1": ' . ( boolval ( "1" ) ? 'true' : 'false' ) . "\n" ;
echo '[1, 2]: ' . ( boolval ( [ 1 , 2 ] ) ? 'true' : 'false' ) . "\n" ;
echo '[]: ' . ( boolval ( [ ] ) ? 'true' : 'false' ) . "\n" ;
echo intval ( 10.0 ) ;
echo intval ( 10 ) ;
echo intval ( 10.5 ) ;
echo intval ( 0.01 ) ;
6.引用的基本使用
<?php
function get_arr_ref ( & $arr ) {
unset ( $arr [ 0 ] ) ;
}
function get_arr ( $arr ) {
unset ( $arr [ 0 ] ) ;
}
$arr1 = array ( 1 , 2 ) ;
$arr2 = array ( 1 , 2 ) ;
get_arr_ref ( $arr1 ) ;
get_arr ( $arr2 ) ;
echo count ( $arr1 ) . "\n" ;
echo count ( $arr2 ) . "\n" ;
7.請寫一個函數,將一個長度超過10 的數組最後5項直接截取,不改變順序變爲前5項
<?php
function arrsort ( $arr ) {
$num = count ( $arr ) ;
if ( $num > 5 ) {
$arr_firstpart = array_slice ( $arr , $num - 5 ) ;
$arr_lastpart = array_slice ( $arr , 0 , ( $num - 5 ) ) ;
} else {
return $arr ;
}
$arr_new = array_merge ( $arr_firstpart , $arr_lastpart ) ;
return $arr_new ;
}
$arr = array ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ) ;
print_r ( arrsort ( $arr ) ) ;
8.求數組中最大數的下標
<?php
function maxIndex ( $arr ) {
$max = 0 ;
$count = count ( $arr ) ;
for ( $i = 0 ; $i < $count ; $i ++ ) {
if ( $arr [ $i ] > $arr [ $max ] ) {
$max = $i ;
}
}
return $max ;
}
$arr = array ( 10 , 9 , 100 , 3 , 5 , 1 ) ;
echo maxIndex ( $arr ) ;
9.類
<?php
abstract class jOrder {
public $orderType ;
public $orderInfo ;
final function get_total_millisecond ( )
{
$time = explode ( " " , microtime ( ) ) ;
$time = $time [ 1 ] . ( $time [ 0 ] * 10000 ) ;
$time2 = explode ( "." , $time ) ;
$time = $time2 [ 0 ] ;
return $time ;
}
function createOrderId ( ) {
srand ( time ( ) ) ;
$orderId = get_total_millisecond ( ) ;
echo $orderId . "\n" ;
$orderId . = ( rand ( ) % 10 ) . ( rand ( ) % 10 ) ;
return $orderId ;
}
function fugai ( ) {
echo "我是父類" ;
}
abstract function ask ( ) ;
}
class pOrder extends jOrder {
function fugai ( )
{
parent : : fugai ( ) ;
echo "我是子類--外面訂單" ;
}
function ask ( )
{
echo "hello" ;
}
}
class sOrder extends jOrder {
function fugai ( )
{
parent : : fugai ( ) ;
echo "我是子類--商超訂單" ;
}
function ask ( )
{
echo "hi" ;
}
}
class zOrder extends jOrder {
function fugai ( )
{
parent : : fugai ( ) ;
echo "我是子類--質享訂單" ;
}
function ask ( )
{
echo "你好" ;
}
}
$t1 = new pOrder ( 1 , "菜" ) ;
$t1 - > fugai ( ) ;
$t1 - > ask ( ) ;
10.生成訂單號
<?php
function createOrderId ( ) {
srand ( time ( ) ) ;
$orderId = get_total_millisecond ( ) ;
echo $orderId . "\n" ;
$orderId . = ( rand ( ) % 10 ) . ( rand ( ) % 10 ) ;
return $orderId ;
}
function get_total_millisecond ( )
{
$time = explode ( " " , microtime ( ) ) ;
$time = $time [ 1 ] . ( $time [ 0 ] * 10000 ) ;
$time2 = explode ( "." , $time ) ;
$time = $time2 [ 0 ] ;
return $time ;
}
$orderId = 0 ;
if ( empty ( $orderId ) ) {
echo createOrderId ( ) ;
} else {
echo $orderId ;
}
11.模擬get()/post()方法
<?php
$data = array (
'foo' = > 'bar' ,
'baz' = > 'boom' ,
'site' = > 'www.nowamagic.net' ,
'name' = > 'nowa magic' ) ;
$data = http_build_query ( $data ) ;
$options = array (
'http' = > array (
'method' = > 'POST' ,
'header' = > 'Content-type:application/x-www-form-urlencoded' ,
'content' = > $data ,
'timeout' = > 60 * 60
)
) ;
$url = "http://www.nowamagic.net/librarys/veda/detail/2585" ;
http:
$context = stream_context_create ( $options ) ;
$result = file_get_contents ( $url , false , $context ) ;
echo $result ;
$url = "http://www.nowamagic.net/librarys/veda/detail/2585" ;
$result = file_get_contents ( $url ) ;
echo $result ;
12.三種輸出方法的比較
<?php
echo "<h2>PHP 很有趣!</h2>" ;
echo "Hello world!<br>" ;
echo "我要學 PHP!<br>" ;
echo "這是一個" , "字符串," , "使用了" , "多個" , "參數。" ;
$txt1 = "學習 PHP" ;
$txt2 = "RUNOOB.COM" ;
$cars = array ( "Volvo" , "BMW" , "Toyota" ) ;
echo $txt1 ;
echo "<br>" ;
echo "在 $txt2 學習 PHP " ;
echo "<br>" ;
echo "我車的品牌是 { $cars [ 0 ] } " ;
print "<h2>PHP 很有趣!</h2>" ;
print "Hello world!<br>" ;
print "我要學習 PHP!" ;
$txt1 = "學習 PHP" ;
$txt2 = "RUNOOB.COM" ;
$cars = array ( "Volvo" , "BMW" , "Toyota" ) ;
print $txt1 ;
print "<br>" ;
print "在 $txt2 學習 PHP " ;
print "<br>" ;
print "我車的品牌是 { $cars [ 0 ] } <br>" ;
$a = array ( 'a' = > 'apple' , 'b' = > 'banana' , 'c' = > array ( 'x' , 'y' , 'z' ) ) ;
print_r ( $a ) ;
$b = array ( 'm' = > 'monkey' , 'foo' = > 'bar' , 'x' = > array ( 'x' , 'y' , 'z' ) ) ;
$results = print_r ( $b , true ) ;
13.字符串反轉
<?php
function reverse1 ( $str )
{
if ( strlen ( $str ) <= 1 ) return $str ;
$ret = '' ;
$ret . = substr ( $str , - 1 ) . reverse1 ( substr ( $str , 0 , strlen ( $str ) - 1 ) ) ;
return $ret ;
}
function reverse2 ( $str ) {
$sz = strlen ( $str ) ;
if ( $sz <= 1 ) return $str ;
$ret = "" ;
for ( $i = $sz - 1 ; $i >= 0 ; $i -- ) {
$ret = $ret . $str [ $i ] ;
}
return $ret ;
}
function reverse3 ( $str , $encoding = 'utf-8' ) {
$ret = '' ;
$sz = mb_strlen ( $str ) ;
for ( $i = $sz - 1 ; $i >= 0 ; $i -- ) {
$ret . = mb_substr ( $str , $i , 1 , $encoding ) ;
}
return $ret ;
}
$str = "ni haoya" ;
$str1 = "你好" ;
echo reverse1 ( $str ) ;
echo reverse3 ( $str1 ) ;
14. 將數組用一行拼裝成一個字符串
<?php
$arr = array (
'I' , 'AM' , 'QA!' , 'DAY' , 'DAY' , 'UP!'
) ;
$count = count ( $arr ) ;
$str = "" ;
for ( $i = 0 ; $i < $count ; $i ++ ) {
$str . = $arr [ $i ] ;
}
echo $str ;
15.static 關鍵字用法
<?php
$count = 5 ;
function get_count ( ) {
static $count = 0 ;
return $count ++ ;
}
echo $count ;
++ $count ;
echo get_count ( ) ;
echo get_count ( ) ;
echo get_count ( ) ;
16.遍歷目錄
<?php
$filePath = array ( ) ;
function traverse ( $path = '.' ) {
global $filePath ;
$current_dir = opendir ( $path ) ;
while ( ( $file = readdir ( $current_dir ) ) !== false ) {
$sub_dir = $path . DIRECTORY_SEPARATOR . $file ;
if ( $file == '.' || $file == '..' ) {
continue ;
} else if ( is_dir ( $sub_dir ) ) {
echo 'Directory ' . $file . ':' ;
traverse ( $sub_dir ) ;
} else {
echo 'File in Directory ' . $path . '/' . $file . '<br/>' ;
$filePath [ $path . '/' . $file ] = $path . '/' . $file ;
}
}
return $filePath ;
}
$array = traverse ( "E:\untitled1" ) ;
print_r ( $array ) ;
17.獲取url中文件後綴
<?php
$url_path = "http://www.baidu.com/abc/de/fg.php?id=1" ;
$result = pathinfo ( $url_path , PATHINFO_EXTENSION ) ;
$result = explode ( '?' , $result ) ;
echo $result [ 0 ] . "\n" ;