Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543

    namespace e tipizzazione parametri

    Ciao ragazzi, io ho questa classe
    Codice PHP:
    namespace nuno\ndue\ntre;
    class 
    A{

      public function 
    metodoA(boolean $b){
        print 
    $b;
      }
      public function 
    metodoB(\boolean $b){
        print 
    $b;
      }

    e quando vado a richiamarle
    Codice PHP:
    $a = new A();
    $a->metodoA(true);
    $a->metodoB(true); 
    Ottengo
    codice:
    Catchable fatal error: Argument 1 passed to nuno\ndue\ntre::metotoA() must be an instance of nuno\ndue\ntre\boolean, boolean given
    
    Catchable fatal error: Argument 1 passed to nuno\ndue\ntre::metotoB() must be an instance of boolean, boolean given, called ....
    Da quello che intuisco, se uso i namespace non posso più tipizzare i parametri dei metodi?

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  2. #2
    Non c'entrano i namespace, il fatto e' che non puoi specificare il tipo dei parametri che accetta una funzione in quel modo. Il type hinting di PHP e' limitato a oggetti, interfacce, array o - recentemente - callable. Quindi se scrivi "boolean $b" lui si aspetta che $b sia un'instance della classe di nome "boolean".

    Come sempre il manuale e' piu' utile dell'andare a intuito: http://php.net/manual/en/language.oop5.typehinting.php

  3. #3
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Originariamente inviato da k.b
    Non c'entrano i namespace, il fatto e' che non puoi specificare il tipo dei parametri che accetta una funzione in quel modo. Il type hinting di PHP e' limitato a oggetti, interfacce, array o - recentemente - callable. Quindi se scrivi "boolean $b" lui si aspetta che $b sia un'instance della classe di nome "boolean".

    Come sempre il manuale e' piu' utile dell'andare a intuito: http://php.net/manual/en/language.oop5.typehinting.php
    gentilissimo...mi aspettavo un comportamento che php non supporta e l'errore generato da php "must be an instance of boolean, boolean given" l'ho trovato poco chiaro

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  4. #4
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Se avessi letto la documentazione non te lo saresti aspettato :-)

    http://uk.php.net/manual/en/language...ypehinting.php

  5. #5
    "Assume" makes an "ass" out of "u" and "me"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.