可能重复:
passing variable from one method to another in a php class
什么是在类的方法中传递特定变量的最佳方法,我尝试通过以下方式,但它没有工作.Wot可以通过它的其他可能性吗?plz suggest.thnks
itried传递变量$ picid;但它没有通过。
class photos
{
var $pid;
function showactivity(){
$sql = mysql_query("SELECT * FROM activity ");
while ($row = mysql_fetch_array($sql)) {
$picid= $row['picid'];
$this->pid=$picid;
}
}
function picname(){
echo $this->pid;
}
}
$photo=new photos();
并且在另一个文件中我调用了变量和方法但是,它没有显示任何结果
<?php $photo->picname(); ?>
以及
<?php $photo->pid; ?>
答案 0 :(得分:0)
我会改变方法picname:
function picname(){
return $this->pid;
}
然后像这样称呼它:
<?php echo $photo->picname(); ?>
答案 1 :(得分:0)
你必须像这样使用你的课程:
$photo = new photos();
$photo->showactivity();
$photo->picname();
我建议删除你的picname()函数中的echo,然后让方法返回pic。另外我会把$ pid私有化。获得一个图片时,您必须不循环查看所有查询记录。
你的课程看起来像这样:
class photos
{
private $pid;
function showactivity(){
$sql = mysql_query("SELECT * FROM activity ");
$row = mysql_fetch_array( $sql ));
$this->pid = $row['picid'];
}
function picname(){
return $this->pid;
}
}
用法:
$photo = new photos();
$photo->showactivity();
echo $photo->picname();
注意:您的班级缺少错误处理,并使用已弃用的mysql * 函数
答案 2 :(得分:0)
如果你只想获得$ picid的值,你可以从第一个函数返回。当您可以从第一个函数获取值时,您的第二个函数是不必要的。
class photos
{
function showactivity(){
$sql = mysql_query("SELECT * FROM activity ");
while ($row = mysql_fetch_array($sql)) {
$picid= $row['picid'];
return $picid;
}
}
}
$photo=new photos();
$act_id = $photos->showactivity();
更新
class photos
{
var $pid;
function showactivity(){
$sql = mysql_query("SELECT * FROM activity ");
while ($row = mysql_fetch_array($sql)) {
$picid= $row['picid'];
$this->pid=$picid;
return null;
}
}
function picname(){
echo $this->pid;
}
}
$photo=new photos();
$photos->showactivity();
$act_id = $photo->picname();
但我仍然建议你选择第一种方法
<强> working demo 强>
答案 3 :(得分:0)
试试这个,
class photos
{
private $pid;
function showactivity(){
$sql = mysql_query("SELECT * FROM activity ");
if($sql){
$row = mysql_fetch_array( $sql ));
echo "From first function-->".$this->pid = $row['picid']; //correction
}
else{
echo mysql_error();
}
}
function picname(){
return $this->pid;
}
}
并检查结果..