我试图在我点击网站上的按钮后调用的php脚本中使用对象GestionnaireDesTaches
。
这就是我调用脚本的方式:
$(document).on( "click", "#addWidgetButton", function(e) {
e.preventDefault();
gridster[0].add_widget.apply(gridster[0], ['<li data-row="1" data-col="2" data-sizex="1" data-sizey="1" class="gs-w"><header><p style="cursor: move;">|||</p><div class="dragDiv">New</div></header></li>', 1, 1]);
$.ajax({
type: "POST",
url: 'trait.php',
data: { action : action , board : board },
success: function(data)
{
alert("Project created!");
}
});
});
这工作正常,但我的脚本有问题:
<?php
require_once('GestionnaireDesTaches.php');
require_once('Board.php');
require_once('Projet.php');
require_once('Tache.php');
$boards = simplexml_load_file('gtxml.xml');
$gestionnaireDesTaches = new GestionnaireDesTaches($boards['utilisateur']);
?> <p> <?php echo "hh".$gestionnaireDesTaches->getUtilisateur();?></p><?php
?> <p> <?php echo "hh".$boards['utilisateur'];?></p>
第一个回声没有给我任何东西,第二个回显给我的是Utilisateur,它就像第二次调用时对象失去了它的属性($gestionnaireDesTaches->getUtilisateur();
)加载xml文件没有问题,当我独自运行时,这个课程完美无缺:这是我如何单独测试的:
$gt = new GestionnaireDesTaches("Othman");
echo $gt->getUtilisateur(); \\ I get my name with this
请告诉我我做错了什么!
答案 0 :(得分:1)
我认为您的问题来自于您的类GestionnaireDesTaches
期望字符串作为构造函数参数但它获得类型为SimpleXmlElement
的对象。
函数simplexml_load_file()
返回类型为SimpleXmlElement
的对象,它是包含XML对象的PHP资源的包装器。提供对存储在XML对象中的信息的访问的SimpleXmlElement
的所有方法都返回SimpleXmlElement
个对象。
这意味着$boards['utilisateur']
不是一个字符串,而是一个SimpleXmlElement
对象,当你期望它表现得像一个字符串时,它(大多数情况下)的行为就像一个字符串。我不知道为什么它在这段代码中没有这种方式,因为我不知道你如何在GestionnaireDesTaches
类中处理它。
尝试将$boards['utilisateur']
转换为字符串,然后再将其传递给类GestionnaireDesTaches
的构造函数:
$gestionnaireDesTaches = new GestionnaireDesTaches(
(string)$boards['utilisateur']
);
或
$gestionnaireDesTaches = new GestionnaireDesTaches(
$boards['utilisateur']->__toString()
);