博客列表 >PHP关键字

PHP关键字

福哥的博客
福哥的博客原创
2017年07月25日 19:48:301088浏览

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
?>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议