Blogger Information
Blog 263
fans 3
comment 2
visits 113070
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP关键字
福哥的博客
Original
1089 people have browsed it

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
/*文件处理*/
/*使用价值 :用户交互(比如头像) 临时数据储存(身份信息等) 日志记录(***作记录等) 备份文件*/
/*实际应用 :QQ相册 数据库备份 商品图 各种其他的文件交互*/
/*知识点 :用户上传文件 PHP接受文件 PHP自己创建文件 文件处理*/
/*用户上传文件
1.上传文件是一个前端后台的交互
2.需要前端的配合 
3.提交数据需要表单 
4.enctype="multipart/form-data"//2进制
5.<input type = 'file' name='用来区别不同输入框的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();//把数组中的值赋给一些变量 
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() 中使用数组索引
$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() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。 但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。 它是以相反顺序赋值的。 

Warning 
在 list() 执行过程中修改数组(比如使用 list($a, $b) = $b)将会产生不可预知的结果。 


Note: 

list() 仅能用于数字索引的数组并假定数字索引从 0 开始。 */

?>

static :

<?php
//static修饰类的成员属性和成员方法(就是静态属性,静态方法)
//类中的静态属性和方法不用实例化new()就可以直接使用类名访问
//类::$静态属性  类::静态方法
//在类的方法中 不能用this来引用静态变量或静态方法,而需要用self来引用. self::$静态属性 self::静态方法
//静态方法中不可以使用非静态的内容,就是不让使用$this.
//静态属性是共享的,也就是new很多对象也是共用一个属性
/*class demo{
    
    static public $name = "zhangsan";//成员属性
    static public function say(){
        return $this-> name;
    }
}
echo demo::$name;*/
//输出:zhangsan   在类的外部访问静态的成员属性,类型::成员属性名
?>
<?php
/*class demo{
    
    static public $name = "zhangsan";//成员属性
    static public function say(){
        return self::$name;//在类的内部访问静态成员属性 self::成员属性名
    }
}
echo demo::say();*/
//输出:zhangsan    在类的外部访问静态的成员方法,类型::成员方法名
?>


<?php
class demo{
    
    static public $num = 0;  //静态的成员属性只能初始化一次,所有实例化的对象访问的都是同一个静态成员属性
    
    public function __construct(){
        self::$num++;
    }
    
}
$d1 = new demo();
    echo "<br />";
    echo demo::$num;
$d2 = new demo();
    echo "<br />";
    echo demo::$num;
//输出:1  2
?>
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post