Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: settype - почему не меняется тип?
 
 автор: Гавриленко Дмитрий   (12.11.2010 в 16:36)   письмо автору
 
 


<?php
$p1 
md5("s3cVmdar"); // cb60610ab1d426446370c00b8a7e8ed0
$p2 settype($p1,"integer"); // 6061014264463708780
  
echo $p1;
  echo 
"<br> \n $p2";
?>


Не в одном из случаев вывода переменных, не выводится число 6061014264463708780 Почему?

  Ответить  
 
 автор: root   (12.11.2010 в 16:50)   письмо автору
 
   для: Гавриленко Дмитрий   (12.11.2010 в 16:36)
 

а каким чудом это число должно выводиться?

  Ответить  
 
 автор: Гавриленко Дмитрий   (12.11.2010 в 17:34)   письмо автору
 
   для: root   (12.11.2010 в 16:50)
 

$p2 содержит это число.

  Ответить  
 
 автор: root   (12.11.2010 в 17:37)   письмо автору
 
   для: Гавриленко Дмитрий   (12.11.2010 в 17:34)
 

с какой стати?
Неужели так тяжело в мануал заглянуть..

  Ответить  
 
 автор: Гавриленко Дмитрий   (12.11.2010 в 17:52)   письмо автору
 
   для: root   (12.11.2010 в 17:37)
 

$p2 равно сильна $p1 т.к в ней содержится содержимое $p1

  Ответить  
 
 автор: root   (12.11.2010 в 17:57)   письмо автору
 
   для: Гавриленко Дмитрий   (12.11.2010 в 17:52)
 

>$p2 равно сильна $p1 т.к в ней содержится содержимое $p1

$p1 содержит совершенно заслуженно int(0)
$p2 в свою очередь bool(true)

чем они для Вас "равно сильны" я не знаю

  Ответить  
 
 автор: psychomc   (12.11.2010 в 17:49)   письмо автору
 
   для: Гавриленко Дмитрий   (12.11.2010 в 16:36)
 

приведение типов не так работает. то что вам надо делайте как-нибудь так

<?php 
$p1 
md5("s3cVmdar"); // cb60610ab1d426446370c00b8a7e8ed0 
$p2 preg_replace("/[a-z]+/"""$p1);
// $p2 = settype($p1,"integer"); // 6061014264463708780 
  
echo $p1
  echo 
"<br> \n $p2"
?>

  Ответить  
 
 автор: Гавриленко Дмитрий   (12.11.2010 в 17:59)   письмо автору
 
   для: psychomc   (12.11.2010 в 17:49)
 


<?
$foo 
"5bar"// string
$bar true;   // boolean

settype($foo"integer"); // $foo теперь 5   (integer)
settype($bar"string");  // $bar теперь "1" (string)
?>


По этому примеру я и написал свой

А так спасибо за выход из ситуации.

  Ответить  
 
 автор: psychomc   (12.11.2010 в 18:08)   письмо автору
 
   для: Гавриленко Дмитрий   (12.11.2010 в 17:59)
 

вы немного не так поняли. дело в том, что в строке "5bar", "b" и всё что будет идти после отбрасывается. неважно есть там числа или нет т.е
"5bar" => 5 (int)
"5bar6" => 5(int)
"567bar2" => 567(int)
и т.п

  Ответить  
 
 автор: Гавриленко Дмитрий   (12.11.2010 в 18:22)   письмо автору
 
   для: psychomc   (12.11.2010 в 18:08)
 

Ааа. Теперь понятно! Спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования