嗨我刚刚开始学习oop而且我来了acros这个问题,当我在正常的脚本序列中使用这个脚本时它会生成项目列表但是当我把它放到类文件中时我只得到第一行是什么问题? 类文件:
<?php
class getPVM{
function get ($sql){
while($row = mysql_fetch_array($sql)){
$id = $row["product_id"];
$product_name = $row["product_name"];
$price = $row["price"];
return $list =' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';
}
}
}
我称之为:
$sql = mysql_query("SELECT * FROM product");
echo $list=($getPVM->get($sql))
答案 0 :(得分:2)
您过早地返回您的价值并且您没有返回您的列表。试试这个:
<?php
class getPVM
{
function get($sql)
{
$list = "";
while ($row = mysql_fetch_array($sql)) {
$product_name = $row["product_name"];
$price = $row["price"];
$list .= ' <li>'.$id.' '.$product_name.' '.$price.'(PVM '.$price*0.21.') </br></li>';
}
return $list;
}
}
稍微解释一下:
$list .=
点运算符将字符串附加到`$ list`` return $list;
必须在最后返回完整列表答案 1 :(得分:1)
您正在使用return
内部循环,请尝试此操作:
class getPVM{
function get ($sql){
$list = array();
while($row = mysql_fetch_array($sql)){
$id = $row["product_id"];
$product_name = $row["product_name"];
$price = $row["price"];
$list[]=' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';
}
return $list;
}
}
答案 2 :(得分:-1)
试试这个:
<?php
class getPVM{
function get ($sql){
$list = "";
while($row = mysql_fetch_array($sql)){
$id = $row["product_id"];
$product_name = $row["product_name"];
$price = $row["price"];
$list =' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';
}
return $list; //or whatever you return
}
}
答案 3 :(得分:-1)
使用以下代码并尝试:
class getPVM{
function get ($sql){
$list = '';
while($row = mysql_fetch_array($sql)){
$id = $row["product_id"];
$product_name = $row["product_name"];
$price = $row["price"];
$list .=' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';
}
return $list;
}
}