Добавить

Примечания пользователей 4 notes

up
247
Anonymous
14 years ago
The keyword 'use' has two different applications, but the reserved word table links to here.It can apply to namespace constucts:file1:<?php namespace foo;  class Cat {     static function says() {echo 'meoow';}  } ?>file2:<?php namespace bar;  class Dog {    static function says() {echo 'ruff';}  } ?>file3:<?php namespace animate;  class Animal {    static function breathes() {echo 'air';}  } ?>file4:<?php namespace fub;  include 'file1.php';  include 'file2.php';  include 'file3.php';  use foo as feline;  use bar as canine;  use animate;  echo \feline\Cat::says(), "<br />\n";  echo \canine\Dog::says(), "<br />\n";  echo \animate\Animal::breathes(), "<br />\n";  ?>Note that felineCat::says()should be\feline\Cat::says()(and similar for the others)but this comment form deletes the backslash (why???) The 'use' keyword also applies to closure constructs:<?php function getTotal($products_costs, $tax)    {        $total = 0.00;                $callback =            function ($pricePerItem) use ($tax, &$total)            {                                $total += $pricePerItem * ($tax + 1.0);            };                array_walk($products_costs, $callback);        return round($total, 2);    }?>
up
29
Anonymous
9 years ago
Tested on PHP 7.0.5, WindowsThe line "use animate;" equals the line "use animate as animate;"but the "use other\animate;" equals "use other\animate as animate;"file1:<?php namespace foo;  class Cat {     static function says() {echo 'meoow';}  } ?>file2:<?php namespace bar;  class Dog {    static function says() {echo 'ruff';}  } ?>file3:<?php namespace other\animate;  class Animal {    static function breathes() {echo 'air';}  } ?>file4:<?php namespace fub;  include 'file1.php';  include 'file2.php';  include 'file3.php';  use foo as feline;  use bar as canine;  use other\animate;       //use other\animate as animate;  echo feline\Cat::says(), "<br />\n";  echo canine\Dog::says(), "<br />\n";  echo \animate\Animal::breathes(), "<br />\n";  ?>
up
11
davidkennedy85 at gmail dot com
10 years ago
In addition to using namespaces and closures, the use keyword has another new meaning as of PHP 5.4 - using traits:<?phptrait Hello {    public function sayHello() {        echo 'Hello ';    }}trait World {    public function sayWorld() {        echo 'World';    }}class MyHelloWorld {    use Hello, World;    public function sayExclamationMark() {        echo '!';    }}$o = new MyHelloWorld();$o->sayHello();$o->sayWorld();$o->sayExclamationMark();?>More info here: http://php.net/manual/en/language.oop5.traits.php
up
8
varuninorbit at yahoo dot co dot in
9 years ago
here is a simple example to use namespace<?phpnamespace app\a{    class one{       public static function _1(){        echo 'a one _1<br>';       }    }}namespace app\b{    class one{        public static function _2(){            echo 'b one _2<br>';        }    }}namespace app{    echo a\one::_1();    echo b\one::_2();    echo a\two::_1();}namespace app\a{    class two{       public static function _1(){        echo 'a two _1<br>';       }    }}prints a one _1b one _2a two _1
To Top