uncaught tipos que net method fatal errores error capturar php fatal-error

tipos - Error extraño de PHP: ''No se puede usar el valor de retorno de la función en el contexto de escritura''



tipos de errores en php (11)

Recibo este error y no puedo entenderlo.

El mensaje de error exacto es:

Error fatal: no se puede usar el valor de retorno de la función en el contexto de escritura en /home/curricle/public_html/descarga/index.php en la línea 48

La línea 48 es:

if (isset($_POST(''sms_code'') == TRUE ) {

¿Alguien sabe lo que está pasando?

PD Aquí está la función completa, en caso de que ayude:

function validate_sms_code() { $state = NOTHING_SUBMITED; if (isset($_POST(''sms_code'') == TRUE ) { $sms_code = clean_up($_POST(''sms_code'')); $return_code = get_sepomo_code($sms_code); switch($return_code) { case 1: //no error $state = CORRECT_CODE; break; case 2: // code already used $state = CODE_ALREADY_USED; break; case 3: // wrong code $state = WRONG_CODE; break; case 4: // generic error $state = UNKNOWN_SEPOMO_CODE; break; default: // unknown error $state = UNKNOWN_SEPOMO_CODE; throw new Exception(''Unknown sepomo code: '' . $return_code); break; } } else { $state = NOTHING_SUBMITED; } dispatch_on_state($state); }


para WORDPRESS :

en lugar de:

if (empty(get_option(''smth'')))

debiera ser:

if (!get_option(''smth''))


Corregir la sintaxis (al final faltaste un paréntesis):

if (isset($_POST[''sms_code'']) == TRUE ) { ^

PD: no necesitas la parte == TRUE , porque BOOLEAN (verdadero / falso) ya ha sido devuelto.


El problema está en () tienes que ir []

if (isset($_POST(''sms_code'') == TRUE)

por

if (isset($_POST[''sms_code''] == TRUE)


Esto puede suceder en más de un escenario, a continuación hay una lista de escenarios conocidos:

// calling empty on a function empty(myFunction($myVariable)); // the return value of myFunction should be saved into a variable // then you can use empty on your variable

// usando paréntesis para acceder a un elemento de una matriz, se usan paréntesis para llamar a una función

if (isset($_POST(''sms_code'') == TRUE ) { ... // that should be if(isset($_POST[''sms_code'']) == TRUE)

Esto también podría activarse cuando intentemos incrementar el resultado de una función como la siguiente:

$myCounter = ''356''; $myCounter = intVal($myCounter)++; // we try to increment the result of the intVal... // like the first case, the ++ needs to be called on a variable, a variable should hold the the return of the function then we can call ++ operator on it.


Esto también ocurre cuando se usa vacío en un retorno de función:

!empty(trim($someText)) and doSomething()

porque empty no es una función sino un constructo de lenguaje (no seguro), y solo toma variables:

Derecha:

empty($someVar)

Incorrecto:

empty(someFunc())

Desde PHP 5.5, es compatible con más de variables. Pero si lo necesita antes de 5.5, use trim($name) == false . De la documentación vacía


Otro escenario en el que se corrige este error debido a un error de sintaxis:

ucwords($variable) = $string;


También encontré este problema debido a un error de sintaxis. Usando "(" en lugar de "[" en el índice de matriz:

foreach($arr_parameters as $arr_key=>$arr_value) { $arr_named_parameters(":$arr_key") = $arr_value; }


También tuve un problema similar al tuyo. El problema es que estás usando una versión anterior de php. Me actualicé a PHP 5.6 y el problema ya no existe.


Te refieres

if (isset($_POST[''sms_code'']) == TRUE ) {

aunque de paso, realmente te refieres

if(isset($_POST[''sms_code''])) {


function tracker_printcomments ($ issueid) {global $ CFG, $ DB;

$comments = $DB->get_records(''tracker_issuecomment'', array(''issueid'' => $issueid), ''datecreated''); //print_object($issueid);

// print_object ($ comentarios); $ cmnt = ''''; if ($ comentarios) {

foreach ($comments as $comment) { $user = $DB->get_record(''user'', array(''id'' => $comment->userid)); $cmnt .= ''<tr>''; $cmnt .= ''<td valign="top" class="commenter" width="30%">''; $cmnt .= tracker_print_user($user); //2 $cmnt .= ''<br/>''; $cmnt .= ''<span class="timelabel">''.userdate($comment->datecreated).''</span>''; $cmnt .= ''</td>''; $cmnt .= ''<td colspan="3" valign="top" align="left" class="comment">''; //echo ''<td colspan="3" valign="bottom" align="left" class="alinks">'' ; if($comment->attachmentid) $attachment= $DB->get_records_sql("SELECT * FROM {files} WHERE filename != ''.'' AND itemid =$comment->attachmentid"); $cmnt .= $comment->comment; //print_object($attachment); //echo ''<span colspan="3" valign="bottom" align="left" class="alinks">''; if(!empty($attachment)) { $out = array(); $fs = get_file_storage(); foreach($attachment as $attachments) { $files = $fs->get_area_files($attachments->contextid, ''user'', ''draft'',$comment->attachmentid, ''id'', false); } foreach($files as $file) { $filename = $file->get_filename(); $ctxid = $file->get_contextid(); $component = $file->get_component(); $itemid = $file->get_itemid(); $url = $CFG->wwwroot."/draftfile.php/$ctxid/user/draft/$itemid/$filename"; $out[] = html_writer::link($url, $filename); } $br = html_writer::empty_tag(''br''); $cmnt .= implode($br, $out); } //$cmnt= $comment->comment; // $cmnt= ''</span>''; $cmnt .= ''</td>''; $cmnt .= ''</tr>''; } }

devuelve $ cmnt;
}

También estoy obteniendo el mismo error para esta función

No se puede usar el valor de retorno de la función en el contexto de escritura


if (isset($_POST(''sms_code'') == TRUE ) {

cambiar esta línea a

if (isset($_POST[''sms_code'']) == TRUE ) {

Está utilizando parentheseis () para $_POST pero quería corchetes []

:)

O

if (isset($_POST[''sms_code'']) && $_POST[''sms_code'']) { //this lets in this block only if $_POST[''sms_code''] has some value