我是PHP和Web脚本的新手,所以这是一个新问题。
目前我正在创建一个对象的实例,但是当我调用构造函数时 脚本slienty关闭...它没有调用下一个函数,我不知道为什么。 欢迎任何帮助。
这是代码。
<?php
class product {
var $ssProductName;
var $ssVendorName;
var $ssDescr;
var $ssURI;
// Clean constructor, strings must be cleaned before use
function __construct($ssProd, $ssVendor, $ssD, $ssU) {
$this->$ssProductName = $ssProd;
$this->$ssVendorName = $ssVendor;
$this->$ssDescr = $ssD;
$this->$ssURI = $ssU;
}
// print a table of the values
function DisplayOneEntry() {
echo '<table border="1">
<tr>
<td>'.$this->$ssProductName.'</td>
<td>'.$this->$ssVendorName.'</td>
<td>'.$this->$ssDescr.'</td>
<td>'.$this->$ssURI.'</td>
</tr>
</table>';
}
}
echo "<HTML>";
echo "A";
$newP = new product("Redhat", "Redhat corp", "Leader in", "www.redhat.com");
echo "B";
$newP->DisplayOneEntry();
echo "</HTML>";
?>
但输出只是:
<HTML>
A
然后别的什么。
这是在使用php 5.2.9和Apache 2.2的托管服务提供商上运行。
答案 0 :(得分:9)
您需要使用以下命令访问成员变量:
$this->variableName
不
$this->$variableName
答案 1 :(得分:3)
$this->$ssProductName = $ssProd;
应该是
$this->ssProductName = $ssProd;
在&gt;
之后没有$答案 2 :(得分:1)
语法$this->$foo
是引用class属性的variable variable,其值为$foo
。因此,如果$foo
的值为bar
,则$this->$foo
将引用$foo->bar
而不是$this->foo
。
所以,只需删除$
之后的$this->
即可。
答案 3 :(得分:0)
那是因为你的php脚本是错误的。要捕获此类错误,您应该在调试服务器上运行它(display_errors
设置为On
)或使用其他日志记录方法。
然而,主要问题是你以错误的方式访问对象成员;没有第二个美元符号。而不是
$this->$ssProductName = $ssProd;
使用
$this->ssProductName = $ssProd;