php拾遗1

WBOY
Release: 2016-06-23 14:34:46
Original
917 people have browsed it

1,魔术常量,有很多,总结之
   A 识别脚本运行时的位置或名称等
    _LINE_  返回当前行号
    _FILE_  返回当前脚本的完整路径和文件名,包含一绝对路径
    _FUNCTION_  返回该函数被定义时的名字(大小写敏感)
    _CLASS_   类名称,返回该类别定义时的名字(大小写敏感)
    _METHOD_   类的成员方法名称(大小写敏感)
    class MagicTest {
      //返回当前函数的名称
     function test_function() {
         return __FUNCTION__;
     }
     //返回当前类的名字
     function test_class() {
         return __CLASS__;
     }
     //返回当前方法的名字
     function test_method() {
         return __METHOD__;
     }
 }
 echo "_LINE_运行时的所在行号: ".__LINE__."
";
 echo "当前PHP脚本的完整路径: ".__FILE__."
";
 echo "当前执行的类名: ".MagicTest::test_class()."
";
 echo "当前执行的函数名: ".MagicTest::test_function()."
";
 echo "当前类的方法名: ".MagicTest::test_method()."
";
?>
    还有OOP里的魔术
   _get()与_set(),_call(),当试图写入一个不存在或不可见的属性时,会执行_set()方法,如
   class myShop {
   private $p = array();
  
    function __set($name, $value) { //取得属性名称和值
      echo "set::$name:$value
";
     $this->p[$name] = $value;
   }
  
   function __get($name) { //取得属性名称
     print "get::$name
";
     return array_key_exists($name,$this->p) ? $this->p[$name] : null;
   }
 }
 
 $shop = new MyShop();
 $shop->apple = 2;
 $shop->pear = 3;
 $shop->pear++;
 echo "苹果=". $shop->apple. "
";
 echo "梨=". $shop->pear. "
";
?>
 
2 PHP里的CLONE()
    class MyClass {
  public $var = 1;
 }
 $obj1 = new MyClass();
 $obj2 = $obj1;
 $obj2->var = 2;
 print $obj1->var;
?>
    PHP4中上面的输出1,$obj2将值全部赋给$obj1,是建立对象的副本;但PHP5中,$obj1被当一个对象引用处理,当$obj2的值改变时,实际上修改的
是$obj的引用,所以输出2。
  还有注意的是==比较两个对象的内容,===比较对象的句丙,即引用的 地址

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template