我的PHP数组不知何故没有';我不认为我的数组是数组
好的,我把范围缩小到一个关键功能 这似乎不可能,但每次我“回显”它时,这个函数总是说我用来存储数据的变量数组不再是数组 违规代码我的PHP数组不知何故没有';我不认为我的数组是数组,php,Php,好的,我把范围缩小到一个关键功能 这似乎不可能,但每次我“回显”它时,这个函数总是说我用来存储数据的变量数组不再是数组 违规代码 private function do_display_message_details() { $m_message_values = ''; $m_address = APP_ROOT_PATH; if ($this->c_arr_stored_message_data) { echo "I AM AN ARRAY"; } e
private function do_display_message_details()
{
$m_message_values = '';
$m_address = APP_ROOT_PATH;
if ($this->c_arr_stored_message_data)
{
echo "I AM AN ARRAY";
}
else
{
echo "I AM NOT AN ARRAY";
}
$m_message_name = $this->c_arr_stored_message_data['message-name'];
$m_arr_stored_message_data = $this->c_arr_stored_message_data['message-retrieved-data'];
foreach((array)$m_arr_stored_message_data as $m_message_value)
{
$m_message_row = explode(',', $m_message_value);
$m_message_values .= '<tr>';
$m_message_values .= '<td>' . $m_message_row[0] . '</td>';
$m_message_values .= '<td>' . $m_message_row[1] . '</td>';
$m_message_values .= '<td>' . $m_message_row[2] . '</td>';
$m_message_values .= '</tr>';
}
$this->c_html_page_content = <<< VIEWSTOREDMESSAGEDATA
<div id="lg-form-container">
<h2>Message name: $m_message_name</h3>
<h3>Message Data</h3>
<table border="1">
<tbody>
<tr>
<th>Date</th>
<th>Time</th>
<th>Message Values</th>
</tr>
$m_message_values
</tbody>
</table>
<br />
<form method="post" action="$m_address">
<label for="anothergo">Another Message?</label>
<button name="feature" value="display_message_data">Review Stored Message Data</button>
</form>
</div>
VIEWSTOREDMESSAGEDATA;
}
但是,如果您在另一个函数上尝试它,它会起作用
有效的试用代码强>
// ~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
public function set_stored_message_data($p_arr_stored_message_data)
{
$this->c_arr_stored_message_data = $p_arr_stored_message_data;
if ($this->c_arr_stored_message_data)
{
echo "I AM AN ARRAY";
}
else
{
echo "I AM NOT AN ARRAY";
}
}
你的“我是一个数组”检查并不像你想象的那样有效:
$x = array();
if ($x) {
echo 'I AM AN ARRAY';
} else {
echo 'I AM NOT AN ARRAY';
}
打印出“我不是数组”,如图所示。您可以使用查看变量的确切内容
您有一个名为$c\u page\u content
的变量,但稍后您将引用$c\u html\u page\u content
。也许是个错误
如果“消息”可以包含用户提供的文本,则代码中存在XSS漏洞。使用HTML呈现文本非常重要。例如,如果$m_message_row[0]
是文本,则必须写入''。htmlspecialchars($m_message_row[0])。'代码>。对于不应包含写入HTML的HTML标记的任何其他值,同上
您的主要问题是,数据显然没有存储在c\u arr\u storaged\u message\u data
变量中,如果没有看到调用set\u storaged\u message\u data
和do\u display\u message\u details
的连接代码,就无法再现。我只能建议您确保在同一类的同一实例上以正确的顺序调用它们。什么不起作用?以HTML格式显示结果,或者您是否收到任何错误消息?:-)@ninetwozero在显示屏上。没有错误消息,但没有显示任何内容。如果是一个与问题无关的建议,以一种非自我吸收的方式命名变量和函数,那么每个人都可以更容易地帮助您。@JoelHernandez希望这样容易。对于这项工作,我必须提交匈牙利符号,这意味着“$m”变量是方法变量,$c”变量是类变量;然后“arr”是数组变量,“obj”是对象变量等等。这很烦人,但是规则是你做过任何调试,或者你只是举手说“它不工作了”?谢谢你提供了一些帮助,我已经把它整理好了。这是一个胭脂赋值运算符,基本上我有一个“如果”语句,上面有一个等号,我从来没有仔细考虑过,但当我添加第二个等号时,问题就消失了,我的数据开始显示出来。
$x = array();
if ($x) {
echo 'I AM AN ARRAY';
} else {
echo 'I AM NOT AN ARRAY';
}