Foros del Web » Programando para Internet » PHP »

que significa esto

Estas en el tema de que significa esto en el foro de PHP en Foros del Web. stripos($value, $keyword) !== false esto !== <- que coño es eso?? necesito hacer que stripos($value, $keyword) !== false pase a ser , cuando el value ...
  #1 (permalink)  
Antiguo 01/02/2012, 09:00
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 3 meses
Puntos: 1
que significa esto

stripos($value, $keyword) !== false

esto !== <- que coño es eso??

necesito hacer que

stripos($value, $keyword) !== false


pase a ser ,

cuando el value empieza con lo que voy escribiendo en keyword
keyword viene de un autocomplete

pareciera ser que
stripos($value, $keyword) !== false

va buscando el value que contiene el keyword

y yo necesito que no lo contenga , sino que empiece.

condigo de mas abajo.

public function getSuppliers($keyword)
{
$response = sap_get_open_suppliers(
$database = 'induval_prod',
$project_id = 2703561
);

$hash = array();
foreach ($response as $key => $value)
{
if (stripos($key, $keyword) !== false || stripos($value, $keyword) !== false)
{
$hash[] = array
(
'id' => $key,
'name' => $value,
);
}
}
return $hash;
}




o este otro



public function getOrdenes($keyword , $suplier)
{


$response = sap_get_open_purchases(
$database = 'induval_prod',
$project_id = 2703561 ,
$supplier_id = $suplier
);

$hash = array();
foreach ($response as $key2 => $value2)
{
foreach ($value2 as $key => $value)
{
if (stripos($value, $keyword) !== false)
{
$hash[] = array
(
'id' => $value,
'name' => $value,
);
}
}
}

return $hash;

}



de antemano gracias

cualquier ayuda sera buena


pd: una funcion que compare dos string, viendo que el valor de 1 comience en el otro????

ejemplo:

escribo


SO


encuentra value de

SODIMAC

pero que no encuentre

OSO

gracias
  #2 (permalink)  
Antiguo 01/02/2012, 09:24
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: que significa esto

!== significa completamente distinto, incluyendo tipo y valor.

para asuntos de igualdad 0 (cero) es igual a false y que '' (string vacio), por valor.
Pero por tipo son distintos, porque 0 es int, false es boolean, y '' es string.
entonces tenemos las siguientes equivalencias

Código PHP:
Ver original
  1. false == 0 //true
  2. '' == 0 //true
  3.  
  4. /* en cambio */
  5.  
  6. false === 0 //falso, uno es boolean y el otro int
  7. '' === 0 //falso, uno es string y el otro int

Con stripos para saber si empieza con debes hacer

Código PHP:
Ver original
  1. stripos($value, $keyword) === 0 //esto es true si $value empieza con $keyword

Debe ser con === porque si lo haces con == te daría true en el caso en que $keyword no se encuentra en $value porque stripos devuelve false cuando no encuentra el string.

saludos.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #3 (permalink)  
Antiguo 01/02/2012, 12:10
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: que significa esto

probando tu codigo....
  #4 (permalink)  
Antiguo 01/02/2012, 12:15
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: que significa esto

me funciono de maravilla !! jajaja
muchas gracias ribon :D

por que , aun no entiendo , por que ===0 hace que lo busque al comienzo...

pero muchas gracias
  #5 (permalink)  
Antiguo 01/02/2012, 12:21
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: que significa esto

me puedes explicar por que === 0 lo busca al comienzo??? y tengo otra duda ribon

ojala me puedas ayudar


tengo este codigo, si te fijas tiene autofocus y autofill en true , peor no me funciona , crees poder saber por que???
de antemano muchas gracias

$j = jQuery.noConflict();
(function($j){ // line to avoid conflict with Prototype.Event at window.onload
$j(document).ready(function() {

// agregar boton para "cerrar ventana"
$j('#cv_control_porterias-windowtitle').append(
$j('<div class="window_close"></div>').click(function (e)
{
$j(this.parentNode.parentNode).hide();
})
);

// evento que se lanza al cambiar el <select> que pagina en lugar
// de utilizar las flechas izquierda-derecha
if ($('offset-1'))
{
Event.observe('offset-1', 'change', function(e)
{
Event.element(e).form.submit();
Event.stop(e);
}, false);
}
// ACA COMIENZA EL CODIGO PARA LOS PROVEEDORES
// ESTE CODIGO SE TUVO QUE REPLICAR 5 VECES PARA LOS 5 PROVEEDORES
// EN CASO DE MODIFICACION HAY QUE MODIFICAR LAS 5 COPIAS

if ($j("#has_sap").length) {
$j("#ControlPorteriaProveedor-0-rut_proveedor")
.autocomplete(

{
source: function( request, response ) {
$j.ajax({
url: 'jsonp.php',
dataType: "jsonp",
data: {
method: "main:cv_control_porterias:getSuppliers",
autocomplete: "1",
argv_0: request.term
},
success: function( data ) {
response( $j.map( data.rows, function( item ) {
return {
label: item.name,
value: item.id,
source: item
}
}));
}

});

},
minLength: 4,
autoFill: true, autoFocus: true,



select: function(event, ui) {
$j("#ControlPorteriaProveedor-0-nombre_proveedor").val(ui.item.source.name)

},
open: function() {
$j( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
},
close: function() {
$j( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}

});
}


});
})(jQuery); // line to avoid conflict with Prototype.Event at window.onload
  #6 (permalink)  
Antiguo 01/02/2012, 13:25
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: que significa esto

Veamos. Con éstos signos de igualdad nos referimos a operadores de comparación. Aclaremos conceptos:

Código PHP:
Ver original
  1. $a == $b; // Si a y b son iguales en valor
  2. $a != $b; // Si a y b son distintos en valor
  3.  
  4. $a === $b; // Si a y b son identicos (iguales en valor y tipo)
  5. $a !== $b; // Si a y b no son identicos (diferentes en valor o tipo)
  6.  
  7. // Para conocer el valor de una variable se utiliza echo, que no es más
  8. // que imprimir el valor de ésta
  9. echo $a;
  10. echo $b;
  11.  
  12. // Para conocer el valor de una variable se utiliza var_dump

Igualmente te invito a leer el manual oficial:
http://php.net/manual/es/language.op...comparison.php

Saludos!

PD: Tu segunda consulta no va aquí, este foro es de PHP, no de Javascript / jQuery.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #7 (permalink)  
Antiguo 01/02/2012, 20:50
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: que significa esto

La manera en que busca al inicio del string es porque stripos lo que hace es devolver la posición en la que se encuentre el segundo parámetro (en tu caso $keyword) en el string completo (en tu caso $value).

si esto devuelve 0 (cero) quiere decir que $keyword fue encontrado al inicio de $value

pero ojo ten cuidado, porque stripos devuelve false en caso de que no encuentre el string $keyword

y como false == 0 esto te generaría error (en tu proposito) porque diría que cualquier $keyword que no esté incluida en $value está al inicio.
en cambio si pones === 0 entonces comprobará también el tipo (int) por lo que si devuelve false quedaría

false === 0 y eso es false porque el primer valor es tipo boolean y cero es int.

Espero se haya entendido :D!

saludos
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
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 20:10.