Domanda

I have a class Convert with a function date:

<?php
    class Convert{
        public static function datum($timestamp = time()){
            //When $timestamp isn't set use php function time()

           return(date("N" , $timestamp));
        }
    }
?>

//run method
Convert::datum();

This didn't work I got a error: Parse error: syntax error, unexpected '(', expecting ')' in .... on line 3 (function line) ;
It looks like the function time isn't reconized.

È stato utile?

Soluzione

Change

class Convert{
    public static function datum($timestamp = time()){ // <-- no functions allowed in here
        //When $timestamp isn't set use php function time()

       return(date("N" , $timestamp));
    }
}

Into

class Convert{
    public static function datum($timestamp = NULL){

        //When $timestamp isn't set use php function time()
        $timestamp = ($timestamp !== NULL ? $timestamp : time());

        return(date("N" , $timestamp));
    }
}

When declaring a function the parameters can only accept either empty data-types or data. The parameter cannot be set to accept the return of a function and it also cannot be dynamic.

Good

public static function datum($timestamp = NULL){
public static function datum($timestamp = 13524564){
public static function datum($timestamp = '423432'){
public static function datum($timestamp = array()){
public static function datum($timestamp = FALSE){
public static function datum($timestamp = TRUE){

Bad

public static function datum($timestamp = time()){
public static function datum($timestamp = (8*2)){
public static function datum($timestamp = $this->someValFromThisClass){
public static function datum($timestamp = 123, $new = $timestamp){
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top