Browse Source

命名空间

master
wiwkok-pc 3 years ago
parent
commit
a1c928e3b8
  1. 23
      07面向对象/02命名空间/01定义命名空间.php
  2. 0
      07面向对象/02命名空间/02-使用命名空间/file1.php
  3. 0
      07面向对象/02命名空间/02-使用命名空间/file2.php
  4. 14
      07面向对象/02命名空间/04多个文件使用同一个命名空间/01.php
  5. 26
      07面向对象/02命名空间/04多个文件使用同一个命名空间/02.php
  6. 69
      07面向对象/02命名空间/05同一个文件定义多个命名空间
  7. 39
      07面向对象/02命名空间/06子命名空间.php
  8. 0
      07面向对象/02命名空间/10显示当前的命名空间.php

23
07面向对象/02命名空间/01定义命名空间.php

@ -0,0 +1,23 @@
<?php
/**
* 把命名空间比喻成文件目录
*/
namespace kuangweijian;
$varA=1;
function funcA(){
echo "hello world".PHP_EOL;
}
class ClassA
{
public $varA;
public function funcA(){
echo "hello".PHP_EOL;
}
}
$obj=new ClassA;
$obj->funcA();
?>

07面向对象/02命名空间/02使用命名空间/file1.php → 07面向对象/02命名空间/02-使用命名空间/file1.php

07面向对象/02命名空间/02使用命名空间/file2.php → 07面向对象/02命名空间/02-使用命名空间/file2.php

14
07面向对象/02命名空间/04多个文件使用同一个命名空间/01.php

@ -0,0 +1,14 @@
<?php
namespace Project1;
const var1=1;
function fn1(){
echo "hello";
}
class ClassA{
public $var=__FILE__.' '.__CLASS__;
}
?>

26
07面向对象/02命名空间/04多个文件使用同一个命名空间/02.php

@ -0,0 +1,26 @@
<?php
namespace Project1;
include "01.php";
//两个文件使用同一个命名空间,变量/常量名会冲突吗?
//const var1=2; //wrong;会与01.php中的var1冲突
function fn2(){
echo "hello";
}
class ClassB{
public $var="world";
}
$obj=new ClassA;
echo $obj->var.PHP_EOL;
echo $var1;
/**
* 在02.php中使用01.php的命名空间,需要include"01.php"
* 说明01.php中的namespace Project1的作用范围就是01.php内
* 虽然02.php的命名空间也是Project1,但如果要使用其实文件中的命名空间,还是需要inlcude
*/
?>

69
07面向对象/02命名空间/05同一个文件定义多个命名空间

@ -0,0 +1,69 @@
<?php
namespace Jack
{
$varA=__NAMESPACE__;
const constA="这个一个常量";
function fnA(){
echo __NAMESPACE__."中的函数".__FUNCTION__.PHP_EOL;
}
class ClassA{
public $varA=2;
public function fnA(){
echo __NAMESPACE__.__FUNCTION__.PHP_EOL;
}
}
echo $varA.PHP_EOL;
fnA();
$obj=new ClassA;
$obj->fnA();
}
namespace Tom
{
$varA=__NAMESPACE__;
const content="这个一个常量";
function fnA(){
echo __NAMESPACE__.__FUNCTION__.PHP_EOL;
}
class ClassA{
public $varA=2;
public function fnA(){
echo __NAMESPACE__.__FUNCTION__.PHP_EOL;
}
}
echo $varA.PHP_EOL;
fnA();
$obj=new ClassA;
$obj->fnA();
}
//全局代码
namespace{
$varA="全局代码中的变量";
echo $varA.PHP_EOL;
//调用其中一个命名
// echo Jack\$varA.PHP_EOL; //变量不在命名空间的作用范围内
echo Jack\constA; //常量
Jack\fnA(); //函数
$objA=new Jack\ClassA; //类
echo $objA->varA.PHP_EOL;
//echo Tom\$varA.PHP_EOL;
}
?>

39
07面向对象/02命名空间/06子命名空间.php

@ -0,0 +1,39 @@
<?php
namespace A{
$num=1;
function fnA(){
echo __FUNCTION__.PHP_EOL;
}
const constA="HELLO";
class ClassA{
public $num=2;
public function fnA()
{
echo __FUNCTION__.PHP_EOL;
}
}
}
namespace A\B{
$num=1;
function fnA(){
echo __FUNCTION__.PHP_EOL;
}
const constA="HELLO";
class ClassA{
public $num=2;
public function fnA()
{
echo __FUNCTION__.PHP_EOL;
}
}
}
?>

07面向对象/02命名空间/01显示当前的命名空间.php → 07面向对象/02命名空间/10显示当前的命名空间.php

Loading…
Cancel
Save