Crear un nuevo atributo desde un método dentro de la clase?

Tengo el siguiente ejercicio:

Continuando con el ejercicio anterior, ahora se requiere implementar el sueldo a pagar a cada profesor, por lo que se debe agregar el atributo correspondiente y un método que permita agregar el valor para dicho atributo. Siguiendo en cosideración que: si tiene más de 10 años de experiencia se le asignará 3000, de 5 a 10 años 2500 y menos de 5 años 2000. Actualizar los métodos para que el sueldo del profesor se muestre junto con sus demás datos.

Class Profesor{ var $  nombre; var $  direccion; var $  experiencia; var $  asignatura; var $  anhos;  public function __construct($  nombre, $  direccion, $  experiencia, $  asignatura, $  anhos){     $  this->nombre = $  nombre;     $  this->direccion = $  direccion;     $  this->experiencia = $  experiencia;     $  this->asignatura = $  asignatura;     $  this->anhos = $  anhos; }  public function get_nombre(){     return $  this->nombre; }  public function set_nombre($  x){     $  this->nombre = $  x; }  public function get_direccion(){     return $  this->direccion; }  public function set_direccion($  x){     $  this->direccion = $  x; }  public function get_experiencia(){     return $  this->experiencia; }  public function set_experiencia($  x){     $  this->experiencia = $  x; }  public function get_asignatura(){     return $  this->asignatura; }  public function set_asignatura($  x){     $  this->asignatura = $  x; }  public function get_anhos(){     return $  this->anhos; }  public function set_anhos($  x){     $  this->anhos = $  x; }  function salario(){     if($  anhos < 5){         $  salario = 2000;     }else if($  anhos > 5 && $  anhos <= 10){         $  salario = 2500;     }else{         $  salario = 3000;     }     return $  salario; }  } 

Bien, en el ejercicio anterior he creado una clase con ciertos atributos. Según este ejercicio debo agregar un nuevo atributo (A lo que he añadido anhos) para conocer cuánto es su salario. Pero lo que me deja a cuadros es la parte final “Actualizar los métodos para que el sueldo del profesor se muestre junto con sus demás datos”. ¿Esto quiere decir que debo crear una función para que reproduzca “salario” como nuevo atributo sin haberlo declarado en el constructor? Y si es así ¿cómo podría hacer eso?

Perdonad pero estoy un poco verde con esto de la POO

Mil gracias

Necesito ayuda con conocimientos php,html,soy nuevo

¡Muy buenos días!, soy nuevo usuario aquí y necesito un poquito de ayuda. Me gustaría Crear una web para vender productos,estuve mirando plataformas como prestashop,shopify etc.Pero entre el hosting,lo que tengo que pagar todos los meses,y lo que encima valen los módulos me sale a +1000 euros la broma y no puedo permitirme eso ahora mismo.

Lo que os pido es si alguien puede ayudarme(guiarme de manera aproximada),como funciona el php,con html,la inclusion de las tablas (no sé si se dice así,)como implementar una pasarela de pago, carritos y cosas así,al menos si alguien puede ayudarme con lo más minimo,lo agradeceria muy mucho!

¡Gracias de antemano!

¿Alguien sabe porque al tratar de crear un nuevo proyecto de laravel surge esto?

Estaba tratando de crear un nuevo proyecto de laravel con el comando laravel new NombreDelProyecto y me surgio esto.

¿Alguna idea de como arreglar esto o porque ocurre?

Error al usar el comando laravel new

Nota: solamente puedo crear los proyectos desde composer composer create-project --prefer-dist laravel/laravel NombreDelProyecto, pero quisiera saber porque pasa esto.

Nuevo archivo LibreOffice Calc desde VB.NET

estoy creando un nuevo archivo Calc añadiendo datos y formato, pero no veo la forma de guardar el archivo ya que las funciones “ConvertToUrl”, “store”, “storeAsURL” y todas las que pruebo para guardar el archivo no funcionan, ¿alguna solución?

codigo de ejemplo

`Dim oServicio As Object = CreateObject(“com.sun.star.ServiceManager”) Dim Escritorio As Object = oServicio.createInstance(“com.sun.star.frame.Desktop”)

    Dim args(0) As Object     args(0) = oServicio.Bridge_GetStruct("com.sun.star.beans.PropertyValue")     args(0).Value = True      Dim libroLO As Object = Escritorio.loadComponentFromURL("private:factory/scalc", "_default", 0, args)      libroLO.getCurrentController.getFrame.getContainerWindow.setVisible(True)     libroLO.getCurrentController.getFrame.getComponentWindow.setVisible(True)      Dim hojaLO = libroLO.getSheets().getByIndex(0)      hojaLO.getcellbyposition(0, 0).setFormula("datos")      'Establecemos la ruta y nombre donde se guardara el archivo     Dim sRuta = ConvertToUrl("file:///D:/prueba.ods")     libroLO.storeAsURL(sRuta, args(0))     libroLO.close(True)      hojaLO = Nothing     libroLO = Nothing     Escritorio = Nothing     oServicio = Nothing` 

ingreso de un nuevo campo incrementable

Tengo una tabla comprobantes en la cual tiene los campos id,total, cliente_id
y lo que estoy tratando de hacer es crear un nuevo campo incrementable como el del id pero que se llame ticket, no importa el nombre la cosa es que se incremente automaticamente quedaria asi:

id, ticket, total, cliente_id

he probado campos tipos increments bigincrements autoincrement pero me devuelve puro error tambien intente usar el identity , pero no funciona aqui.

$ table->bigIncrements('id'); $ table->increments('ticket'); $ table->increments('total'); $ table->foreing('cliente_id');

el error

ticket int unsigned not null auto_increment primary key, espero puedan ayudarme, Gracias 🙂

Formulario no se actualiza con el nuevo valor

Tengo un problema, estoy realizando un formulario y no esta editando. En el network aparece el nuevo valor pero no lo guarda:

{id: 2, title: "prueba"} 

Esta es la función para actualizar del servicio:

putUser(user: User) {   return this.http.put(this.url + '/' + user.id, user); } 

Esta es la función para actualizar del componente:

onSubmit() {   this.service.putUser(this.editForm.value)       .subscribe(         data => {           console.warn(data);           this.router.navigate(['/']);         },         error => {           alert(error);         }); }  

variable en un nuevo doc de php me da error

necesito guardar una nueva variable en un documento que estoy generando en php pero me tira error ( lo que estoy haciendo es en una variable de php guardo un documento html y dentro de este mismo inserto unas lineas php pero al querer insertar cierta parte me da este error).

** syntax error unexpected eof expecting t_string or t_variable or t_num_string

esta es la parte del error

//aqui arriba hay mas codigo que no me tira ningun error

?php while($  fila=$  resul->fetch_assoc()):        //aqui me marca el error      $  r=$  fila['res'];                    ?> 

// debajo también tengo insertado mas código sin problema

se tal vez porque me puede estar generando error ya que no esta definida aun pero hay alguna manera de que no me genere error o ignorarlo?

¿Cual es la alternativa de fragment o el nuevo componente en android?

Por que fragment no funciona, me dice fragment deprecated cuando instancio me sale error:

 Fragment fra = new usersFragment(); 

Y cuando quiero reemplazar tambien me sale error, se marca de rojo ,no funciona para nada

getSupportFragmentManager().beginTransaction()                     .replace(R.id.container, fra)                     .commit(); 

Si fragment no funciona,cual es al aletrnativa o el nuevo componente el que tengo que usar?

eliminar y crear un nuevo elemento en el DOM con JS y AJAX

Tengo un problema a la hora de crear un nuevo icono.

Lo primero que hago es listar los usuarios a mediante un bucle:

    <div class='plan'>                 <h2 class='plan-title'><?php echo $  nexo->getNombreModelo(). ' ' . $  nexo->getApellidosModelo(). ' ' .$  nexo->getId(). ' ' .$  nexo->getConfirmacion() ?></h2>                 <h2 class='plan-title' id="costeHora"><?php echo $  nexo->getCosteHora() . ' €/H' ?></h2>                 <img class='foto' src='../img/<?php echo $  nexo->getFoto() ?>'>                 <ul class='datos-empleado'>                     <li><strong>ID: </strong><?php echo $  nexo->getIdEmpleadoModelo() ?></li>                     <li><strong>DEPARTAMENTO: </strong><?php echo $  nexo->getDepartamento() ?></li>                     <li><strong>EMAIL: </strong> <?php echo $  nexo->getEmail() ?> </li>                     //con este método pinto los iconos                     <?php echo $  this->pintarAsistencia($  nexo->getConfirmacion(), $  nexo->getId() ); ?>                      <div class="btn-anula-invitacion" data-id-costeEmpleado="<?php echo $  nexo->getCosteHora() ?>"                     data-id-reunion="<?php echo $  nexo->getIdReunion_fk() ?>"                      data-id-nexo="<?php echo $  nexo->getId() ?>"><i class="fas fa-user-slash"></i></div>                 </ul>             </div> 

este es el método con el que pinto esos iconos (el que llamo desde el bucle):

public function pintarAsistencia($  valorConfirmacion, $  idNexo){      if($  valorConfirmacion == 0){          echo "<div class='btn-confirma-invitacion' data-id-nexo='".$  idNexo."'><i class='fas fa-question-circle'></i></div>";     }else{         echo "<div><i class='fas fa-check-circle'></i></div>";     } } 

Todo esto hace que se muestre una vista en la que aparece mi lista de empleados con los siguientes valores:

introducir la descripción de la imagen aquí

Cuando abro la página, el bucle llama a la BBDD y lee un campo en la tabla del empleado que tiene 1 o 0. Si tiene 1, pinta un check verde, pero si tiene un 0, pinta una interrogación amarilla.

A la hora de confirmar la asistencia, quiero hacer click en la interrogación amarilla, que esta se convierta en un check verde y no se pueda hacer click de nuevo en ese icono.

Para eso he hecho lo siguiente:

    function confirmarInvitacion(e) {  //Recojo el btn-confirma-invitacion que pinto con mi método pintarAsistencia().      if (e.target.parentElement.classList.contains('btn-confirma-invitacion')) {  //recojo este parámetro que voy a enviar al controlador         const idNexo = e.target.parentElement.getAttribute('data-id-nexo');          console.log(idNexo);         const xhr = new XMLHttpRequest(); //Mando toda la información al controlador y este inserta mi registro.         xhr.open('GET', `../controller/empleado_reunion_controlador.php?idNexo=$  {idNexo}&accion=confirmar`, true);          xhr.onload = function() {             if (this.status === 200) {                 console.log(xhr.responseText);                 Swal.fire({                     position: 'center',                     type: 'success',                     title: 'Asistencia confirmada',                     showConfirmButton: false,                     timer: 1500                 })                 setTimeout(() => {  //Aquí viene el  problema. Elimino el icono de interrogación (porque ya ha confirmado)                     e.target.remove();  //creo un icono de check verde nuevo.                     const iconoConfirmado = document.createElement('i');                     iconoConfirmado.classList.add('fas', 'fa-check-circle');  //lo meto dentro de mi btn-confirma-invitacion.                      const botonNuevo = document.querySelector('.btn-confirma-invitacion');                     botonNuevo.appendChild(iconoConfirmado);                 }, 2000);             }          }          xhr.send();     } } 

Ahora lo que ocurre, es que el icono de la interrogación se elimina y elcheck verde aparece en el primer registro que el DOM encuentra con un btn-confirmar-invitacion. Adjunto imagen de lo que ocurre.

introducir la descripción de la imagen aquí

Si refresco la página, todo se pinta correctamente.

¿Alguien sabe como puedo hacer para que al hacer click en la interrogación, me pinte el check verde en el mismo registro en el que estoy?

Espero haber sido claro!! gracias por la ayuda!!!