php tricks

WBOY
Libérer: 2016-06-20 12:54:20
original
1415 Les gens l'ont consulté

1.函数并立即调用

php    call_user_func(function(){            echo "hello,world";    });
Copier après la connexion

2.上下文变量

php    $context="hello,world";    call_user_func(function()use($context){        echo $context;    });
Copier après la connexion

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();};
Copier après la connexion

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(){    }}
Copier après la connexion

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*/ 
Copier après la connexion

6.object

php$obj = new stdClass;$obj->a = 1;$obj->b = 2;
Copier après la connexion

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
Copier après la connexion

8.list explode

php    list( , $mid) = explode(';', 'aa;bb;cc');    echo $mid; //输出 bb
Copier après la connexion

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;}
Copier après la connexion

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;    }
Copier après la connexion

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal