buenas
bueno tengo esto:
<?php
class Ftp {
var $cid;
var $result;
var $FTPSERVER;
var $USER;
var $PASS;
var $rootdir;
public function connect($mode_pasive=true){
$cid=ftp_connect($FTPSERVER) or die;
$result=ftp_login($cid,$USER,$PASS);
if ((!$cid) || (!$resultado)) {
return (false);
}else{
if ($mode_pasive==true){
ftp_pasv($cid,true);
}
return (true);
}
}
}
$ftp=new Ftp();
$ftp->$FTPSERVER="ftp.260mb.com";
$ftp->$USER="zeroql";
$ftp->$PASS="linkql";
$ftp->$rootdir="/";
$ftp->connect(true);
?>
el problema es cuando lo pongo a prueba me sale este error
CitarNotice: Undefined variable: FTPSERVER in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61
Fatal error: Cannot access empty property in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61
Me pueden decir que tengo de malo??? apenas estoy empezando a crear clases con php, y este es mi primer ensayo.
de ante mano muchas gracias.
Hola, las funciones como tal no adoptan las variables definidas anteriormente.
Por tanto, o las debes pasar en la misma funcion ( function($variables) ) o las debes declarar como globales (global $variable1,$variable2;).
ejemplo:
<?php
$variable1 = 'blablabla';
function bla($variable){
return $variable;
}
echo bla($variable1);
<?php
$variable1 = 'blablabla';
function bla(){
global $variable1;
return $variable1;
}
echo bla();
PD: En tu caso utilizando class es mas facil.
<?php
class aaaa {
var $cid = 'xDDD';
public function mostrar(){
return $this->cid;
}
}
$bbb = new aaaa();
echo $bbb->mostrar();
?>
Recuerda que cuando la quieres mostrar no es $this->$cid sino $this->cid, sin el siglo de variable.
Saludos
normalmente no permite el paso de variables, pero es una clase, y si miras bien cuando se llama a la clase se definen las propiedades, eso lo he visto mucho también en otras clases, pero nose por que me salta este error!
Sea clase o no funciona igual :rolleyes:
Lo que se utiliza en clase es lo que edite en el post de arriba.
$this->variable.
$this->cid;
$this->FTPSERVER;
etc..
Saludos
y segun tu codigo mi llamada esta bien hecha, por que esta fuera de la clase!!!
WTF ?
Lo que tienes mal es la función en si. No usas $this->, ni global ni nada xD
public function connect($mode_pasive=true){
$cid=ftp_connect($this->FTPSERVER) or die;
$result=ftp_login($cid,$this->USER,$this->PASS);
if ((!$cid) || (!$result)) {
return (false);
}else{
if ($mode_pasive==true){
ftp_pasv($cid,true);
}
return (true);
}
}
PD: RECUERDA (y te lo puse arriba) cuando vas a usar variable en una clase. No utilices $ utiliza $this->variable.
Saludos
Actualmente ese no es mi problema es cuando hago la llamada a la clase:
$ftp=new Ftp();
$ftp->$FTPSERVER="ftp.260mb.com";
$ftp->$USER="zeroql";
$ftp->$PASS="linkql";
...
se presenta este error:
CitarNotice: Undefined variable: FTPSERVER in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61
Fatal error: Cannot access empty property in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61
La linea 62 es:
$ftp->$FTPSERVER="ftp.260mb.com";
como se ve no se ha realizado la llamada a la funcion, por el momento no presentara errores en la funcion...
Vale vale, es que no sabia de que linea estabamos hablando xD
Pues lo mismo ^^
En vez de
$ftp->$FTPSERVER="ftp.260mb.com";
esto
$ftp->FTPSERVER="ftp.260mb.com";
Saludos
Ok muchas gracias ahora si me ha funcionado a la perfecccion.
muchas gracias