Jak mogę powiedzieć w/z funkcją follow (patrz poniżej), że możesz zrobić maksymalnie 3 przedmioty? A jeśli zrobisz więcej niż trzy przedmioty, funkcja zatrzyma się i otrzymasz ostrzeżenie?
function addSection() {
global $compid;
$sectionOb = new Item();
$sectionOb->i_id_pk = $sectionOb->newId();
$sectionOb->i_mod_comp_id_fk = $compid;
$sectionOb->c_titel = '';
$sectionOb->c_content = '';
$sectionOb->i_sort = $sectionOb->newSort($compid);
$sectionOb->insert();
}
if($action == 'add') {
addSection();
}
<a href="<?php echo $_SERVER['REQUEST_URI'] ?>&action=add" />new section</a>
0
Raymond van Os
16 luty 2012, 17:49
3 odpowiedzi
Najlepsza odpowiedź
Jeśli nie przejmujesz się zbytnio fałszowaniem adresów URL, dodałbym zmienną licznika w adresie URL, która jest przekazywana do metody addSection() w następujący sposób:
function addSection($count) {
if ($count >= 3) { return $count; }
global $compid;
$sectionOb = new Item();
$sectionOb->i_id_pk = $sectionOb->newId();
$sectionOb->i_mod_comp_id_fk = $compid;
$sectionOb->c_titel = '';
$sectionOb->c_content = '';
$sectionOb->i_sort = $sectionOb->newSort($compid);
$sectionOb->insert();
// Return incremented count
return $count + 1;
}
// Retrieve the last count from the URL
$count = isset($_GET['count']) ? intval($_GET['count']) : 0;
// Increment the count if the action is add and the addSection method suceedes
if($action == 'add') {
$count = addSection($count);
}
// Add count to the URL so we know what it is
<a href="<?php echo $_SERVER['REQUEST_URI'] ?>&action=add&count=<?php echo $count; ?>" />new section</a>
2
abelito
16 luty 2012, 18:00
Użyj statycznej zmiennej licznika:
function limited() {
static $invocationcount = 0;
++$invocationcount;
if($invocationcount <= 3) {
echo "You have called this function $invocationcount times.";
}
else {
echo "Stop doing that!";
}
}
3
Jon
16 luty 2012, 17:51
Bardzo dziękuję za pomoc!! Zrobiłem to w następujący sposób:
function limit() {
global $compid;
$i = 0;
++$i;
$a_all = page1::page2Id($compid);
$i = sizeof($a_all);
if($i <= 2) {
$sectionOb = section();
$sectionOb->i_id_pk = $sectionOb->newId();
$sectionOb->i_mod_comp_id_fk = $compid;
$sectionOb->c_titel = '';
$sectionOb->c_content = '';
$sectionOb->i_sort = $sectionOb->newSort($compid);
$sectionOb->insert();
return true;
}
else {
return false;
}
}
0
Raymond van Os
17 luty 2012, 13:40
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.