Normalmente, dentro de una aplicación PHP que hace uso de la variable skalar "tipos" está vinculada a la entrada de cadena realmente (solicitud HTTP). PHP hizo esto más fácil para convertir la entrada de cadena a números para que pueda usarla para el cálculo y tal.
Sin embargo, verificar los valores escalares para is_string
como se propone en su ejemplo no tiene mucho sentido. Porque casi cualquier tipo de variable en la familia escalar es una cadena o al menos se puede usar como una cadena. En cuanto a su ejemplo de clase, la pregunta sería: ¿tiene sentido verificar el tipo de variable o no?
Para el código que ha propuesto, no tiene ningún sentido porque sale del constructor con un return false;
. Esto terminará el constructor para ejecutar y devolver un objeto no inicializado correctamente.
En su lugar, debe lanzar una excepción, p. un InvalidArgumentException
si un argumento de constructores no proporciona el tipo de valor esperado/necesario.
Dejando esto de lado y dando por hecho que su constructor de objetos necesita diferenciar entre una cadena y un entero o bool o cualquier otro tipo escalar, entonces debe hacer las comprobaciones.
Si no confía en los tipos escalares exactos, puede convertir a cadena en su lugar.
Solo asegúrese de que los datos ocultos dentro del objeto siempre son perfectamente correctos y no es posible que los datos incorrectos puedan pasar a miembros privados.
Si desea la verificación de tipo, use un lenguaje estático. – delnan
Solo he usado el tipo de comprobación con matrices. Entonces dejé de volver a usar variables con diferentes tipos. – jous
He visto menos errores en proyectos bien planificados y escritos. ¿Esto cuenta? ;) Por cierto: '$ createdAt' también puede ser una marca de tiempo (' int'), o un objeto ('DateTime'). – KingCrunch