我有一个类存储有关网络数据包的数据:
var $from_ip;
var $to_ip;
var $from_port;
var $to_port;
var $tcp_length;
var $tcp_stream_text;
var $tcp_stream;
var $tcp_sequence_dec;
现在,我正在创建函数来打印它:
function Print_data()
{
echo "<table>";
echo "<tr><td>";
echo "From IP:";
echo "</td><td>";
echo $this->from_ip;
echo "</td></tr>";
echo "<tr><td>";
echo "To IP:";
echo "</td><td>";
echo $this->to_ip;
echo "</td></tr>";
echo "</table>";
}
有什么办法可以让它消失吗?正如你可能注意到的,将会有很多相同的行。(可以写一个函数来显示它)。那瓦尔斯呢?
发布于 2013-12-11 22:44:19
正如What does PHP keyword 'var' do?所说,var是不可取的。
这是我提出的解决办法,
<?php
class TCP {
protected $from_ip;
protected $to_ip;
protected $from_port;
protected $to_port;
protected $tcp_length;
protected $tcp_stream_text;
protected $tcp_stream;
protected $tcp_sequence_dec;
private $template = "<table>
<tr>
<td>From IP:</td>
<td>%s</td>
</tr>
<tr>
<td>To IP:</td>
<td>%s</td>
</tr>
</table>";
static public function render_template() {
return sprintf(self::$template, self::$from_ip, self::$to_ip);
}
}
print TCP::render_template();
发布于 2013-12-11 22:16:46
您的变量是 on them,但是如果它们在类中,我建议定义它们的访问级别(private
、public
、protected
等):
private $from_ip;
private $to_ip;
private $from_port;
private $to_port;
private $tcp_length;
private $tcp_stream_text;
private $tcp_stream;
private $tcp_sequence_dec;
这就是我(亲自)编写Print_data()
函数的方式:
function Print_data() {
?>
<table>
<tr>
<td>From IP:</td>
<td><?php echo $this->from_ip ?></td>
</tr>
<tr>
<td>To IP:</td>
<td><?php echo $this->to_ip ?></td>
</tr>
</table>
<?php
}
发布于 2013-12-11 22:25:18
尝试使用数组!使用关联数组将键设置为任何您想要的,我只是引用了变量名。而这些价值观就是你现在所拥有的。
$data = array(
"To IP" => $to_ip,
"From IP" => $from_port,
"To Port" => $to_port,
"TCP Length" => $tcp_length,
"TCP Stream Text" => $tcp_stream_text,
"TCP Stream" => $tcp_stream,
"TCP Sequence Dec" => $tcp_sequence_dec
);
然后迭代!使用foreach循环来获得键和值,以及boom。干净多了
function Print_data() {
echo "<table>";
foreach ($this->data as $key => $value) {
echo "<tr><td>$key</td><td>$value</td></tr>";
}
echo "</table>";
}
https://stackoverflow.com/questions/20536291
复制