php tricks

Jun 20, 2016 pm 12:54 PM

1.函数并立即调用

php    call_user_func(function(){            echo "hello,world";    });
Nach dem Login kopieren

2.上下文变量

php    $context="hello,world";    call_user_func(function()use($context){        echo $context;    });
Nach dem Login kopieren

3.use和$this

php    class A {     public  $t;     public function  __construct($t="hello,world"){         $this->t=$t;     }     function test(){         call_user_func(function(){                 echo $this->t;//php5.4+         });     } } $a=new A(); $a->test();class Hello {    private $message = "Hello world\n";    public function createClosure() {        return function() {            echo $this->message;        };    }}class Bye {    private $message = "Bye world\n";}$hello = new Hello();$helloPrinter = $hello->createClosure();$helloPrinter(); // outputs "Hello world"$bye = new Bye();$byePrinter = $helloPrinter->bindTo($bye, $bye);//like javascript apply$byePrinter(); // outputs "Bye world"$CI = $this;$callback = function () use (&$CI) {$CI->public_method();};
Nach dem Login kopieren

4.调用一切可调用的东西

php    class Contrller{     //调用具体的action,    public function __act($action){        call_user_func(            array($this,$action)         ); //$this->{$action}()    }}class HelloContrller extends Controller{     public function index(){    }    public function hello(){    }    public function dance(){    }}
Nach dem Login kopieren

5.装饰器

php    //装饰器 $dec=function($func) {     $wrap=function ()use ($func) {     echo "before calling you do sth\r\n";     $func();     echo "after calling you can do sth too\r\n ";     };     return $wrap; }; //执行某功能的函数 $hello=function (){     echo "hello\r\n"; }; //装饰 $hello=$dec($hello); //在其他地方调用经过装饰的原函数 $hello(); /*output:before calling you do sthhelloafter calling you can do sth too*/ 
Nach dem Login kopieren

6.object

php$obj = new stdClass;$obj->a = 1;$obj->b = 2;
Nach dem Login kopieren

7.static

php<br />class father{    public function __construct()    {        // $this->init();      static::init();    }    private function init()    {        echo "father\n";    }}class son extends father{    /*public function __construct()    {        $this->init();    }*/    public function init()    {        echo "son\n";    }}$son  = new son();son::init();//son
Nach dem Login kopieren

8.list explode

php    list( , $mid) = explode(';', 'aa;bb;cc');    echo $mid; //输出 bb
Nach dem Login kopieren

9.object array

php    $array = json_decode(json_encode($deeply_nested_object), true);    //$array =  (array) $yourObject;    function object_to_array($data){    if (is_array($data) || is_object($data))    {        $result = array();        foreach ($data as $key => $value)        {            $result[$key] = object_to_array($value);        }        return $result;    }    return $data;}
Nach dem Login kopieren

10.tree

php    function displayTree($array){      $newline = "<br>";      $output = "";      foreach($array as $key => $value) {          if (is_array($value) || is_object($value)) {              $value = "Array()" . $newline . "(<ul>" . $this->displayTree($value) . "</ul>)" . $newline;          }         $output .= "[$key] => " . $value . $newline;      }      return $output;    }
Nach dem Login kopieren

11.交换变量
list($a, $b) = array($b, $a);

来自
知乎
http://stackoverflow.com/questions/8391099/using-this-in-anonymous-fun...
http://stackoverflow.com/questions/4345554/convert-php-object-to-assoc...
https://www.quora.com/What-are-some-cool-PHP-tricks

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)

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

Ankündigung von 2025 PHP Situation Survey Ankündigung von 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

Ankündigung von 2025 PHP Situation Survey

See all articles