Форум сетевых администраторов Страницы (3): « 1 [2] 3 »
Показаны 33 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Срочно помогите!!! (http://netadmin.ws/forum/showthread.php?threadid=5482)


Помещено Denveroid 17-05-2003 в 11:38:

he][es
ага, но только он вернет TRUE и в таком случае:

PHP:


$a 
= "1"; // это стринг
$b = 1; // это integer
if($a==$b)
... 
// вернет TRUE
if($a===$b)
... 
// вернет FALSE

__________________
`
SiteMaker.Ru - Академия сайтостроительства


Помещено Димка 17-05-2003 в 11:47:

что такое string и что такое integer?

Димка добавил 17-05-2003 в 11:48:57:
и чем отличается:
if($name == test){}
от
if($name == 'test'){}
??


Помещено Rumata 17-05-2003 в 15:37:

quote:
Первоначальное сообщение от Димка
что такое string и что такое integer?

string и integer - типы данных вообще, в частности относится к переменным. В нормальных языках программирования (не php) нельзя переменной типа integer присвоить значение типа string. Кроме того, очевидно, переменные разных типов бессмысленно сравнивать, поэтому переменные разных типов сравнивать запрещено. В php все не так. Каждая переменная вообще-то имеет некий тип, но по большому счету, это никого не интересует. Например переменная $a = '1' имеет тип string, однако, можно написать $b = $a + 1; и в $b будет лежать значение 2. Все это вызывает некоторые затруднения при сравнении переменных. Например равно ли '2' просто 2? Для разрешения таких проблем приняты следующие операторы сравнения:
== проверяет совпадают ли значения "вообще". Т.е. 2 == '2' - истина.
=== проверяет еще и тип. Т.е. 2 === '2' это ложь.
quote:
Первоначальное сообщение от Димка
и чем отличается:
if($name == test){}
от
if($name == 'test'){}
?? [/B]

первое - вызовет ошибку, т.к. в php не сможет определить, что такое test - это не переменная, т.к. нет $, это не функция, т.к. на конце нет (), это не строка, т.к. все строки заключены в кавычки, это не число, т.к. в записи числа не может быть буквы t и т.д.


Помещено Димка 17-05-2003 в 16:42:

у меня дома на компе стоит сервер и php версии 4.2
и у меня работает хоть написано так:
if($name == test){}
хоть так:
if($name == 'test'){}

Димка добавил 17-05-2003 в 16:43:30:
почему?


Помещено Rumata 17-05-2003 в 19:21:

Просто пхп шибко умный. Попробуй написать так:

error_reporting(2047);
if($_GET['name'] == test){print 'ok';}

ты увидишь такое сообщение:
Notice: Use of undefined constant test - assumed 'test' in /home/rumata/public_html/test.php on line 3

Т.е. пхп увидел незнакомую строчку, понял, что это плохой программист =)) забыл поставить кавычки и фактически поставил их сам.


Помещено polo 17-05-2003 в 21:57:

если test еще и будет работать но вот te st никогда.

__________________
Всегда есть решение.


Помещено Silencer 18-05-2003 в 05:49:

А помоему Димка подразумевал вот это:

if ($id=='news' && $news='may') {
if ($id=='news' && $news='june') {

И так далее

__________________
Типа спициялист по елехтронной комэрцыи. Крут не по децки.


Помещено polo 18-05-2003 в 11:36:

quote:
А помоему Димка подразумевал вот это:

if ($id=='news' && $news='may') {
if ($id=='news' && $news='june') {

И так далее

полный изврат.

__________________
Всегда есть решение.


Помещено Silencer 18-05-2003 в 12:37:

There is more than one way to do it

switch($news) {
case 'may':
блабла;
break;
case 'jun':
юлаюла;
break;
}

Так лучше?

__________________
Типа спициялист по елехтронной комэрцыи. Крут не по децки.


Помещено polo 18-05-2003 в 14:33:

гораздо. Но всеравно нужно будет делать 12 одинаковых запросов к базе или откуда берутся данные. Я бы сделал так:
1. Проверить что $news содержит правильной значение.
2. Другие операции над $news.
3. Получение данных
Да и вообще этот параметр с месяцами не правилен. Тут можно полагаться только на один год, а если года два или больше? Имхо, $news должно содержать что-то типа 200305 или 2003-05 (год и месяц). При помощи регулярки получить параметры.

__________________
Всегда есть решение.


Помещено Rumata 18-05-2003 в 14:52:

Если уж улучшать, так надо просто писать запрос к базе данных вида SELECT bla bla bla WHERE time <= $t1 AND time >= $t2
это решит все проблемы =)


Помещено Denveroid 18-05-2003 в 19:25:

Rumata
SELECT bla bla bla WHERE time BETWEEN $t1 AND $t2
если уж на то пошло.
А вообще я вопроса не понял в первом сообщении. Задачу не понял...

__________________
`
SiteMaker.Ru - Академия сайтостроительства


Помещено Димка 18-05-2003 в 19:52:

НЕ, я подразумевал вот что:
<?php
if ($id == "news") {
if ($news == "jan"){ ?>
Новости за январь <?php }
elseif ($news == "feb"){ ?>
Новости за февраль <?php }
elseif ($news == "mar"){ ?>
Новости за март <?php }
elseif ($news == apr"){ ?>
Новости за апрель <?php }
elseif ($news == "may"){ ?>
Новости за май <?php }
elseif ($news == "jun"){ ?>
Новости за июнь <?php }
elseif ($news == "jul"){ ?>
Новости за июль <?php }
elseif ($news == "aug"){ ?>
Новости за август <?php }
elseif ($news == "sep"){ ?>
Новости за сентябрь <?php }
elseif ($news == "oct"){ ?>
Новости за октябрь <?php }
elseif ($news == "nov"){ ?>
Новости за ноябрь <?php }
elseif ($news == "dec"){ ?>
Новости за декабрь <?php }
else{ ?>
Выберите месяц (и естессно ссылки на file.php?id=news&new s=jan/feb/ и тд)
<?php
}
}
?>


Помещено Denveroid 18-05-2003 в 21:28:

Димка
тогда нужно делать примерно так, как посоветовал Polo.
То есть, передаешь скрипту параметры: file.php?year=2003&month=5&day=18 или file.php?2003/5/18 ну и т.д...
ну и тут уже сам бог велел разобраться Делай с этими параметрами все что хочешь.

__________________
`
SiteMaker.Ru - Академия сайтостроительства


Помещено Димка 18-05-2003 в 22:03:

Люди, а как сделать так, чтобы на странице показывало только 5 новостей, а внизу страницы были ссылки на 2, 3 и т.д. страницы...?


Формат времени GMT. Текущее время 04:54. Страницы (3): « 1 [2] 3 »
Показаны 33 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.