const:
<?php //const是一個在'類'中定義常量的關鍵字,php中定義常量使用define(),但類里面定義常量是const //語法: //const CONSTANT ='constantvalue';//定義 //echo self::CONSTANT; //類內部訪問 //echo className::CONSTANT;//類外部訪問 class demo{ //常量定義時就要賦初始值 //常量一旦定義就不能修改 //如果是多個單詞組成的常量名要用下劃線分隔 const HOST ='172.0.0.1'; const DB_NAME ='fuyan'; public function getConst(){ //在類的內部訪問常量self::常量名 return self::DB_NAME; } } //在類的外部訪問常量 類名::常量名 echo demo::HOST; echo "<hr />"; $demo = new demo(); echo $demo->getConst(); //輸出 :172.0.0.1 //------------------------------ //fuyan ?>
file:
<?php /*文件處理*/ /*使用價值 :用戶交互(比如頭像) 臨時數(shù)據儲存(身份信息等) 日志記錄(***作記錄等) 備份文件*/ /*實際應用 :QQ相冊 數(shù)據庫備份 商品圖 各種其他的文件交互*/ /*知識點 :用戶上傳文件 PHP接受文件 PHP自己創(chuàng)建文件 文件處理*/ /*用戶上傳文件 1.上傳文件是一個前端后臺的交互 2.需要前端的配合 3.提交數(shù)據需要表單 4.enctype="multipart/form-data"//2進制 5.<input type = 'file' name='用來區(qū)別不同輸入框的name' /> */ header("content-type:text/html;charset=utf-8;"); print_r($_FILES['file']); //$_FILES['file']['name'] 文件名 //$_FILES['file']['type'] 文件類型 //$_FILES['file']['tmp_name'] 臨時文件名 //$_FILES['file']['error'] 錯誤信息 //$_FILES['file']['size'] 文件大小 if ($_FILES['file']['type'] != 'image/jpeg'){ echo '文件類型不對'; }else{ echo '文件類型正確'; } move_uploaded_file($_FILES['file']['tmp_name'],'ceshi.jpeg');//保存到'ceshi.jpeg' ?>
final :
<?php //final修飾的類是最終的類,不能被繼承,final修飾的成員方法是最終版本的方法,不能被重寫 //final 關鍵字:不能被繼承,不能重寫 class demo{ public function say(){ echo "demo say"; } } class demo1 extends demo{ } $d1=new demo1(); $d1->say(); //輸出 demo say ?> <?php final class demo{ public function say(){ echo "demo say"; } } class demo1 extends demo{ } $d1=new demo1(); $d1->say();//報錯,final不能被繼承 ?> <?php class demo{ final public function say(){ echo "demo say"; } } class demo1 extends demo{ } $d1=new demo1(); $d1->say();//輸出 demo say ?> <?php class demo{ final public function say(){ echo "demo say"; } } class demo1 extends demo{ public function say(){ echo "demo1 say"; } } $d1=new demo1(); $d1->say();//報錯,final不能被重寫 ?>
goto :
<?php goto a; echo "Foo"; a: echo "Bar"; //輸出 Bar ?> <?php for($i=0,$j=50;$i<100;$i++){ while($j--){ if($j==17)goto end; } } echo "i=$i"; end: echo "j hit 17"; ?>
instanceof :
<?php //instanceof關鍵字:檢測一個對象是否由一個類或這個類的子類實例化來的 class demo{ } class demo1 extends demo{ } $demo = new demo(); $demo1 = new demo1(); var_dump($demo instanceof demo); var_dump($demo1 instanceof demo1); var_dump($demo instanceof demo1); var_dump($demo1 instanceof demo); /*輸出: boolean true boolean true boolean false boolean true */ ?>
list :
<?php function small_numbers() { return array (0, 1, 2); } list ($zero, $one, $two) = small_numbers();//把數(shù)組中的值賦給一些變量 echo $zero; ?> <table> <tr> <th>Employee name</th> <th>Salary</th> </tr> <?php $result = mysql_query("SELECT id, name, salary FROM employees", $conn); while (list($id, $name, $salary) = mysql_fetch_row($result)) { echo " <tr>\n" . " <td><a href=\"info.php?id=$id\">$name</a></td>\n" . " <td>$salary</td>\n" . " </tr>\n"; } ?> </table> <?php //使用嵌套的 list() list($a,list($b,$c))=array(1,array(2,3)); var_dump($a,$b,$c); //int(1) int(2) int(3) ?> <?php //list() 中使用數(shù)組索引 $info = array('coffee','brown','caffeine'); list($a[0],$a[1],$a[2])=$info; var_dump($a); //產生如下輸出(注意單元順序和 list() 語法中所寫的順序的比較): //array(3) { //[2]=> //string(8) "caffeine" //[1]=> //string(5) "brown" //[0]=> //string(6) "coffee" //} /*list() 從最右邊一個參數(shù)開始賦值。如果你用單純的變量,不用擔心這一點。 但是如果你用了具有索引的數(shù)組,通常你期望得到的結果和在 list() 中寫的一樣是從左到右的,但實際上不是。 它是以相反順序賦值的。 Warning 在 list() 執(zhí)行過程中修改數(shù)組(比如使用 list($a, $b) = $b)將會產生不可預知的結果。 Note: list() 僅能用于數(shù)字索引的數(shù)組并假定數(shù)字索引從 0 開始。 */ ?>
static :
<?php //static修飾類的成員屬性和成員方法(就是靜態(tài)屬性,靜態(tài)方法) //類中的靜態(tài)屬性和方法不用實例化new()就可以直接使用類名訪問 //類::$靜態(tài)屬性 類::靜態(tài)方法 //在類的方法中 不能用this來引用靜態(tài)變量或靜態(tài)方法,而需要用self來引用. self::$靜態(tài)屬性 self::靜態(tài)方法 //靜態(tài)方法中不可以使用非靜態(tài)的內容,就是不讓使用$this. //靜態(tài)屬性是共享的,也就是new很多對象也是共用一個屬性 /*class demo{ static public $name = "zhangsan";//成員屬性 static public function say(){ return $this-> name; } } echo demo::$name;*/ //輸出:zhangsan 在類的外部訪問靜態(tài)的成員屬性,類型::成員屬性名 ?> <?php /*class demo{ static public $name = "zhangsan";//成員屬性 static public function say(){ return self::$name;//在類的內部訪問靜態(tài)成員屬性 self::成員屬性名 } } echo demo::say();*/ //輸出:zhangsan 在類的外部訪問靜態(tài)的成員方法,類型::成員方法名 ?> <?php class demo{ static public $num = 0; //靜態(tài)的成員屬性只能初始化一次,所有實例化的對象訪問的都是同一個靜態(tài)成員屬性 public function __construct(){ self::$num++; } } $d1 = new demo(); echo "<br />"; echo demo::$num; $d2 = new demo(); echo "<br />"; echo demo::$num; //輸出:1 2 ?>
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號