使用相同的命名空间php,调用未定义的函数

时间:2014-02-27 00:14:33

标签: php class namespaces undefined

使用相同的命名空间php

我将这些文件放在同一个文件夹中:

OtherFunctions.php

<?php
namespace Pack\sp;
$Tble = NULL;

function SetTble($tble) {
  global $Tble;
  $Tble = $tble;
}

function GetTble() {
  global $Tble;
  return $Tble;
}

function Funct0($Str0, $Str1) {
  return $Str0 == $Str1;
}

function Funct1($Arg) {
  return "The Value is ".$Arg;
}
//... from 0 to 16
function Funct16($Arg) {
  return "The Value is ".$Arg;
}
?>

如何调用此文件中包含的所有功能?

在一个类File SubClass.php 中我有:

<?php
namespace Pack\sp;
class SubClass {
  public $CArg = "";
}
?>

在其他类File LeadClass.php 中 我有这个:

<?php
namespace Pack\sp;
use \Pack\sp\SubClass;
require_once("OtherFunctions.php");
class LeadClass {
  public function __construct($Name) {
    echo("_._");
    $NewSC = new SubClass();
    $NewSC->CArg = $Name;
    SetTble($Name);
    echo("ini:".GetTble().":end");
  }
}
?>

我想在OtherFunctions.php文件的一条指令中调用所有函数,但我不知道怎么做....

我尝试在其他代码中复制此邮件 致命错误:在第10行调用C:... \ LeadClass.php中的未定义函数GetTble()

但是,我正在获取空白页

编辑

添加了一行:

require_once("OtherFunctions.php"); 

并更换了一行:

require_once("SubClass.php");

行:

use \Pack\sp\SubClass;
在LeadClass.php 文件中

但是,我正在获取空白页

1 个答案:

答案 0 :(得分:1)

您需要添加下一行

namespace Pack\sp;
use \Pack\sp\SubClass; // <--- add this

另外我认为你应该将OtherFunctions文件的functios放入一个新的类链接

namespace Pack \ sp;

class OtherFunctions{
  // your current code goes here
}

之后,你需要扩展SubClass,使用OtherFunctios类

namespace Pack\sp;
use Pack\sp\OtherFunctions;
class SubClass extends OtherFunctions {
  public $CArg = "";
}

修改 我刚试过你的代码,我可以让LeasClass按照以下方式工作

<?php
namespace Pack\sp;
require_once("OtherFunctions.php");
require_once("SubClass.php");
class LeadClass {
  public function __construct($Name) {
    echo("_._");
    $NewSC = new SubClass();
    $NewSC->CArg = $Name;
    SetTble($Name);
    echo("ini:".GetTble().":end");
  }
}

$LeadClass = new LeadClass('table');

?>

你已经初始化了课程吗?