Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problemas con variables

Estas en el tema de Problemas con variables en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas tengo un pequeño problema con un blog que me estoy programando y es al llamar la clase blogpost @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: Ver original ...
  #1 (permalink)  
Antiguo 12/05/2009, 14:30
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 7 meses
Puntos: 0
Problemas con variables

Buenas tengo un pequeño problema con un blog que me estoy programando y es al llamar la clase blogpost
Código php:
Ver original
  1. class blogpage{
  2.  
  3.     function __construct ($s2, $page = 1, $c = NULL, $s = NULL){
  4.         $page = $page -1;
  5.         if (!$c){ $this->cat= NULL ;}
  6.         if (!ctype_digit($page) || $page<1){$this->pag=0; $page=1; } //aqui esta el error
  7.         if (!$s){$this->search= NULL;}
  8.         $this->cpag=$page; // diferente de $this->pag el error no es este
  9.         $this->style = $s2;        
  10.         $this->render_blogpost();
  11.         $this->paginator();
  12.        
  13.        
  14.     }// fin de __construct, el código sigue

Ahora la llamada al código

Código php:
Ver original
  1. <?php
  2. require('class.php'); //me salto unas lineas
  3. ?>
  4.  
  5. <?php
  6. $Z= new blogpage('
  7. <div class="blogpost"><h2><a href="post.php?id=php_id" >php_titulo</a
  8. </h2><div class="post_info"><a href="#">php_autor</a> a las php_fecha en:
  9. php_categorias </div>php_post<div class="continuar">
  10. <a href="post.php?id=php_id">Continuar leyendo</a></div> </div>'
  11. , 2);
  12.         ?>

El problema es que el if(!ctype_digit(2) ){xxxx} me está ejecutando xxx
  #2 (permalink)  
Antiguo 12/05/2009, 14:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemas con variables

ctype_digit solo funciona con strings, al tu pasarle 2 pasa esto:
Código:
(!ctype_digit(2) || 2 < 1 ) --> ( !false || false ) --> (true || false ) --> true
Saludos.
  #3 (permalink)  
Antiguo 12/05/2009, 15:00
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con variables

Hola GatorV gracias pero no funciona

Código php:
Ver original
  1. <?php
  2. require ('db.php');
  3.  
  4. class blogpage{
  5.  
  6.     function __construct ($s2, $page = 1, $c = NULL, $s = NULL){
  7.         $page = $page -1;
  8.         if (!$c){ $this->cat= NULL ;}
  9.         if (!ctype_digit(2) ){$this->pag=0; $page=1; die('no va'); }
  10.         if (!$s){$this->search= NULL;}
  11.         $this->cpag=$page;
  12.         $this->style = $s2;        
  13.         $this->render_blogpost();
  14.         $this->paginator();

Hace el die('no va') dejando así el código además en el manual de php usan variables http://es.php.net/manual/es/function.ctype-digit.php

Creo que esto es más serio...
  #4 (permalink)  
Antiguo 12/05/2009, 17:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemas con variables

Si lees el mensaje que te puse, lo que te indico es que el problema esta en tu logica, ctype_digit solo funciona con strings, y si haces tu clase como la tienes te va a dar true, intenta esto:
Código php:
Ver original 

Te va a dar bool(false), ya que ctype_digit solo funciona con strings, prueba esto:
Código php:
Ver original 

Eso da bool(true), si quieres comprobar si la variable es un numero usa is_int.

SAludos.
  #5 (permalink)  
Antiguo 13/05/2009, 07:44
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con variables

Hola GatorV
disculpame pero no entendí bien tu primer post, confundi strings con variables ahora está todo claro.
Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:12.