Изменить таблицу стилей через If в php - PullRequest
1 голос
/ 27 апреля 2010

В данный момент я пытаюсь использовать таблицу стилей, которую я получаю через if. но это ничего не делает.

вот мой код на данный момент. переменная $ stylesheet будет переменной, но во время тестирования я установил ее на нормальное значение

<?php
$stylesheet = 'normal'
if ($stylesheet = 'small')
    {
    $style = './sitestyle/stylesheetsmall.css';
    }

if ($stylesheet = 'big')
    {
    $style = './sitestyle/stylesheetbig.css';
    }
  else
    {
    $style = './sitestyle/stylesheet.css';
    }

echo '<link rel="stylesheet" type="text/css" href="$style">';
?>

Спасибо за ваши ответы.

Ответы [ 8 ]

9 голосов
/ 27 апреля 2010

Хорошо, так как другие сказали, = - это присвоение, == - это сравнение.

Но ваша проблема может быть упрощена с помощью оператора switch:

$stylesheet =  'normal';
switch($stylesheet) {
    case 'small':
        $style = './sitestyle/stylesheetsmall.css';
        break;
    case 'big':
        $style = './sitestyle/stylesheetbig.css';
        break;
    default:
        $style = './sitestyle/stylesheet.css';
        break;
}
echo '<link rel="stylesheet" type="text/css" href="'.$style.'">';
6 голосов
/ 27 апреля 2010

При сравнении вещей используйте == вместо =.

$ а = 0; if ($ a = 1) { эхо "1"; } еще { эхо "не 1"; }

if( $a = 1 ) будет использовать возвращаемое значение $a=1 в качестве условия, в этом случае возвращаемое значение равно $a, что равно 1.

3 голосов
/ 27 апреля 2010

Другие указали на проблему с вашими утверждениями if. У вас также есть проблема с вашим утверждением эха. Переменные не будут рассматриваться в одинарных кавычках. Вам нужно переместить переменную из кавычек и объединить или изменить на двойные кавычки и убрать все остальные двойные кавычки. Я предпочитаю первый метод:

echo '<link rel="stylesheet" type="text/css" href="' . $style . '">';
2 голосов
/ 27 апреля 2010

Вы используете оператор присваивания PHP *1002* вместо оператора равно для сравнения:

if ($stylesheet = 'big')

Этот код фактически присваивает значение 'big' $stylesheet, и результат присваивания затем оценивается if как логическое значение (это будет верно в PHP).

Вы захотите изменить = на ==, чтобы выражение оценивалось непосредственно как логическое значение вместо оценки результата присваивания:

if ($stylesheet == 'big')
1 голос
/ 22 октября 2015
$stylesheet =  'normal'
if($stylesheet == 'small')
{
$style = './sitestyle/stylesheetsmall.css';
}
if($stylesheet == 'big')
{
$style = "./sitestyle/stylesheetbig.css";
}
else
{
        $style = "./sitestyle/stylesheet.css";
}

echo '<link rel="stylesheet" type="text/css" href="' . $style . '">';

равен один для назначения вещи в php == для, если он равен, и === для, если он точно равен

1 голос
/ 27 апреля 2010

Вы можете использовать переключатель для этого

switch ($size) {
    case 'small':
        # small css code...
        break;

    case 'big':
        # big css code...
        break;

    default:
        # default stylesheet code...
        break;
}
0 голосов
/ 13 мая 2010

Вы также можете отказаться от переключения / если полностью.

<link rel="stylesheet" type="text/css" href="./sitestyle/stylesheet<?echo $style;?>.css">

Просто убедитесь, что $style всегда установлен на "", "big" или "small"

0 голосов
/ 27 апреля 2010

Если вы хотите проверить, равно ли значение другому, используйте двойной знак равенства ==

$ stylesheet == 'small'

...