php包含一次不在课堂上工作

php包含一次不在课堂上工作,php,Php,我正在把一个项目转换成多语言 但是我曾经遇到过require_(../idioma/lang.br.php)的问题;下面 数组变量 $user["TAMANHO_SENHA"] isnull 这是一个包含 <?php //cadastro usuario $user = array(); $user["PREENCHER_TUDO"] = "Por favor preencha todos os campos."; $user["TAMANHO_SENHA"] = "Senha

我正在把一个项目转换成多语言 但是我曾经遇到过require_(../idioma/lang.br.php)的问题;下面

数组变量

$user["TAMANHO_SENHA"] 
isnull

这是一个包含

<?php
//cadastro usuario
$user = array();
$user["PREENCHER_TUDO"]  = "Por favor preencha todos os campos.";
$user["TAMANHO_SENHA"]   = "Senha deve conter entre 6 a 30 digitos.";
require_once(../classe/class.usuario.dao.php)

它起作用了

我做了个测试 我创造

现在它可以工作了

$e = new UserLang();
echo $e->user["PREENCHER_TUDO"];
什么是课堂作业 类外的数组不起作用

我不知道发生了什么事


谢谢你的帮助

你的班级看不到外面有什么。如果您的意思是让类处理特定的用户数据集,那么应该将其设置为类属性。以下是最简单的方法:

Class UsarioBLL{
    public $user; //needs to be set before other functions can use it
}
创建对象后,设置用户

$usario = new UsarioBLL();
$usario->user = $user; //now  the class can see the user data!
完成此操作后,您的
CastradaUsario
函数将看到数据

为什么类工作和类外数组不工作

请注意,
require_once(../idioma/lang.br.php)
在类定义上方插入
$user
数组。你的问题与我有关。在类之外定义数组时,类成员无法看到它

$user = [...];
Class UsarioBLL{
// $user is undefined here.
}
要获得可见性,需要传递数据并将其存储在类变量中。最简单的方法就是我上面的原始答案。另一种方法是将数据传递给类构造函数:

Class UsarioBLL{
    private $user;
    __construct($input_data){this->user = $input_data}
}
创建新对象时,将调用
\u构造。因此,按如下方式创建新对象:

$usario = new UsarioBLL($user); //will call __construct and pass $user

你们班看不到外面有什么。如果您的意思是让类处理特定的用户数据集,那么应该将其设置为类属性。以下是最简单的方法:

Class UsarioBLL{
    public $user; //needs to be set before other functions can use it
}
创建对象后,设置用户

$usario = new UsarioBLL();
$usario->user = $user; //now  the class can see the user data!
完成此操作后,您的
CastradaUsario
函数将看到数据

为什么类工作和类外数组不工作

请注意,
require_once(../idioma/lang.br.php)
在类定义上方插入
$user
数组。你的问题与我有关。在类之外定义数组时,类成员无法看到它

$user = [...];
Class UsarioBLL{
// $user is undefined here.
}
要获得可见性,需要传递数据并将其存储在类变量中。最简单的方法就是我上面的原始答案。另一种方法是将数据传递给类构造函数:

Class UsarioBLL{
    private $user;
    __construct($input_data){this->user = $input_data}
}
创建新对象时,将调用
\u构造。因此,按如下方式创建新对象:

$usario = new UsarioBLL($user); //will call __construct and pass $user

无需
echo var\u dump()
,只需
var\u dump()
。您应该阅读这篇。同样值得注意的是,复制和粘贴代码比屏幕截图更可取。同样,使用全局变量是非常糟糕的做法。你应该发布你的代码而不是图片。不过,不要发布整个脚本,只发布理解问题所需的摘录。我安排了post脚本请再次查看帖子无需
echo var_dump()
,只需
var_dump()
。您应该阅读这篇。同样值得注意的是,复制和粘贴代码比屏幕截图更可取。同样,使用全局变量是非常糟糕的做法。你应该发布你的代码而不是图片。不过,不要发布整个脚本,只发布理解问题所需的摘录。我安排了post脚本请再次查看post是的,我可以将数组作为参数传递,但因为“class.usuario.dao.php”包括工作?$dao=new UsuarioDAO()行下方;它不显示错误,这不应该也是显示错误吗?请参阅文章,以澄清您的问题。我已经编辑了我的回答。。。。类UsuarioBLL{public function CadastraUsuario($campos){require_once(../idioma/lang.br.php);$msg=array();//senha if(strlen($campos['senha'])>=6&&strlen($campos['senha'])是的,我可以将数组作为参数传递,但因为“Class.usuario dao.php”包括工作?在$dao=new UsuarioDAO()行下面;它不显示错误,这不应该也是显示错误吗?请参阅文章,感谢您解答问题。我已经编辑了我的回答…类UsuarioBLL{public function CadastraUsuario($campos){require_once(../idioma/lang.br.php);$msg=array();//senha if(strlen($campos['senha'])>=6&&strlen($campos['senha']))
$usario = new UsarioBLL($user); //will call __construct and pass $user