Что-то вроде
actuallink = 'http://www.exxonmobilperspectives.com'
endPoint = len(actuallink.split('/')) - 1
if endPoint > 0:
slashcounter = 0
indexslash = 0
while slashcounter < endPoint:
if(actuallink[indexslash] == '/'):
slashcounter = slashcounter + 1
indexslash = indexslash + 1
PLink = actuallink[:indexslash]
Краткая версия:
if ("$myVal" === '0')
или
if (strval($myVal) === '0')
Длинная версия:
if ($myVal === 0 || $myVal === '0')
Если значения, которые вы получаете из базы данных, являются строками, но исходный тип данных является целым числом, то вы, вероятно, хотите, чтобы ваш DAO (объект доступа к данным или что-то еще, что извлекает данные), приведите вещи к типам данных, которые вы ожидаете. Таким образом, PHP-код, который просматривает значения, смотрит на тип данных, который он ожидает.
Проблема, конечно же, в том, что нет соответствия 1-1 между типами данных, которые определяет БД, и типы данных, определенные PHP. Однако по большей части это не проблема, поскольку для большинства типов, которые мы обычно используем, существуют эквивалентные типы: int, float, bool, string.
В результате получается, что между местом, где вы запрашиваете базу данных , и место, где вы проверяете эти значения, эти значения должны быть приведены к ожидаемым типам данных. Я только что протестировал mysql_fetch_object () в таблице MySQL, содержащей int (10) и varchar (50); оба поля всегда подтягивались PHP как "строка". Поэтому, если вы хотите, чтобы одно из полей обрабатывалось как int, преобразуйте его в int, прежде чем что-либо делать с ним. Например:
$rs = mysql_query("SELECT * FROM table");
while ($row = mysql_fetch_object($rs)) {
$RealRow->id = (int)$row->id;
$RealRow->name = $row->name;
// etc.
}
// ... later ...
if ($RealRow->status == 0) {
// do something
}
Запрос и материал RealRow должны находиться внутри класса / метода, чтобы он был инкапсулирован; таким образом, ЛЮБАЯ часть вашего кода, которая получает данные из таблицы
, всегда будет вместо этого получать объект $ RealRow, в котором все будет установлено на правильные типы данных. Конечно, если вы измените свои типы данных, это потребует ручного редактирования DAO, чтобы иметь дело с приведением; также можно было бы запросить БД, чтобы получить тип каждого поля (с помощью «SHOW COLUMNS FROM table»), и автоматически приведёт поля к правильному типу данных.
Я думаю, вам следует просто использовать
if ($myVal == 0)
. Я не думаю, что нужно беспокоиться о том, является ли $ myVal "foo". Вы сами сказали, что это значение всегда будет только числом.
Другими словами, если вы когда-нибудь столкнетесь с тем, что $ myVal является "foo", ошибка не в том, что "foo" == 0, ошибка в что $ myVal - это "foo", хотя это должно быть число.
Лучшее, что у меня есть на данный момент, это:
is_numeric($myVal) && $myVal == 0
Попробуйте использовать intval () для преобразования строки в int
if( intval($myVal) == 0 )