php拾遗1

Jun 23, 2016 pm 02:34 PM

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。
  还有注意的是==比较两个对象的内容,===比较对象的句丙,即引用的 地址

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) 11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) Mar 03, 2025 am 10:49 AM

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Einführung in die Instagram -API Einführung in die Instagram -API Mar 02, 2025 am 09:32 AM

Einführung in die Instagram -API

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Arbeiten mit Flash -Sitzungsdaten in Laravel

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Mar 04, 2025 am 09:33 AM

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

12 Beste PHP -Chat -Skripte auf Codecanyon

Benachrichtigungen in Laravel Benachrichtigungen in Laravel Mar 04, 2025 am 09:22 AM

Benachrichtigungen in Laravel

See all articles