Blogger Information
Blog 17
fans 0
comment 0
visits 12554
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件加载和对象基础学习心得
越努力越幸运
Original
533 people have browsed it

<?php

//demo01


    //加载用户的自定义模板:include:本质:是一个语言结构,不是函数!!!但支持函数方式:如第四行;

    //以下的方式都ok!而且文件加载失败,并不影响文件继续执行

    include 'templet.html';

    include('templet.html');

    $file="templet.html";

    include $file;

    include "$file";

    

    //用表达式也行:

    $aaa="templet";

    include $aaa.'.html';

    

    //以下实例很好:1.可以用:!include ''   来判断是不是未加载;

    //            2.可以用:@  抑止符来阻止报错;

    if(@!include 'templet1.html'){

     include 'default.html';

     echo '如果看到我,说明程序没有因文件加载失败而终止;';

    }


    //还可以用以下方式来判断:

    if(file_exists($file)&& is_file($file)){

     include $file;

    }else {

     include 'default.html';

    }



//demo02


    //include_once():仅允许加载一次;

    //全局成员:函数,常量,类,接口;

    //不支持函数重载:函数重载:如果两个函数,名字一样,参数不一样,也不行,不支持;

    

    //举例:见:common.php

    //include_once():加载前会检查该文件是否已经加载过了,去重检查

    include_once 'common.php';

    include_once 'common.php';

    

    echo fetch();

    

//demo03

    //require:强制加载:如果没有实现,会报错!并且,下面的代码也不会被执行;

    

    /*

    require 'config.php';

    require 'config1.php';//如果没有实现,会报错!并且,下面的代码也不会被执行;

    require 'config.php';//重名也报错,并且下面代码不会执行;

    */

    

    require_once 'config.php';

    require_once 'config.php';//注意:这样写没问题,不报错,下面代码也执行!!!

    

    //require_once:强制去重加载;

    

    echo '下面代码有没有执行呢?<br>';

    

    


//demo04文件加载和作用域:同一作用域下,文件外部变量可以在文件内使用;


    $bbb='php中文网';

    include 'file1.php';//有意思的是:这里运行时,$bbb有值,而下面函数中include时就没有值;

    

    echo '<hr>';

    

    //函数作用域

    function test2(){

     //global $bbb;所以,要将这一行代码放进来,就能找到$bbb了!!!!!!!

     include 'file1.php';//有意思的是:这里运行时,$bbb没有值;原因:在函数中,不认识程序外部的全局变量,所以不认识;

     //

     echo $email;

    }


    test2();

    

    echo '<hr>';

    

    function test3(){

     include 'file2.php';

     echo $goods;

    }


    test3();

    echo '<hr>';


//demo06

    //类的声明与实例化

    class Goods{

    

    }

    

    $goods=new Goods();

    

    //函数:判断一个对象是不是一个类的实例:instanceof:

    var_dump($goods instanceof Goods);

    

    echo '<hr>';


    echo get_class($goods);

    echo '<br>';

    

    //支持类名赋值给变量----动态类;

    $class='Goods';

    $obj=new $class();

    

    var_dump($obj instanceof Goods);

    echo '<br>';

    

    //类名是需要大写的,如果拿到的字符串是小写,可以用函数ucfirst()将它变为合法的类名;

    

    $class=ucfirst('goods');

    

    

//demo07

    class User{

     //类中成员的作用域:

     //常规属性:其中:非法属性有:

     /*

     * 1.不能以变量来赋值:例:public $age=$aa;

     * 2.不能以其他类属性来赋值:例:public $user=$this->name;

     * 3.不能以表达式来赋值:例:public $total=$price*9;

     * 4.不能以函数来赋值:例:public $createtime=time();

     * */

     public $name='胡八一';

     public $age=40;

     public $option=[1,2,3];

     public $output=<<<'RES'

     <h3>中国必胜</h3>

RES;

     public $emael='peter@php.cn';

    

     //静态属性:

     public static $nationality='中国/CHINA';

    

     //抽象属性:(没有被初始化,默认值是null)

     public $salary;

     //注意;抽象属性只能这样赋值;如果:

     //public $salary=null;这样是不行的!这就不再是抽象属性了;

    

    }


    $user=new User;

    echo "姓名:{$user->name},年龄:{$user->age}<br>";

    

    echo $user->output.'<br>';

    

    //问题:heredoc中,可以解析变量,当类属性是一个heredoc时,heredoc中的变量会不会被解析呢?

    //回答:不会!!!因为类属性不允许是变量,和heredoc冲突时,按照类属性的要求来!!!

    

    //访问静态属性:使用范围解析符,双冒号::;

    echo User::$nationality;

    echo '<br>';


    $user->name='王胖子';

    echo $user->name;

    echo '<br>';

    

    User::$nationality='中国/CHINA!YE!';

    

    echo User::$nationality;

    echo '<br>';


    var_dump($user->salary);

    echo '<br>';

    

    var_dump(is_null($user->salary));

    echo '<br>';

    

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