PHP 8.5.0 Released!

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 4 notes

up
259
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, Windows
The 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
16
varuninorbit at yahoo dot co dot in
9 years ago
here is a simple example to use namespace
<?php
namespace 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 _1
b one _2
a two _1
up
15
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:
<?php
trait 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 
+add a note

AltStyle によって変換されたページ (->オリジナル) /