TransWikia.com

Error de sintaxis al dividir dos números

Stack Overflow en español Asked by Julián Peñaranda Acevedo on December 9, 2021

Básicamente mi problema es que por algún motivo, la siguiente línea me da error de sintaxis:

class CalcCombined {
    private $CI;
    private static $QUANTITY = 100;
    private static $PERCENT_SALESBONUS = 10/100; // Línea de que da error
    private static $PERCENT_EBITDABONUS = 10/100;

El error de sintaxis que me da es exactamente este: syntax error, unexpected '/', expecting ',' or ';'

He intentado parsearlo a INT a FLOAT y no se soluciona el problema.

Gracias de antemano.

2 Answers

El problema mayor es uno solo: ¿qué necesidad hay de declarar como valor calculado un miembro estático?, pues ninguna.

La operación 10/100 será siempre igual a 0.1, aquí, en Marte o en otra galaxia, eso espero :)

Entonces, la mejor solución es declarar el campo de esta manera:

private static $PERCENT_SALESBONUS = 0.1;

O sea, el resultado de 10/100. No veo por qué complicarse queriendo declarar el campo como un cálculo.

Answered by A. Cedano on December 9, 2021

La manera en la que estás declarando la variable tan solo tiene sentido dentro del contexto de una clase.

Lo que estás haciendo es difinir un atributo para una clase, si tratas de declararla de esa manera fuera de una clase te va a aparecer el error que mencionas.

Te pongo un ejemplo donde tu manera de declarar tendría sentido:

PHP

class Ventas {
    private static $PERCENT_SALESBONUS = 10/100;
}

EDIT

El problema viene determinado por tu versión de PHP. Antes de la 5.6.0 no se permitían los atributos de clase calculados. Si necesitas hacer ese cálculo declara una función dentro de la clase que te la devuelva.

class CalcCombined {
    private $CI;
    private static $QUANTITY = 100;
    
    public function get_percent_salesbonus () {
        return  10/100;
    }
}

$CalcCombined = new CalcCombined();

echo $CalcCombined->get_percent_salesbonus();

Answered by phpMyGuel on December 9, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP